The runtime no longer contains the game-specific repair. Drop its dead CLI option, environment write and profile arguments, while preserving explicit card-model admission and card/input identity guards. Cover the removed option and invalid card models in the Biohazard adapter test. Existing external commands must remove --legacy-card-repair off.
Build only the fixture aggregate so CI requires no generated retail BIOS. Keep production UI, netplay, rewind, wizard and Vulkan out of this asset-free check. The equivalent no-BIOS configuration passes all 118 enabled runtime CTests locally.
Keep assertions active only in test executables, expose an asset-free fixture aggregate, repair isolated link seams and stale expectations, and remove the obsolete hack-positive card test. Production runtime and emitter code and flags are unchanged. Validated with GNU 16.1 Release: 161 recompiler/TAS and 118 runtime tests enabled; existing disabled tests remain disabled.
Deferred from the integration resolve commit until the CDDA and Nymashock
drive paths it edits exist on this branch.
(cherry picked from commit 9f4712040b)
Nymashock measures a seek with CalcSeekTime(CurSector, SeekTarget). CurSector
is the physical read head, and an established read keeps it two sectors ahead
of the sector handed to the guest because HandlePlayRead fills the two-slot
SectorPipe before the guest drains it. source_explicit_seek_cycles timed a
SeekL/SeekP from the delivery cursor instead, so a seek issued mid-read
travelled two sectors too far and completed 209 cycles late at double speed.
Command_Reset already applied the same +2 lead.
Bio Hazard return 233568 is the first place this is observable: a mid-read
SeekL to LBA 141535 completed 209 cycles late, which pushed the driver's
following ReadS past the frontend return boundary and left the guest one CD
command behind for the rest of the ending tail.
Evidence, resuming the admitted capture state at return 233500:
- armed completion moves 132227220226 -> 132227220017, the value the source's
own PSRCounter samples at returns 233560-233568 independently imply
- all 5702 compared returns 233501-239202 match the admitted reference on RAM
page hashes and return clocks
- raw RAM at 233567/233568/233569/235000/239202 matches the stock capture byte
for byte, closing the nine-byte terminal difference
Cold full-route requalification and the Tekken 3 / Pepsiman cold-prefix
regressions are still outstanding; this commit records the component result
only.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
(cherry picked from commit cd99b7c9bc)
Rebased after upstream #362: the source-card exemptions from the removed
SELECT-flush, I_STAT.7 requeue, defer guard and transition cap are dropped
with those paths.
(cherry picked from commit 306a266fae)