Skip to content

Tomba2Recomp v0.0.9 - latest framework, shared release staging, 7.6x shard coverage

Choose a tag to compare

@mstan mstan released this 02 Sep 14:46
· 63 commits to master since this release

Tracks current psxrecomp and recomp-ui master, adopts the framework's shared release staging, and ships a shard cache that covers 7.6x more functions than v0.0.8.

What changed

v0.0.8 v0.0.9
framework pin 254 commits behind master current master
shards bundled 374 240
functions covered by shards 2,730 20,904
mod packages 5 8

Fewer shards, far more coverage — see below.

Three defects fixed, found by taking the framework bump instead of pinning around it

1. The release packager had drifted. It was a hand-copied fork; it now calls the framework's shared release_overlay_stage.ps1. Its hard-coded mod-manifest count (5, while the real catalog was 7 and is now 8) is replaced by a derived staged-vs-source check, so adding a mod no longer requires editing the packager.

2. The cache tag was rebuilt by a parallel format string that had gone stale when the _f<flavor> suffix was added — its filter matched nothing, so a correctly regenerated cache staged zero shards. compile_overlays.py now owns the tag via cache_tag(), shared by the writer, the packager and the loader.

3. Overlay ABI was missing a shim for psx_game_text_native_ok (ABI v21 → v22). The emitter emits that guard at block entry and before every direct jal, but it is defined in the generated dispatch shard, so overlay DLLs could not link it — 107 of 109 shard build failures.

That third one was worse than a failure count suggests. The failures were large multi-function batches (170, 134, 88, 79 entries), and a failed batch degraded into many tiny single-function fallback shards. A larger shard count was the signature of the defect, not a sign of health.

Validation

10-minute attract soak from a cold boot, on the code that ships:

native dispatch  78,413,495
interp fallback     133,978
NATIVE SHARE     99.829%
regions loaded   2 -> 32 across the attract cycle
frame period     16683.3 us (59.94) on every sample, zero variance

No crash, no freeze, reaches DEMO gameplay. Cache regenerated from the coverage vault (946 entries, 7,714,551 executed PCs) against the packaged config, 0 build failures.

Note

This release ships newly regenerated game code — the emitter changed, so shipping "validated bits" unchanged would have mixed two emitters in one package. The soak above is an automated gate, not a full playthrough, so treat a complete run-through as still outstanding.

sha256: becdfe68cff2a6fcc29d95955fec000891316d75a38d84c2f639d12840ed081c