Pro Engineer/Simulators
Every game this program reads, and exactly what each one measures.
No simulator publishes everything. What matters is what happens to the advice that rests on a measurement a game does not make — and the answer here is that it goes quiet and says why, rather than reading a missing field as a zero and telling you your tyres are finished. “Not measured” and “measured as zero” are different answers. This table is the first one.
✓ the game reports it, and the program uses it ✗ the game does not report it — the advice that needs it is withheld ? nobody has measured it yet
| What the game reports | Assetto Corsa | Assetto Corsa Competizione |
|---|---|---|
| Live telemetrySpeed, revs, gear, fuel, position on track — everything the screens draw. | ✓ | ✓ |
| Tyre pressuresLive, per corner. | ✓ | ✓ |
| Tyre temperatureThe core of the tyre, which every game that reports tyres at all reports. | ✓ | ✓ |
| Tread temperaturesInner, middle and outer across the tyre. The camber advice is inner minus outer, so a game without them gets no camber verdict rather than a guessed one. | ✓ | ✗ |
| Tyre wearHow much tread is left. Without it the wear advice and the stint projection stay silent. | ✓ | ✗ |
| Brake temperaturesPer corner, live. | ✓ | ✓ |
| Brake pad and disc wearMillimetres left, per corner. Over a GT3 stint this is the consumable that decides the race, and it takes the place of tyre wear on a game that has one and not the other. | ✗ | ✓ |
| Track gripAs a number the cold-pressure calculation can use. A game that says how the track is by name instead gets no allowance added for it. | ✓ | ✗ |
| Track limitsWhether the lap counted. A game that never says has every lap treated as clean — which is the absence of a verdict, not one. | ✗ | ✓ |
| Sector timesPer sector, and the best of each across a session. | ✓ | ✓ |
| Setups on diskReading the car setups the game saves, and writing one back. | ✓ | ✗ |
| In-game panelThe five-window overlay drawn inside the car. It is a Custom Shaders Patch app, and CSP is an Assetto Corsa mod. | ✓ | ✗ |
| Track lengthIn metres. Without it, anything that would be reported in metres says it was not measured rather than inventing a circuit. | ✓ | ✗ |
The program's own copy of this table is in the code, one constant per game, and the screens read it rather than a list written by hand — which is why a row here cannot be a promise the application does not keep. The launcher shows the same list for whichever game you picked, before you start.
Every one of these crosses used to be a zero, and a zero is not silence — it is a confident wrong answer.
A game that does not publish tyre wear leaves the field at zero, and zero means “no tread left”. This program has shipped that verdict once, on a set of tyres that had just left the pits. It is where the whole idea came from.
Camber advice is inner tyre temperature minus outer. On a game that publishes neither, both are zero, the difference is zero — and zero difference reads as a perfectly set-up car rather than as no measurement at all.
The cold-pressure target gains a little for a green track. A game that does not report grip leaves that at zero, which is greener than any real session — so the target quietly drifted up on every lap of every race.
A game is a folder, a table entry, and an honest answer to “what can you measure”. There are no conditionals through the middle of the engineer, which is why the second one was an addition rather than a rewrite.
| 1 | A recording, not a header file | A whole session watched four bytes at a time, because what a field did over two laps identifies it and one snapshot does not. Every layout this project has got wrong, it got wrong by writing down a number somebody said. |
| 2 | The structs, pinned to it | With the values asserted, not the sizes: a size assertion cannot notice two fields swapped. |
| 3 | What it can measure | The row in this table. Each flag traced to something in the recording, and the advice that rests on a missing one goes quiet by itself. |
| 4 | Where it keeps its files | Read off a machine that has the game. A guessed install path resolves to nothing and looks like the program being broken. |
| 5 | A stint, read line by line | The thresholds were chosen against one game's cars. Nothing is called supported until somebody has driven the new one and read every line of advice against the numbers that produced it. |
Ask for one. The list of planned simulators is in the code with a sentence each about what stands in the way — iRacing publishes through a mapped file of its own, rFactor 2 needs a plugin the driver installs. If yours is not there, say so.