github alondero/automobililamborghini-recomp v0.3.0
Automobili Lamborghini Recompiled v0.3.0

latest releases: v0.6.0, v0.5.0, v0.4.2...
one month ago

Pre-release. Built from main for early testing and feedback. Expect rough edges —
crashes, audio glitches, and missing native translations are still the rule, not the
exception. Please open issues rather than running off the latest commit silently.

⚠️ You must supply your own ROM

This release contains no game assets or code from the original cartridge. It ships
only the recompiled executable. To play, you must obtain a legal copy of
Automobili Lamborghini (USA).z64 (the North American release is the only one
supported) and place it next to the executable before launching. See BUILDING.md
for the full instructions; in brief:

  1. Extract the archive for your platform into its own folder.
  2. Drop Automobili Lamborghini (USA).z64 into that folder.
  3. Launch the binary.

Game saves go alongside the ROM (or under %LOCALAPPDATA%\LamborghiniRecomp on
Windows / ~/.config/LamborghiniRecomp elsewhere — see README.md).

What's working

Game is playable, with upscaled resolution, high FPS, and widescreen (including HUD)
support. Since v0.1.0 the widescreen treatment has been extended across all race
modes
(1P arcade, 2P split-screen, time trial, alt-dial style), and the skybox,
lens flare, and HUD geometry now track the wide frame across every height-ratio
option (Clamp16x9, Full, Original). There's still glitches so please report
issues you find.

Closed since v0.1.0:

Widescreen graphics

  • #3 / PR #53 — Skybox background frustum now rebuilds its aspect ratio per
    frame (it was hardcoded to 4:3, leaving gaps at the wide edges under
    ar_option: Expand).
  • #40 / PR #65 — Sun lens flare stretches across the full widened frame
    instead of being cropped at the 4:3 boundary.
  • #42 / PR #55 — HUD edge-pinning extended to 2P split-screen (per half),
    time trial, and the alternate dial style.
  • #56 / PR #75 — 2P minimap pinned to each half's left edge under
    widescreen.
  • #67 / PR #70 — HUD geometry (rev needle, minimap player arrow, minimap
    track outline) now tracks the effective rect-pin aspect, so it stays glued
    to the rect pins across Clamp16x9 / Full / Original height-ratio options
    (the previous hardcoded 16:9 magnitudes detached from the rects on ultrawide
    monitors).

Developer tooling (now ships in the binary)

  • #12 / PR #48 — Developer warp menu: F1–F6 jumps to circuits 1–6 from
    anywhere after boot (attract, title, menu, mid-race); LAMBO_WARP= circuit[:laps[:car[:players]]] does the same on cold boot, reaching a race
    in ~2.5 s instead of ~37 s through the attract cycle. These are debug keys —
    ignore them unless you're reproducing a track-specific issue.
  • #22 / PR #59 — Developer save-state: F7 saves / F8 loads a snapshot of
    guest RDRAM for deterministic debug repros (LAMBO_STATE_LOAD=<file> on
    cold boot lands on the exact spot). Heads-up: park and wait for the scene to
    fully load before F7 — a snapshot taken while the asset thread is still
    streaming restores RAM under it mid-job and can crash on load. The normal
    Controller Pak save system is unchanged.

CI / build

  • #61 / PRs #62, #63, #64patches/0007 (savestate thread-context relink,
    required by the save-state above) is now wired into both CI build jobs;
    build.sh / build.ps1 are the single source of truth for the build
    sequence, eliminating drift between local and CI builds.

Texture tooling (developer-facing)

  • #50 / PR #57tools/decode_dump.py: CI4/CI8 textures now decode with
    correct colours and no shear. Root cause was a TLUT byte-order bug — RT64
    stores 32-bit words byte-swapped in RDRAM (A ^ 3), which the decoder now
    honours.

What's not done yet

This is a pre-release — plenty of force_stub.txt still includes real game
primitives rather than no-ops. The tracker is the canonical "what's next" list.

If you find a crash, please open an issue with lamborghini_crash style notes:

  • Output window text (or the crash-*.txt dump if the native handler caught it)
  • Commit / build provenance (below)
  • Approximate in-game location (title screen / car-select / race lap 2 / etc.)

How to run

Linux

unzip lamborghini-recomp-linux-x64.zip -d lamborghini-recomp
cp "Automobili Lamborghini (USA).z64" lamborghini-recomp/
./lamborghini-recomp/lamborghini_modern

Requires libsdl2-2.0-0 and a Vulkan-capable GPU + driver at runtime. Most
desktop distros ship these already.

Windows

Extract lamborghini-recomp-windows-x64.zip anywhere, drop your ROM in the same
folder, and double-click lamborghini_modern.exe. The bundled SDL2.dll,
dxcompiler.dll, and dxil.dll must stay alongside the EXE.

F11 / Alt+Enter toggles fullscreen (and remembers the choice next launch).

Build provenance

  • Commit: 9bef7dc (main, 2026-07-09)
  • Workflow run: #28996890290 (Build & Release, dispatch from this SHA)
  • Toolchain: Linux build on ubuntu-latest with gcc / cmake / ninja /
    libsdl2-dev / libvulkan-dev. Windows build on windows-latest with
    MinGW-w64 GCC + Ninja (PowerShell, not MSYS bash) per the project's toolchain
    notes.

If you'd rather build it yourself from source instead of running a pre-built
binary, see BUILDING.md. For graphics settings, see README.md.

Don't miss a new automobililamborghini-recomp release

NewReleases is sending notifications on new releases.