Skip to content

v1.0.2: delivery mission crash fix

Choose a tag to compare

@holdmysocks holdmysocks released this 12 Oct 22:43
· 8 commits to main since this release

The zip below is everything needed to build the game from your own disc: the build scripts, the SDK patches, the function hints, the host application and the guides. As always, it holds no game code, assets or keys; the build takes those from your own copy of Midnight Club: Los Angeles Complete Edition (USA/Europe, Xbox 360) on your machine.

The fix: the game stopped when a delivery mission was accepted

What was wrong. Pressing ACCEPT on a delivery mission ended the game with Call to invalid or unregistered function at guest address 0x8220DA40.

Why. The recompiler turns every function of the game into C++, and it finds functions by following calls and by reading addresses stored in the game's data. 0x8220DA40 is a four-instruction function that neither reaches: nothing calls it, and its address is not stored anywhere. The game builds the address in code (a lis + addi pair) and registers it as a script binding, here the one a delivery uses to move the player to the pick-up. So the function was never generated, and the first call to it stopped the game.

The fix. The project's scan for missed functions (--mcla_scan_code_pointers) now also looks for addresses built that way, and leaves out those that a branch crosses from the function either side, which are labels inside a function and not functions. It found 46 missed functions, this one among them. They are listed in the new config/code_referenced.toml; the game now has 30,094 registered functions. The other 45 are the same kind of gap, so this should also remove stops of the same kind elsewhere that nobody has run into yet. Full account: docs/function-recovery.md.

How far it has been checked.

What State
Windows, Direct3D 12, with a completed save Boot, title screen, loading into the city, the GPS map, its legend and mission log, and setting a delivery as the GPS target all work
Accepting a delivery Not confirmed. The missing function is now in the generated code, but the delivery was not driven to and accepted in testing
PS5 Builds; not yet run on a console

If a delivery, or anything else, still stops with Call to invalid or unregistered function at guest address ..., please open an issue with that line.

This release also contains the car reflection (lighting) fix from v1.0.1.

Getting it

New build, Windows (details in docs/pc-build-guide.md):

.\scripts\make_pc.ps1 -Iso C:\path\to\your.iso

New build, PS5, on Arch Linux as root (details in docs/ps5-build-guide.md):

bash ps5/make_ps5.sh --iso /path/to/your.iso --console <console address>

If you already have a build: update (git pull, or unpack the zip over your copy) and run the same command again. The game's code is recompiled with the new function list and rebuilt; on PS5 only the title is uploaded again.

Note for anyone with a clone from before 12 October 2026: the history of main was rewritten that day (commit messages only, no file changed), so git pull will refuse. Use git fetch and git reset --hard origin/main, or clone again.