Repository navigation
Releases
v0.2.2
New names. The mod's game-side files are renamed to dsfcars: the plugin is plugins\dsfcars.asi, and the cars are in dsfcars\. The next install or uninstall moves an older install to the new names by itself, and every car keeps its ID and save flags (#564). Settings you changed in the old plugins\dsfforza.ini are not carried over, so the new plugins\dsfcars.ini starts with the defaults.
Driving
- How the game computes drive force, drag and coasting is now decoded (#570). Ports keep their engine, drag and inertia rules fitted to DSF's own cars: taken from Forza's data instead, they put ports further from DSF's versions of the same cars (0-60 mph 2 to 5x slower).
- Top speed and gearing use DSF's own speed scale, and shifts take Forza's shift time (#532).
Lights
- Headlights come on by day per car, not per side: the EB110, M3 E92 and FH1 tour bus are now symmetric (#573).
- On FH1 cars, tail lamps that Forza lights only when braking are stop lamps, and red lens pieces follow the lamps behind them (#559, #558).
Looks
- The outside views (chase, free, cinematic, Film Director) draw the whole cabin. Before, they drew only what the usual chase camera sees through the windows, so from above, low or close up the centre console, floors and passenger seat were missing. 63 cars still have the partly drawn cabin (#572, #578).
- The wheel blur disc is the car's own rim spinning, not a picture over a backdrop (#407).
- Garage pictures: badge and plate lettering at the game's own size (#555).
- Engine sound: smoother crossfades between the recorded loops (#461).
Garage
- After a quit to the main menu, the garage's card row keeps moving, and big makers keep all their cars, the game's own included (#574).
Car manager: a new Traffic sets tab and cars.cmd traffic ... commands put your cars in the chapters' traffic sets, with their share and weights. It's off in this release, and so is the plugin's raise of how many car models the game holds at once: at the raised count the game can crash in free roam (#586). Your cars still come as the game's interesting vehicles, as before. Turning the sets on (cars.cmd traffic ambient) at the default 35 slots leaves little or no room for your cars.
Upgrading: run install.cmd from this release. Every car is converted again, which takes a while. Your cars keep their IDs and save flags.
Known issues
- The Porsche Carrera GT's suspension is far too soft (#585).
- Raising
vehicle_slotsabove 35 inplugins\dsfcars.inican crash the game in free roam (#586). - With the traffic sets on, switching to the Epilogue's set in game can crash (#584).
- Engine sounds: the volume mix and the transitions between loops (#571).
- Some cars come with customization parts instead of stock ones (#575).
- The Volt, Leaf, Tesla Roadster and CR-Z play the engine sound of the DSF car they're based on (#497).
What's Changed
- Car packages: the garage card emblem is in each package (self-contained), not a manager-kept shared copy by @xob0t in #533
- Handling (#462): top speed and gearbox in DSF's world speed (HUD shows Forza's top speed), Forza's shift time; remaining fits marked TODO(fit) by @xob0t in #532
- Car packages: the emblem member is emblem.dds, not forza_emblem.dds (the format is source-neutral) by @xob0t in #535
- Garage pictures: one SPOI per picture in the car manager's gui.sp; shared SPOIs overflowed a GUI Image large slot (#540) by @xob0t in #543
- Exterior fitted-rule audit: wheels, plates, paint, exhaust, cut-outs; axle_fits without its sourceless clamp by @xob0t in #534
- dsfforza.asi: the file redirect passes the names it doesn't list on through Driver.exe's CreateFileA import (archive.redirect_chain) by @xob0t in #545
- Lamps: centre lamps straddle x = 0 within their colour's side lamps; centre entries have no nearer mirror partner (#430) by @xob0t in #539
- Engine sound (#461): p596 0 with the Forza bank; crossfaded loops share their pitch-curve points; crossfades peak at the Forza recording rpms by @xob0t in #549
- car_manager: refuse to make the GUI copies without the vanilla vehicleStats (#544) by @xob0t in #546
- jobpool: one job pool for every build, render and survey on the PC; run-series holds it while a game loads by @xob0t in #536
- render_compare: read builds without dngvehicles.sp from their merge plan, or their manifest by @xob0t in #531
- carstore: one car store for every worktree, by fingerprint; port_batch affected / --affected / --before by @xob0t in #537
- Cockpit gauges (#547): the needle overrun is DSF Enhanced's FOV scalar at 0xDD9A80; research note, vanilla and roster survey by @xob0t in #553
- gentle: the main checkout's out/gentle sets Idle priority for every worktree by @xob0t in #554
- Garage pictures: badge and plate glyphs at 1:1 in vanilla's cells, badge glyphs 98 x 56; fitted-rule audit of the picture code by @xob0t in #555
- register.lua: register package cars only when dsfforza.asi has loaded them (#511) by @xob0t in #556
- Lamps: on FH1 cars, tail lamps Forza lights only when braking are stop lamps (0x02); a red lens piece takes the state of the lamps behind it by @xob0t in #559
- Wheels: the blur disc's texels are the converted rim spinning (its rotational mean per ring, rotor included), not Forza's picture over a chosen backdrop (#407, #419) by @xob0t in #560
- conversion: --no-wheel-blur no longer fails with KeyError 'wheel_blur' on cars with a blur tint by @xob0t in #561
- Rename the game-side runtime to dsfcars, with a migration of existing installs (#564) by @xob0t in #565
- dsfcars.asi: raise the vehicle spool slots (models held at once) from 35 to 41; research/traffic.md by @xob0t in #568
- Handling (#516): the drive force, drag and coasting decoded; Forza-derived engine, drag and inertia move ports away from DSF's cars by @xob0t in #570
- Lamps: FH1 clear lenses and reflectors keep the lamp they were placed on before the stop split (#558) by @xob0t in #576
- Car manager: traffic roster: ports in the traffic sets, the pool and its weights, interesting vehicles; CLI and window by @xob0t in #569
- Lamps: head lamps light by day (0x1D) per car, not per side (#573) by @xob0t in #577
- Chase cabin: the exterior draws the whole cockpit cabin; the ring cull only for an exterior over its size checks (#572) by @xob0t in #579
- Garage: the card window keeps moving after a quit to the main menu (each world's menu gets its keys wrapped) (#574) by @xob0t in #581
- dsfcars.asi: vehicle slots past 45 (the class-7A provider's pool, object pool 0x16, MODL records, Wwise's default pool); default 50 (#566) by @xob0t in #582
- Defaults off: no vehicle slot raise and no traffic set changes until #586 is fixed by @xob0t in #587
Full Changelog: v0.2.1...v0.2.2
v0.2.1
Fixed
- The crash at the start of free roam with many cars installed (#540). The garage pictures of all cars were packed several to a slot in the game's picture memory, which overflowed when the game loaded them, for example after the garage or when new cars were unlocked. Each picture now has its own slot, as in the unmodified game.
- Ported cars' garage cards show the Forza emblem again instead of the SF disc (#510). Each car package now carries its own emblem.
Cockpit
- Virtual dials end at the car's own top-speed or redline mark.
- The hands sit where DSF's own arms grip the wheel.
- Wipers and A-pillar trims seen from inside draw dark, as in Forza.
Upgrading: run install.cmd from this release. Every car is converted again, which takes a while; your cars keep their IDs and save flags. If you're on 0.2.0 and turned cars off because of the crash, car_manager enable them again.
Known issues
- The Volt, Leaf, Tesla Roadster and CR-Z play the engine sound of the DSF car they're based on (#497).
What's Changed
- Cockpit: fitted-rule audit; data values for the virtual dial scales, outside-part texels and the arms' grips (dash placeholders kept as TODO fits) by @xob0t in #513
- AGENTS.md: a fitted rule stays until a derived rule replaces it by @xob0t in #514
- Car packages: the Forza emblem on garage cards again (shared emblem texture beside the packages, kept by the car manager) by @xob0t in #523
Full Changelog: v0.2.0...v0.2.1
v0.2.0
What's new
- FM4 DLC cars. Put your Forza Motorsport 4 DLC packs (the hash-named Xbox 360 files) anywhere under
assets. The installer then builds the cars the discs don't have: up to 148 more, from 15 car packs. Each car gets its name, maker, logo and engine sound from its pack. A pack you don't have adds nothing. FM4 disc 1 is still needed. See INSTALL.md. - Each car is its own package. The installer no longer replaces the game's
dngvehicles.sp,gui.spor font files. Each car is a separate file underdsfforza\cars, and dsfforza.asi loads it at run time. This removes the 4 GB limit that kept the DLC cars out. - Upgrading from 0.1.8 or earlier is automatic. The installer restores the game files the old install replaced, then installs the packages. Every car keeps its ID, so save flags such as owned garage cars carry over.
- Clearer installer messages. The installer tells you if you downloaded GitHub's source zip (Code > Download ZIP) instead of the release. It also stops before installing if your Driver.exe isn't the 1.04 build the plugin works with; before, the game crashed on loading.
- Fixed: the install could fail with
TypeError: 'bytes' object is not callablewhile it made the garage pictures (#465).
Upgrading: run install.cmd from this release. Every car is converted again, which takes a while.
Known issues
- The Chevrolet Volt, Nissan Leaf, Tesla Roadster and Honda CR-Z play the engine sound of the DSF car they're based on (#497).
What's Changed
- FM4 DLC packs as a car source: packages by header, names and years from each pack, version choice from files (#162) by @xob0t in #458
- AGENTS.md: Fixes #N for full fixes, Part of #N for partial ones by @xob0t in #464
- Car packages: cars from per-car files beside the vanilla dngvehicles.sp ([archive] packages, one-car proof in game; #170) by @xob0t in #456
- merge-pr.ps1: retarget stacked PRs to master before deleting their base by @xob0t in #467
- Car packages 1/5: robust loader (checks, many packages, entries past 1100, read timing, file name log) (#451) by @xob0t in #466
- Car packages 2/5: package format 1 (.dsfcar), validator, car_package pack (#452) by @xob0t in #468
- Car packages 3/5, part 1: car manager (install, enable, disable, remove, stable IDs) (#453) by @xob0t in #469
- merge-pr.ps1: keep a worktree with uncommitted or untracked files by @xob0t in #470
- merge-pr.ps1: don't let gh remove the PR's worktree; leave a dirty worktree untouched by @xob0t in #471
- merge-pr.ps1: drop the remote branch delete (GitHub already does it) by @xob0t in #472
- Car packages 3/5, part 2: pictures, badges, plates and names in game (generated GUI files, CreateFileA redirect) (#453) by @xob0t in #475
- merge-pr.ps1: leave the PR's worktree to its worker by @xob0t in #477
- Car packages 4/5: port_batch --packages, install.ps1 -Packages, dsff install --packages (opt-in) (#454) by @xob0t in #479
- Car packages 5/5: uninstall, migration from a merged install, save safety (#455) by @xob0t in #480
- car_manager install takes a folder: 573 package paths overflow the command line by @xob0t in #481
- car_manager: each car's .sp in its own folder by @xob0t in #483
- Car packages are the only install; a merged install migrates on the same IDs by @xob0t in #485
- Car packages: dsfforza.asi writes the model ID in memory; car.sp is installed as the package has it by @xob0t in #487
- car_manager: manager.json keeps only what the manager owns (state format 2); manifests from each car's car.json by @xob0t in #488
- gui_assets: GUI step no longer fails at the second car with one render job (#465) by @xob0t in #490
- install: say when the folder is GitHub's source zip, not a release (#474) by @xob0t in #491
- install, report: check Driver.exe the way dsfforza.asi does (#482) by @xob0t in #492
- dsfforza.asi: package reads asynchronous (they ran on the main thread; one took 80 ms) by @xob0t in #494
- engine_sound: a FM4 DLC car's ET, HT and banks from its own pack, then the discs (#457) by @xob0t in #496
- FM4 DLC cars in the build: merged FM4 gamedb from the packs' merge.slt, pack names and logos, built by default when packs are found by @xob0t in #499
- port_batch: packages builds past 4 GiB (721 cars): no merged archive, lint from the merge plan, renders from shards by @xob0t in #501
Full Changelog: v0.1.8...v0.2.0
v0.1.8
What's new
- The chase camera shows each car's real cockpit through the windows: the steering wheel sits on its column, the dashboard has its own artwork
- Wheels sit in their arches: track, ride height and wheelbase now come from whichever of Forza's own data fits the car (Saleen S7, VW Beetle 68, Aston Martin V8 Vantage, RUF Yellowbird and about 90 more).
- Rims and wheels use Forza's own wheel shading: no more black-disc rims (Focus RS500), chrome rims draw silver, inner rims darker.
- Rear number plates sit in the car's own plate recess (BMW M3 E46, Joss JT1, Focus RS500 and about 80 more).
- Tail lamps behind lenses show their real detail instead of a mottled or scrambled pattern (Commodore race cars, DS3 Racing, M3 E46), and clear-glass tails are no longer over-bright.
- Head lamps behind tinted lenses glow in the lens colour (Viper GTS-R and other race cars); the Viper's rear emblem is its high stop lamp, and 15 cars gain a working high stop lamp.
- The Mercedes SLR and Aston V12 Zagato have their proper wheels; race-car windscreens shatter as one pane after a front hit (Joss JT1).
- The chase-view steering wheel lines up with the cockpit wheel on every car.
- Every car is converted again; the install is about 3.6 GB.
All changes: v0.1.7...v0.1.8
v0.1.7
What's new
- Garage pictures show each car in its first Forza colour, the maker's lead colour: Ferraris are red again instead of yellow. Cars whose first colour is black, grey or white show that colour.
- The cars are the same as in v0.1.6; only the garage pictures change.
All changes: v0.1.6...v0.1.7
v0.1.6
What's new
- Works with Felony Rework 2.3 Hotfix 1, tested in game with every car. Install Felony Rework as its readme says, then run this installer with
--force. If the cars are already installed, runinstall.cmd --install-only --forceafter Felony Rework. Both mods' scripts load, and Felony Rework's placeholder entries no longer show up as empty cards in the garage. Keep the plugin's[lua]section switched on inplugins\dsfforza.ini, as it is by default. - Another mod's
bootstrap.luareplaced with--forceis kept and run before ours, so that mod still loads; uninstalling puts it back. - The cars are the same as in v0.1.5; this release only changes the install and the game scripts.
All changes: v0.1.5...v0.1.6
v0.1.5
What's new
- Paint colours follow the game's own paint maths, closer to Forza's: mid-tones are no longer washed out, and satin, metallic and two-tone finishes (TVR) look like Forza's.
- Lamp lenses look like Forza's: the bulb and reflector show through the coloured lens, and lamps behind clear covers glow through them as in Forza.
- Tail lamps that looked dim by day are lit like the game's own cars (V12 Vantage, Versa, A4, Brera, M5 E39, Axela and others).
- Exhaust smoke and flames come out of the real tailpipes on 20 more cars, including the F40's triple pipe, the 360s, the Cerbera and cars with side exits.
- Pictures that make up engine bays and trim are drawn whole: no more dark diagonal halves on the F40's engine, plus sharper detail on 324 cars (F50, Enzo, GT40, CCX, Countach, the Stingray 67's side pipes and more).
- Every car is converted again, and a full install builds about twice as fast as in v0.1.4.
All changes: v0.1.4...v0.1.5
v0.1.4
What's new
- Tail and brake lamps glow in the dark like the game's own cars, instead of looking painted on (319 cars brighter, none dimmer).
- Tyres sit on the road: big tyres no longer sink in (Hummer H1 Alpha) and small ones no longer float (1965 Mini).
- The steering wheel and Tanner's hands are in front of the driver on the EAE Speedster, DBR1, DB5 Vantage, M635CSi, E36 M3 and M Coupe.
- The Holden Commodore VE race cars' and Citroën C1's wheels sit in their arches.
- Engines seen through glass or louvres are sharper (F50, F40, F430, XJ220, GT40 and 44 more).
- Bare-metal trims are a lighter chrome, closer to Forza's.
- Damage no longer scratches roofs, pillars and tailgates.
- Installs are quicker, and reinstalling an unchanged build no longer copies the 3 GB archive again.
All changes: v0.1.3...v0.1.4
v0.1.3
Fixes the garage crash when opening car selection, and makes ported cars look closer to Forza: paint colours, lamps, plates, gauges, brakes and mirrors. All cars convert again on the first run (one to a few hours).
Update: download driversf-forza-v0.1.3.zip, unzip it, put your Forza .iso files in assets, close the game and run install.cmd. Your save is backed up first.
What's new
- No more crash when opening car selection in the garage.
- Paint matches Forza: the F50 GT is red, not maroon, and most cars come out much closer to their Forza colours.
- Head lamps glow at night like the game's own cars, instead of looking painted on.
- Tail lamps brake across the whole lamp, reverse lights work on more cars, and lamp covers no longer hide the glow.
- Plates sit on the bumper and follow its curve, and they no longer cover badges or lamps.
- Race cars with a display only on the steering wheel show it on the dash, and cockpits that had none get gauges.
- Brake discs show behind open wheels.
- Side mirrors stay on the body when a door is knocked open.
- Cars collide where their body is, not where their host car's was.
All changes: v0.1.2...v0.1.3
v0.1.2
Lamps, gloss, hands on the wheel, working digital dashboards and Forza's steering. Every car is converted again on the first run of this version (one to a few hours); later runs only redo what changed.
Update
Download driversf-forza-v0.1.2.zip below, unzip it, put your Forza .iso files in its assets folder, close the game and run install.cmd. It replaces the earlier install; your save is backed up first.
Fixes and changes
- Lamps break with their own end of the car. Head lamps no longer break in rear collisions, and tail lamps no longer in front ones (head lamps on 465 cars, tail and brake lamps on 317) (#132, #141). That is also why some cars' tail lamps looked cracked or stayed dark when braking (Veyron, Cee'd).
- The X5 M's tail glass and 13 other cars' lens patches keep Forza's flat tint instead of a mosaic (#141).
- Head lamps glow like stock cars' running lamps: from the lamp and its reflector, hot in the middle and dark at the rim; the M3 E30's round lamps glow (#124, #115).
- Pop-up head lamps are drawn lowered only, instead of raised and lowered at once (#88).
- Gloss on trims and rims: satin-black scoops and grilles have Forza's sheen instead of flat black, chrome rims reflect (#87, #108).
- Hands on the wheel: the driver's hands grip Forza's steering wheel in the cockpit, chase views and on AI drivers (#118, #117).
- Digital dashboards work on about 300 cars: speed, rpm, gear and needles on Forza's own displays (#63).
- Steering lock is Forza's for every car, so tyres no longer clip the arches at full lock; tight low-speed turns are as tight as in Forza (#54).
- Install:
install.cmd --reportmakes a zip to attach to a bug report.- A re-run with nothing changed re-packs in seconds (#100).
- A car that converts slightly differently on a re-run no longer stops the build (#133).
- DriverNGHook is unpacked without Windows'
tar.exe, whose LZMA support some Windows builds lack (#140).
Known issues
- Pop-up head lamps stay lowered when the lights are on (#122).
- From the driver's seat, the bonnet scoop and A-pillars have no gloss (#136).
- Model nameplates are plain chrome text, not the car's own lettering (#139).
- Some reverse and fog lamps still break with the other end of the car (#146).
- The steering wheel drawn in the chase views is off-centre on seven cars (#86).
- 7 open-cockpit racers whose only display is on the steering wheel, and 15 cars with a placeholder cockpit, have no working gauge (#147, #148).
Every change since v0.1.1, including the developer tools: v0.1.1...v0.1.2.
All open issues: https://github.com/xob0t/driversf-forza/issues.
What's Changed
- Hands on Forza's rim: dsfforza.asi [hands] moves the cockpit hands onto each car's rim (VO3D p95/p87); the cockpit wheel keeps Forza's size by @xob0t in #118
- Release workflow: keep the gh options an array when there is no notes file by @xob0t in #120
- Agent workflow: worker definition, coordination rules, merge script, release freeze, tests on PRs by @xob0t in #121
- Pop-up head lamps: draw only the lowered state; Forza's up/down sections and DSF's chassis variants (#88) by @xob0t in #123
- Head lamps: white lamp texels darkened to stock's visible brightness; the Carlton's daytime lamps no longer white blobs (#115) by @xob0t in #125
- Hands in the chase views: dsfforza.asi moves the chase-view and AI drivers' hands onto Forza's rim; chase-view wheel keeps Forza's size; seat unchanged (#117) by @xob0t in #126
- dsff report: one zip for a player's bug report (install.cmd --report), issue template by @xob0t in #127
- Cockpit: Forza's digital displays live on DSF's digital dials (speed, rpm, gear, needles; km/h via dsfforza.asi) (#63) by @xob0t in #131
- Pack reuse: dsff install re-packs only what changed (13 min -> 10 s unchanged, 78 s for one car) (#100) by @xob0t in #130
- Issue form: on v0.1.1 and earlier attach the install log (--report arrives in v0.1.2) by @xob0t in #134
- AGENTS.md: comments on other people's issues and PRs start with ' on behalf of xob0t:' by @xob0t in #135
- Steering lock: every port steers to Forza's SteerMaxAngle (#54); clearance check ignores underbody points by @xob0t in #138
- Install: unpack DriverNGHook's .7z in Python, not with tar.exe (LZMA codec is unsupported) by @xob0t in #140
- Gloss materials: Forza's specular and reflection on trims and rims (satin-black scoops and grilles, reflective chrome rims) via copies of the host Lights material (#87, #108) by @xob0t in #143
- dsff install: a reused car that converts differently no longer stops the build (#133); one BLAS thread per worker by @xob0t in #137
- Head lamps by day: glow from the lamp and its reflector, per lamp on stock's distribution; the M3 E30's round lamps glow (#124) by @xob0t in #142
- Lamps take host light entries at their own end and side; swatch lenses keep their tint (#132, #141) by @xob0t in #144
Full Changelog: v0.1.1...v0.1.2