github holdmysocks/rusty-mcla v0.8.0
Rusty MCLA 0.8.0

3 hours ago

Added

Launcher

  • The launcher window is resizable and the page scales to fit it, so nothing is cropped at higher display scales (issue #7). On start it shrinks to fit the screen's work area if the default size is too big, and it remembers its size with its position.
  • The FPS CAP row offers your monitor's own refresh rate (75 on a 75 Hz monitor, read from Windows) and warns under the row when a cap with V-Sync would judder on that monitor, such as 60 on 75 Hz. The game does the same: the DISPLAY page offers the rate and the log's monitor line shows the warning (issue #11).

Graphics and loading

  • DirectX 12 now starts in fullscreen. DXGI cannot make a swap chain on an exclusive-fullscreen window, so on DX12 the window runs borderless and the surface is configured again; if it still fails the game starts over on Vulkan (issues #12, #15). A LOADING screen can no longer wait for ever when a pipeline thread fails, and every 15 seconds of LOADING the log says what it still waits for.
  • On DX12 the pipelines are built on half the CPU's threads, up to 12 (147 to 77 seconds of LOADING on the machine it was measured on). Vulkan is unchanged.
  • The garage floor is drawn as the original draws it: the reflection pass also draws the room and the cars mirrored, and the floor has its own program (relief from the diffuse map, the decal, the highlight and the blend towards the mirrored picture). The floor's white dots are gone with it.
  • Shadows: the cascade direction follows the original's light manager between 5:00 and 18:00 in every weather, and the garage's cascades, fade, straight-down light and floor lighting follow the garage captures of the original.
  • Night stars (brightness, galaxy, threshold) follow the original's sky control in Clear, Cloudy, Foggy and Stormy weather; the rain cone list holds 256 as the original's; star size and the lamp glows follow the weather blend instead of snapping when it ends.
  • Particles are drawn in the original's pass order, so the checkpoint arrows stay over the plume.
  • Test switches for bug reports: MCLA_ADAPTER=<part of a GPU's name> picks that GPU instead of the high-performance one and lists every adapter in the log; MCLA_DEBUG_VIEW 701 / 702 show the paint's environment reads for the white parts on some drivers (issue #14); on a card where the city pass is slow, one frame a minute is timed draw by draw and the log's gpudraws: line says where it goes (issue #12).

Career and menus

  • After a delivery the original's DELIVERY RESULTS panel (time, target time, your time, damage, visual damage taken) shows before the rewards, and MISSION RESULTS shows every mission the event finished, each stamped by its result with its objectives.
  • The pink slip race-over tab is the original's (RETURN TO CRUISE, RETURN TO HANGOUT, favourites, VIEW REPLAY, GO TO GARAGE). RETURN TO HANGOUT asks the repair question and goes back to the cruise.
  • Beat me there ends as the original's: a finished run slows down, swings the camera and shows the place and the run's REP; damaged out, the race-over menu offers QUIT RACE / JUMP TO RACE START with their repair boxes. A team flag battle ends on YOUR TEAM WON / LOST / TEAMS TIED over both teams' points.
  • GAME OPTIONS' AUTO SAVE row works: OFF asks with the warning box, ON writes the save. RACE STATS and COLLECTABLES stop at the first and last entry with the error sound.
  • The delivery's tutorial stands over its panel, and the delivery's visit runs as its script does (ease to pause before the panel and from pause after it, the police back at its end).
  • The minimap shows race opponents as green arrows in the red light and freeway races, and none in the career's other races.

Cameras

  • The police bust takes the wipeout camera, the gas station's close sends the event camera back over 0.7 seconds, a wreck plays DAMAGED OUT with the driver's hit and the free repair, the look back has its slow motion, there is an ability camera, and the original's Agro strike replaces the invented ram.
  • Photo mode's free camera moves on the pad as the prompt bar shows (right stick turns it, RT / LT move it in and out, the left stick pans it).

Cars and effects

  • Exhaust and nitrous effects as the original has them: the nitro flame while the nitrous burns and idle exhaust smoke below 1.5 m/s, at the car's effect anchors, on every car of the simulation and none on police units. The invented backfire pops and nitro flames are gone (the original has none), and the exhaust tips move with a hanging rear bumper.

Loading and performance

  • Many hitches are gone: a car's build is split so most of it runs on workers (5 - 8 ms down to 1 - 2 ms), a pending race's grid is read ahead (a hookman race's first frame 934 down to 127 ms), the police scenes are read ahead, the race HUD's icons and tune are read ahead (the race start's UI part 37 down to 3 ms), the start screen's first tick runs behind LOADING, sector uploads are time-boxed per frame, and the walkers' skinning runs beside the shadow passes. Nothing is drawn differently.
  • The log is written on a thread of its own: a line logged on the main thread used to wait for the disk (15 - 130 ms frames while other programs used it).

Under the hood

  • A large part of this release is checking the port's routines against the original's own code run offline, bit for bit, and fixing the differences it found. The audio pitch, dB and pan arithmetic, the race line, the minimap, the Flash player and its Math natives, the camera helpers, the career experience curve, lane and junction tests, the damage and vinyl helpers, the power-up and cutscene code and more now give the original's numbers; most were last-bit differences from fused multiply-adds.

Fixed

  • Nitro flames no longer start inside the bumper on a moving car: particles born in a step also followed their emitter's travel of that step (0.45 m at 100 km/h); now they leave the tips and trail straight back.
  • The delivery's "can't pull into events" path follows the original's script (the pull-in, the walk and the tutorial over its panel). The pad side has not been tried here (issue #6).
  • Touching rectangles no longer test wrongly: the old separating-axis test differed from the original's on 94 of 33,000 touching pairs.
  • The night lamp grid's bias was one float step low in the CPU lookup and the shaders; it is now the value the original stores.
  • The exhaust smoke is hidden only on the player's car in the bumper view, as the original does.

Known issues

This is still an early release. Expect bugs; please report problems on GitHub.

Update

  • This update changes the game program and the launcher; the install data version is unchanged, so there is no rebuild offered. An install built before 0.5.0 has no pond water shader file yet, and the fountain basins and ponds keep their generic look until the game data is built again.
  • If something goes wrong, Export Logs on the Support tab, and Settings > General can go back to the previous game version.

Game

  • Low frame rates on some RTX 50-series cards (about 20 to 30 fps at 1440p and 4K) are being looked into and are not fixed yet; they do not show on a 3090. The log now times the slow city draws (the gpudraws: line next to the gputimes: line). If you see it, attach the logs, ideally a run with default settings and one with backend = "dx12". DirectX 12 has been tried on very few machines, and its first start takes a few minutes while shaders compile.
  • White paint on some drivers (issue #14) is not fixed; the debug views MCLA_DEBUG_VIEW 701 / 702 / 28 / 29 are in this release for a test run.
  • The pad fixes have not been tried with a real pad here (PS4 pad especially), and the sound fix has not been confirmed on the machine that had no sound.
  • The GT-R's tuning, sound and cameras are borrowed from other cars, because the disc has none of its own.
  • Some sounds are approximations: the opponents' engine blend uses speed only, the traffic's obstacle, lane-limit and emergency-brake sounds are stand-ins, the junction warning follows the port's signalled junctions, the wipeout loops follow the port's wipeout flag, and the air-ride sounds are not played.
  • Delivery and garage icons on the minimap are in the wrong place or have the wrong design.
  • South Central's two hangout entries are not armed, and the rear-view mirror is an option that you have to switch on.
  • Gear shifts at the start of a race can look delayed.
  • Two-wheel-drive cars pull slightly harder than they should. Some bike behaviours (stoppie, burnout), some particle effects and parts of the pedestrian behaviour are approximations.
  • The far city and a few places at dusk and dawn differ slightly from the original.
  • Online play is not available.

Settings and extras not available yet

  • The launcher shows the display and performance options, but the game reads settings.toml when it starts; changes in the game's OPTIONS pages are applied at once and saved. Ultrawide handling and upscaling are not available. Fullscreen has been tried on one machine only (on DX12 it runs borderless), and choosing a second monitor has not been tried.
  • Mods, custom music (including Spotify), controller rumble and adaptive triggers, and racing wheels are not available. The launcher's Mods and Music tabs are locked previews.

Launcher

  • Windows only for now. Linux and macOS are planned and only compile-checked.
  • It is not code-signed, so Windows may show "Windows protected your PC". Choose More info, then Run anyway, after checking the SHA-256 below.
  • It needs the Microsoft Edge WebView2 runtime (built into Windows 11 and current Windows 10) and about 14 GB of free space for the game data, plus the disc image itself.
  • Only the Xbox 360 Complete Edition (USA, Europe) disc image is supported. PS3 saves can only be imported from the US release.
  • The resizing and scaling has been tried at 100 % display scale here; 125 % and 150 % are untested. The Gamepad tab is read-only and does not show the layout yet. Only English is available.

Install and update

New here? Download RustyMCLA.exe, put it in a folder of its own and start it; it walks you through the setup. You need your own disc image of the Xbox 360 version of the game (Midnight Club: Los Angeles, Complete Edition). Nothing of the game is included.

Already installed? The launcher offers this update by itself. You can always skip it.

The launcher is not code-signed, so Windows may show "Windows protected your PC". Choose More info, then Run anyway, after comparing the SHA-256 below with your download.

Build

Built on GitHub Actions from commit a643f594f171e265a15a3cc447437d691a40ba3c: https://github.com/holdmysocks/rusty-mcla/actions/runs/40608986509

SHA-256:

f7584f344dbecc40ca40d9c1d45cc65c3423564b0126a11855cc2f6a74c3ef51  RustyMCLA.exe
8bf461e4d2f3ff3d73e92586eb7cd07ff00d666f2a43579eb3d35681d36db1f4  game-0.8.0.zip

This is an unofficial fan project. It is not affiliated with or endorsed by Rockstar Games or Take-Two Interactive. It is licensed under the GNU General Public License, version 3 only.

Don't miss a new rusty-mcla release

NewReleases is sending notifications on new releases.