Skip to content

v0.4.5 - 2026-08-28

Choose a tag to compare

@github-actions github-actions released this 05 Sep 12:42

Release Notes

The release LAN was the point of. Two people, two machines, one network: one
drives and the other watches — every screen, not a summary — and it works
between the terminal and the window in any combination.

Numbered 0.4.5 rather than 0.4.3: the version this jumps over is the one where
the two front ends spoke different protocols, and nothing was released from it.

The frame does not change. Every shm-bridge.exe and every installed panel
from v0.4.0 onward keeps working, and nobody has to fetch a bridge.

Added

  • Watch somebody else's session, on your own screens. LAN is the tenth
    tab (0): S shares this session, W watches, Enter aims at whoever the
    cursor is on in the list of machines, O switches everything off keeping the
    addresses. Nothing else is asked — the port, the rate and being findable are
    chosen, and the one thing left is who to send to.

    What arrives is the whole reading, so the watching machine finds the laps,
    builds the traces, draws the map's line and runs its own engineer. A spectator
    gets every tab, in their own units and their own language, rather than four
    sentences written on somebody else's machine.

  • The copies find each other. A couple of hundred bytes every two seconds
    on a multicast group everybody joins, carrying a name, a role, a port, the car
    and the track — and nothing about the driving. Nobody reads an IP address out
    loud unless the network refuses multicast, and typing one still works.
    Announcing is a switch of its own: off does not stop you seeing anybody.

  • The terminal and the window speak one protocol. Either can watch either.
    Both machines have to be on 0.4.5: v0.4.2's window put a reading's parts
    at the top level rather than under one key, so its datagrams cannot be read —
    the shape changed, not just the name. The name is still recognised, which is
    what lets the screen say "that copy is older" instead of "something arrived
    that is not a session". Discovery is compatible: an older copy still shows
    up in the list.

  • Settings → SHARING [G] — readings a second, only-while-on-track, the
    quiet timeout, being findable, and whether a session is accepted from the
    whole network or only from this machine.

  • lan_probe — a probe that says which of the four halves of the network is
    at fault: this machine's address, the port, the group, and whether anything is
    arriving. docs/lan.md is the walkthrough, with its real output in it.

Fixed

  • The tyre pressure a car is judged against is its own class's. Reported on
    Overtake: "this app will always give you false information ... esp when it
    comes to tyre pressure". Every car was held to one figure — 27.5 psi, which is
    a GT3's — so a single-seater sitting exactly on its own 21 psi was told to
    inflate all four, on every lap, and the alert band it was outside was a band
    it should never have been inside. The class table has carried a hot pressure
    per class since v0.4.0 and the window's PRESSURES view was already reading it;
    the advice was the half that was not. The alert band moves with the target,
    and a number the driver typed still outranks the table.
  • A car with no wing is no longer told to change one. From the same report:
    "I'm setting up a road car, and its telling me to adjust front downforce."
    Road and vintage cars now get the mechanical half of the same fix — softer
    front springs or anti-roll bar for understeer, softer rear for oversteer —
    and nothing is invented to fill the gap. Advice about a part the car does not
    have is worse than no advice: it is the line that makes somebody stop
    believing the other seven.
  • The camber advice no longer contradicts itself. Told to add negative
    camber on a car already at -3.5°, a driver would read the reason first — and
    it said "the outer shoulder is not being loaded through corners", which is the
    reason to take camber out. Too little negative camber means the tyre stands
    up and the outer shoulder takes the load; that is what it says now, in the
    same words the lap debrief has always used. The message names the edge as
    well: "outer edge hotter" or "heated too evenly", rather than "contact patch
    inefficient" beside a number the reader had to interpret.
  • engineer_probe prints the tread it judged. Inner, middle, outer, the
    inner-minus-outer that every camber verdict is made of, and the camber the
    wheel is running. When that advice was questioned there was no way to ask the
    program what it had read — only what it had concluded.
  • A lap saved by an older release loads again. Selecting your own reference
    lap could answer "not a saved lap: missing field rpms". That field was
    added to a sample and not to the format's rules, so every lap saved before it
    stopped opening — and the laps most worth keeping are the oldest ones. x,
    y and rpms default now, and the rule is written where the next field will
    be added: one that arrives after the format shipped defaults, the ones that
    were there from the first version do not, so a genuinely wrong file still
    fails rather than loading as a lap of zeroes. The regression test uses the
    actual file that failed.
  • The demo fills the Analysis tab. It built one lap, and that tab is the
    half of this program that is about comparing: with a single lap the picker
    had one entry, there was no reference to overlay, the sector table had
    nothing to subtract and the delta was flat. Five laps now, a second and a
    half apart and slower in the corners rather than everywhere.
  • An empty mapping is no longer read as a running game. On Linux the bridge
    creates the shared-memory pages when it starts and leaves them when the game
    quits, so a reader gets a Reading of zeros whether or not anything is
    running. games::Reading::car_is_loaded is the shared answer — the car's
    name or its rev limit, not the status, because Assetto Corsa reports
    Status::Off in the menus and in the garage. A watched session obeys the
    same rule: a friend who has not started their game reads as waiting rather
    than as a nameless car at 0 km/h.

Changed

  • The summary receiver is gone from the terminal. Two sockets cannot hold
    one port, and of the two the session is the one worth having.
    broadcast::receiver is untouched in the core for relays and for anything
    outside this project, and broadcast_to still sends the summary alongside.
  • The settings categories, their captions and the letter that opens each are one
    list now. The footer's [A/S/D/F/G/H] is built from it, so it cannot go stale
    the way [A/S/D] did twice.
  • Sharing and listening each have a switch of their own, so turning either
    off keeps the address it was using rather than making somebody type it again
    next time.
  • A receiver reports the port it actually got. Asking for port zero means
    "any free one", and a screen has to be able to say which one that was.
  • The hint check walks the tab strip rather than a list of nine tabs written
    out by hand — a tenth added to the program and not to the test is exactly the
    failure that test exists to catch, one level up.

Known

  • Both machines have to be on 0.4.5 to watch each other. There is no
    half-working mode with v0.4.2, and the screen says so by name rather than
    calling the datagram noise.
  • A whole reading is 1917 bytes, which is two IP fragments rather than one.
    On a switched network that is nothing; over a mesh VPN it is why the rate is
    a setting and why the LAN screen counts the readings that never arrived.
  • Assetto Corsa Competizione's advice thresholds are still Assetto Corsa's.
    Camber and tread verdicts are withheld there and cannot be wrong; the brake
    and pad numbers are owed a driven stint. docs/plan-acc.md §10 is the item,
    and it is why the graphical front end still offers one game.

ac_tui 0.4.5

Install ac_tui 0.4.5

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Rgosh/ac-pro-engineer/releases/download/v0.4.5/ac_tui-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/Rgosh/ac-pro-engineer/releases/download/v0.4.5/ac_tui-installer.ps1 | iex"

Download ac_tui 0.4.5

File Platform Checksum
ac_tui-x86_64-pc-windows-gnu.zip x64 MinGW checksum
ac_tui-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum

shm-bridge 0.4.5

Install shm-bridge 0.4.5

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Rgosh/ac-pro-engineer/releases/download/v0.4.5/shm-bridge-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/Rgosh/ac-pro-engineer/releases/download/v0.4.5/shm-bridge-installer.ps1 | iex"

Download shm-bridge 0.4.5

File Platform Checksum
shm-bridge-x86_64-pc-windows-gnu.zip x64 MinGW checksum