F1PerfView 1.25
August 28, 2006
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
http://www.xs4all.nl/~rsdi/f1perfview.html
LEGAL
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.
DISCLAIMER
USE THIS PROGRAM AT YOUR OWN RISK. THE AUTHOR IS NOT RESPONSIBLE FOR ANY
DAMAGE DONE TO ANYTHING BY THIS PROGRAM IN ANY WAY.
Archive Contents
The downloaded archive should consist of these files:
- f1perfview.exe. The executable.
- f1perfview.html. This help document.
- f1prfdat.dll.
- f1prfexp.dll.
- f1rsutil.dll.
Requirements
F1PerfView is a 32-bit MFC program for Windows 9x/NT/ME/2K/XP. 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.
Getting Started
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 File|Delete Buffer
command you can remove a buffer from the comparison.
When choosing the File|Open command, all existing windows will be closed first.
File Types
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 incomplete.
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.
-
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 loaded together.
-
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).
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:
"MyData v1.0","19-08-1999 11:37:45",75.194,2,1
"time","dist","revs","speed","gear"
0.000,0.000,100.0,40.52,1
0.011,1.900,100.2,41.23,1
etc.
Performance Data
Data Items
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 perf
files.
- 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.
- 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 oversteer.
- Ride Height - Suspension Travel. Difference between ride height and suspension travel.
- 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 LFS.
- Lateral Tyre Force. Lateral force for each wheel. Only for LFS.
Wheel types
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 front wheel.
- Delta Right. The difference between the right rear wheel and the right front wheel.
Views
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.
Statistics View
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.
- Lap number.
- 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.
- Minimum speed.
- Maximum speed.
- Average revs.
- Minimum revs.
- Maximum revs.
- Average throttle. The average amount of throttle during the lap, in
percentage.
- 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 percentage.
- 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 printing.
Graph View
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 labeled "Wheel", 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 save space.
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 again.
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.
Text View
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.
Track View
This view shows driving lines of the cars and optionally an underlying track map.
Driving lines
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 file with:
logPerf = 1
GP3/GP3-2000/GP4: uses lateral acceleration to calculate higher resolution data.
F1RS: works only if an accompanying ghost file can be found.
LFS: works.
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.
Track map
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.
LFS
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 enable/disable checkpoints.
GP2
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.
Setup Editor
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.
Options
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 at once.
- 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.
- 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 start with.
- Statistics print header. The header line that will be printed above the
statistics.
Acknowledgements
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
about MGPRS2.
Thanks to Scawen Roberts for adding perf data to Live For Speed.