April 29, 2012
By René Smit
What is it
F1PerfView is a telemetry viewer for Windows, supporting GP2/GP3/GP3-2000/GP4
performance analysis, F1RS/MGPRS2 telemetry files, LFS replay analyser files,
and generic text files. It includes most of the features that the internal GPx
and F1RS viewers have, plus a text view, a statistics view, a time difference
graph, and a track view. It also allows a combination of upto 256 perf files to
be compared. The latest version can always be obtained at
THIS PROGRAM IS FREEWARE. IT IS NOT ALLOWED TO SELL, REDISTRIBUTE THIS PROGRAM,
OR COMMERCIALLY USE THIS PROGRAM IN ANY WAY WITHOUT EXPLICIT PERMISSION OF THE
AUTHOR. THIS PROGRAM IS NOT ENDORSED BY MICROPROSE, INFOGRAMES OR UBISOFT.
USE THIS PROGRAM AT YOUR OWN RISK. THE AUTHOR IS NOT RESPONSIBLE FOR ANY DAMAGE
DONE TO ANYTHING BY THIS PROGRAM IN ANY WAY.
The downloaded archive should consist of these files:
f1perfview.exe. The executable.
f1perfview.html. This help document.
F1PerfView is a 32-bit MFC program for Windows 9x/NT/ME/2K/XP/Vista/7. You need
the following DLLs installed in your system:
Usually these two DLLs are already present in your system directory. I want to
keep the size of the download as small as possible, so these libraries are
available separately from my home page (mfclibs.zip,
size 680KB). You only have to download these if you don't already have them
(just run F1PerfView and see if it starts up), then put them in the same
directory as f1perfview.exe.
After you’ve started F1PerfView, the main window appears. From here you can
open one or more telemetry files with File|Open,
where you can specify the file type at the bottom of the dialog, under
"Files of type:". If you usually want to load a specific type of
telemetry file you can set the path that game in the Options dialog, for
example for GP2 "C:\GAMES\GP2". You can also check
"Use as default path" and "Use alternative file
dialog" to select your files from a list that shows extra
information, like laptimes.
You can add more perf files for comparison with the File|Add
Buffer command. These will appear in the same views as the first
loaded perf files. Each perf file is stored in its own buffer. With the
command you can remove a buffer from the comparison.
When choosing the File|Open command, all existing
windows will be closed first.
F1PerfView currently supports four types of telemetry files.
GPx Performance Analysis files
These are the perf data files that you can save within GPx, using its internal
perf data viewer, under the "Save lap" button. Refer
to the game manual on how to fetch the performance data or how to extract it
from hotlaps. It is not possible to extract performance data from hotlaps
directly from within F1PerfView. If you're using GP2Lap to create extended GP2
performance data files, the best way to do that is using the "Extract
from hotlap" button in the drive options menu, else it might be
F1RS Telemetry files
These are the perf data files that you can save within F1RS, using its open
telemetry file dialog in the internal telemetry viewer. This is done by
clicking the button with the triangle and square on it (second from the left).
The file name is generated by F1RS, and the data is stored in the
".\Saved\Games" directory. F1PerfView will automatically show this
directory in the open file dialog if you specified the path to F1RS as
described above. The file names are built up like this: It starts with the
track number, then a 'l' with the lap number, then an 'i' with an index number.
MGPRS2 Telemetry files
These are similar to F1RS Telemetry files, but are split up in three separate
files. The file names start with "save", followed by
either a "1", a "2", or a
"3" (you should load the one with a "1"),
and then followed by an index number starting with "0".
LFS Replay Analyser Files
These are the perf data files that are saved by Live For Speed. They are stored
in the ".\data\raf" directory when saved in single
player mode during a replay.
Generic Comma Separated Value files
This is a custom file format using plain text to describe the data. It can be
used if you want to view performance data made by an external source. Usually
you created this external source yourself and you also need to generate the
import files yourself. The import file consists of a header and any number of
data lines. The header consists of two lines.
These first two lines are followed by the data lines. All data values have to
be specified using the metric system. For example, a file can start like this:
The first line gives general information about that data. The order and number
of values given here is mandatory and it goes like this: Information string,
date, lap time, track nr, lap nr. The first two strings can be anything you
like. The lap time is given in milliseconds. The track number and lap number
are free to choose, but note that two files with different tracks can't be
The second line defines which columns are present in the data lines. Possible
values are: "time", "dist", "speed", "acc_long", "acc_lat",
"revs", "throttle", "brake", "steer", "gear", "rh_lr", "rh_rr", "rh_lf",
"rh_rf", "st_lr", "st_rr", "st_lf", "st_rf", "ws_lr", "ws_rr", "ws_lf",
"ws_rf", "ca_lr", "ca_rr", "ca_lf", "ca_rf", "pos_x", "pos_y" (time,
distance, speed, longitudal acceleration, lateral acceleration, revs, throttle,
brake, steer, gear, ride height, suspension travel, wheel speed, camber, x
position, y position). The data lines have to correspond to these columns (you
can choose any columns in any order you like).
"MyData v1.0","19-08-1999 11:37:45",75.194,2,1
Below is a list of all data items. Data items are what you find as types in the
graph view, text view, and export dialog. Most data items values are shown in
standard metric units. However, for some it's more convenient to show a
converted value (e.g. km/h instead of m/s, or mm instead of m). If a data item
uses a conversion unit, it will be listed in the description.
Distance. Distance into track (not actual meters driven by car).
Time. Time, in seconds.
Speed. Speed, in kph or mph.
Steering. Steering angle, in degrees.
Throttle. Amount of throttle applied, ranging from 0.0 to 1.0.
Brake. Amount of brake applied, ranging from 0.0 to 1.0.
Revs. Engine revs, in rpm.
Gear. Ranging from -1 to 7 (-1 = reverse, 0 = neutral).
Ride Height. Ride height at all four corners, in mm. In graph view,
the ride height from the setup is overlayed.
Ride Height slow part. Ride height without fast changes.
Suspension Travel. Suspension travel at all four corners, in mm.
Note that the remaining suspension travel is shown (maximum suspension travel -
packers - suspension travel). In graph view, the line [max. suspension travel -
packers] is overlayed.
Suspension Travel slow part. Suspension travel without fast changes.
Wheel speed. Speed of each wheel, in kph or mph. Always zero for
F1RS (but not for MGPRS2) perf files since they don't contain this data. For
GP2Lap extended perf files, the data will have a higher resolution than normal
Wheel spin. Wheel speed minus car speed. Each wheel speed is
adjusted using the car's wheel base and front and rear tread, because in a
corner the outside wheel speed is higher than the inner wheel speed (if there's
no wheel spin or locking).
Camber. Lean relative to road for each wheel. Static camber is
overlayed. Only for LFS, F1RS and MGPRS2.
Angle. Angle in degrees.
Longitudal Acceleration. Acceleration in longitudal direction, in G.
Lateral Acceleration. Acceleration in lateral direction, in G.
Acceleration. Combined longitudal and lateral acceleration, in G.
Inverse Corner Radius. Equal to lateral acceleration divided
by speed squared. The result is multiplied by 1000. See Lap Faster for more information.
Steering Radius. The radius the car would drive with the current
steering input (angle of front wheels), in meters.
Actual Radius. The radius the car is driving with (distance from car
to center of turning circle), in meters.
Slip Angle. Difference between steering radius and actual radius,
measured in steering degrees. Negative indicates understeer, positive indicates
Ride Height - Suspension Travel. Difference between ride height and
Front Anti-roll bar Extension. Difference between left front
suspension travel + packers and right front suspension travel + packers.
Rear Anti-roll bar Extension. Difference between left rear
suspension travel + packers and right rear suspension travel + packers.
Tyre Load. Vertical force for each wheel.
Longitudal Tyre Force. Longitudal force for each wheel. Only for
Lateral Tyre Force. Lateral force for each wheel. Only for LFS.
Below is a list of wheel types. These can be selected in the graph view, text
view and export dialog. They are applicable for data items that have different
values per wheel, like ride height.
All Wheels. Special meta type for selecting all four wheels at once.
Left Rear. The left rear wheel (LR).
Right Rear. The right rear wheel (RR).
Left Front. The left front wheel (LF).
Right Front. The right front wheel (RF).
Sum. The sum of all four wheels.
Sum Rear. The sum of the rear wheels.
Sum Front. The sum of the front wheels.
Avg. The average of all four wheels.
Avg Rear. The average of the rear wheels.
Avg Front. The average of the front wheels.
Delta. The difference between average of the rear wheels and the
average of the front wheels.
Delta Left. The difference between the left rear wheel and the left
Delta Right. The difference between the right rear wheel and the right
After the file is loaded, a statistics view is shown (you can select a different
view in the Options dialog). The Window menu offers commands to open three
additional views on the perf file: a graph view, a text view, and a track view.
When all views are closed, the perf files will be closed too. All views can be
closed at once by closing the file with File|Close.
This view is the default view after loading a perf file. It shows information
and statistics about this and the added perf files. Each perf file has its own
column, where it gives the following information (inspired by Steve Pritchard’s
Grand Prix Analyser for F1GP perf files):
At the top various perf file specific information can be shown. The information
shown depends on the perf file type.
Lap time. The actual lap time driven in this lap.
Date. The date and time when the file was saved.
#Samples. The number of samples that are recorded in the perf file,
which depends on the lap time and the frame rate.
Sample rate. This is simply the number of samples divided by the lap
time. The number of samples and sample rate shown for F1RS perf files are only
for distance, time, speed and revs. All the other values have a sample rate
three times as low, and I just duplicate entries to make the sample rate equal
for all graph types.
Average Speed. The first number is the average of speeds in all
samples. The second number is the track distance divided by the lap time.
Average throttle. The average amount of throttle during the lap, in
Throttling full/between/none. "Full" means
the percentage of 100% throttle during the lap, "none"
the percentage of 0% throttle, and "between"
the remaining percentage.
Average brake. The average amount of brake during the lap, in
Braking full/between/none. Similar to throttling full/between/none.
Free roll. The percentage of simultaneous 0% throttle and 0% brake
during the lap.
Average steering. Usually, this is negative for a clockwise circuit
and negative for an anti-clockwise circuit.
Maximum steering left.
Maximum steering right. Note that steering right is shown negatively
in the other views.
Gear shifts. The number of gear shifts, both up and down.
Driven distance. The actual distance driven by the car.
A solid circle is drawn on the left of each perf file name using its own
colour, to help identifying them in the graph view. Clicking on its header
enables or disables the buffer. Disabled buffers are not shown in a graph view
or track view.
The statistics view can also be printed with File|Print.
Select File|Print Preview to preview it before
This is the view that shows all the graphs of the perf files. Contrary to the
internal perf viewers, only one graph type is shown at the same time. Multiple
graph types can be viewed by opening additional graph views.
The graph type on the y-axis can be selected with the combobox in the toolbar of
this view’s window, labeled "Y". Since version 1.6,
it's also possible to change the type on the x-axis, using the combobox labeled
"X". Some graphs (e.g. Ride Height) only show one buffer at a time,
since they show sub-graphs for each wheel. For these graph types, you can
select a different buffer with the combobox at the top of this view, labeled
"Buffer", or you can select a specific wheel with the combobox
, which will show one wheel but all buffers. If one of these graphs is selected
on the x-axis and not on the y-axis, the average of all wheels is taken as the
x-value, unless a specific wheel is selected.
Besides showing the common data items, the graph view can show a time
difference graph. It shows the relative difference in lap time between all
buffers. This is a special graph and cannot be selected on the x-axis. It
always uses distance on the x-axis.
You can temporarily remove the toolbar using the context menu (or Ctrl+B), to
Two modes are available in the graph view: selection mode and cursor mode. The
view defaults to selection mode. While in selection mode, a selection is made
by dragging the mouse over the graph while holding down the left mouse button.
Once a selection is made you can zoom in on the selection.
Use the View|Zoom X, View|Zoom Y
menu’s, or mouse wheel to zoom the graph in and out (use shift + mouse wheel
for Y zooming). Zooming a selection is done by choosing View|Zoom
X|Zoom Selection. To zoom back to the complete range select
View|Zoom X|Zoom All
. The range is shown as time and as distance in the status bar.
Cursor mode is entered by selecting View|Cursor Mode.
This will show a vertical cursor, which position can be changed by clicking the
left mouse button on the graph. Shown at the top of the cursor are the values
at that point of the graph. If the x-axis does not contain distance, then the
cursor will be very small showing D: followed by the distance and then both the
x- and y-value in parenthesis. Moving the cursor will then change the selected
distance while the real cursor is a cross in the graph. Return to selection
mode by selecting View|Cursor Mode
Most commands are also available using short-cuts or the context menu
(activated by right-clicking on the graph).
In the graphs themselves you’ll notice little boxes with a number in them. These
are the maximum y value (with the line downwards), minumum y value (with the
line upwards), maximum x value (with the line leftwards), and minimum x value
(with the line rightwards) for the shown selection. The x values are only shown
if the x-axis does not contain distance. At the bottom left there is a little
box showing the average y value for the selected distance. In the Brake graph
you’ll also see additional boxes above each peak. These contain the distances
at which full brake was applied, in metres. To turn off showing these numbers,
invoke the Show Values
command in the popup menu.
With the combobox labeled "Wheel"
you have the choice to show data for a specific wheel, wheel combination, or
all wheels (default). When showing data for all wheels, you only see one buffer
at the time (the selected one). When showing data for a specific wheel or wheel
combination, the graph behaves like the other graphs so you can compare data
from multiple buffers.
Besides the wheel selection combobox you can see a button labeled
"Sync". With this button you can toggle the synchronization of
multiple graph views. When the button is depressed then zooming, scrolling and
selecting a different buffer or cursor position will have effect also on all
other views with this button depressed.
This view shows the actual data values. The text view can be synchronized with
other views by selecting View|Synchronize or
right-clicking in the text view and toggling "Synchronize"
in the context menu. It will then limit the perf records according to the
zoomed selection in graph views, set the selected row to the cursor position in
the graph view and vice versa, and show the same buffer as the graph view. This
can be overridden by selecting a different buffer using the context menu
(buffer <default> uses the one from the graph view).
Columns can be added or removed using the context menu. Clicking on the column
header will sort on that column. Clicking again will reverse the sorting. Hold
the Ctrl key to sort on extra columns.
This view shows driving lines of the cars and optionally an underlying track
GP2: uses higher resolution data with GP2Lap extended files. The extended perf
file option was added to GP2Lap in version 1.05, and must be enabled in the .cfg
logPerf = 1
GP3/GP3-2000/GP4: uses lateral acceleration to calculate higher resolution
F1RS: works only if an accompanying ghost file can be found.
If the view is synchronized, it will scroll along with the other views, and
lines outside of the selected range will be gray. The little dots in the
picture are the center of car radii. The larger white dots on the driving lines
indicate the current cursor position.
This is available only for LFS and GP2.
You can scroll manually by using the num-locked keypad keys, or by
left-clicking the mouse, holding it, and then moving the mouse. Zooming is done
with the default zoom buttons/accelerators and with the mouse wheel.
Double-clicking will reset the zoom/scroll positions, and another double-click
will undo that.
Use the context menu to toggle drawing of the different parts of the track.
For LFS it only works if it can load
exported track data. These .SMX files have to be extracted to
a directory called data\smx within the LFS directory. You have to
create the smx subdirectory within the data
directory yourself. Also make sure to specify the LFS directory in the
F1PerfView options, so it can find these files automatically.
The track view shows a detailed coloured top-view of the track, including kerb
stones, checkpoints, and all sorts of objects. Use the context menu to
GP2Lap must be used for GP2 to export track data. If the track isn't shown, make
sure the correct path to GP2 is entered in the Options dialog. This way
F1PerfView can find the data file for the track, which should be located in the
gp2lpdat directory under the main GP2 directory. As GP2Lap will dump the
segment file as you start a session (after GP2 has compiled the track file into
memory), and the segment files have a unique name (using the track checksum),
F1PerfView supports all custom tracks besides the default tracks automatically.
Also, F1PerfView supports all your old hotlaps. Just 'reperf' them using the
"Extract from Hotlap"
option in GP2, and save your new extended perf file.
The track view shows a top-view of the track with correct scaling and dashed
best line (CC line). It also draws kerbs. There are two types of kerbs, usually
a low one and a high one. One type is drawn red/white (usually the high kerb),
and the other type is drawn blue/white.
Exporting Perf Files
Perf files can be exported to an ascii file (or .csv file) by
selecting the File|Export command. It will show a
dialog where you can select all data types you wish to export. It's possible to
export multiple buffers. They will simply be appended to each other. For each
type you can enter a range that will make sure that only lines are exported
that have all columns within (or optionally outside of) the specified range. An
additional checkbox "Selected range only" can be
checked to easily set the distance range to the last zoomed in range in a graph
view. Header and column names are optional.
F1PerfView has a built-in setup editor for GPx setup files. You can open the
editor with the Setup|Edit command, or open a setup
file with the Setup|Open command. If there's a setup
file with the same file name - and in the same directory - as a perf file, this
setup file is loaded automatically when you load that perf file. It’s not
possible to extract a setup from a hotlap file (use HOFxLapW for that). Saving
the setup is done with the Setup|Save
command. The file name will be the same as the perf file name (with a different
extension) or as it was loaded if you loaded it explicitly.
Note that since version 1.11 each perf buffer has its own setup. So if you load
multiple perf buffers, editing a setup only affects the current buffer (current
buffer is the one that was last selected in either the graph or the text view).
To save all modified setups at once, hold the Shift key while
invoking the Setup|Edit command.
Use the menu command View|Options to open the
options dialog. In this dialog you can change the following options:
Primary Game. Select the game you usually use F1PerfView for. This
will determine which paths will be defaulted to. It's also important to select
the correct GPx game because it is used to decide for which version of GPx the
perf file is (they all have the same extension and format).
Path. Enter the path for each game you're using. Especially
important for GP2 as it is needed for the track view, and F1PerfView can't
determine its path by itself.
Use path as default. If checked, the file open dialog will default to
the game's perf file path. The relative directories are: "gpsaves"
for GP2/GP3, "saved\games", "save\telmetry"
for MGPRS2, and "data\raf"
for LFS. If not checked, the current directory will be used.
Use alternative file dialog. If checked, the file open dialog will
be replaced by a special dialog that shows lap time, track, lap number and
date. It lacks directory browsing, but instead it shows all files recursively
Flicker-free drawing. If checked, the graph view and track view will
be drawn without flickering (which is a bit slower).
Use metrics. If checked, all distances/speeds units will be metric,
else they will be English.
Default cursor mode. Sets the default value of this graph view setting.
Default draw lines. Sets the default value of this graph view setting.
Default show values. Sets the default value of this graph view setting.
Max. radius length. For GP2Lap extended perf files only: sets the
cut-off for car radius, which is used in the graph view graphs for Steering
radius, Actual radius, and Slip, and in the track view.
Open file with. Select the view that each opened perf file will
Statistics print header. The header line that will be printed above the
I'd like to thank Ivanhoe Vasiljevich, Grant Reeve, Martin Granberg, Dave Gymer
and Robin Smit for their testing, help, suggestions and support.
Thanks to Manfred Ortmann, Rick Devente and Rejean Bazinet for providing info
Thanks to Scawen Roberts for adding perf data to Live For Speed.