mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-26 02:11:36 -04:00
fade5603fb
Adds three cycle-isolation loops that exercise the load-delay give-back TERMINATION and the two not-yet-modeled give-back interactions, each measured against the Beetle oracle AT STEADY STATE (Beetle's warm-up window reports the no-give-back value — the source of the handoff's mis-recorded "gte_rtps +15 EXACT"; true steady Beetle = +11): - load_use (lw; addu deps the loaded reg): native +5 == Beetle +5 — Δ-validates the GPR_DEP give-back termination shipped in the prior commit (load/load2 load into dead regs and never exercise it). - gte_read_use / gte_rtps / gte_nclip: native OVER-counts by 4-5 — the MFC2/CFC2 LDAbsorb give-back (gte_ts_done-now) is unmodeled. - ld_div (lw; divu; mflo): native UNDER-counts by 4 — the muldiv stall must CONSUME the pending lw give-back (Beetle decrements ReadAbsorb while stalling MFLO to muldiv_ts_done). The 8 CPU-load/alu/div/mult components all MATCH at steady state, so the prior load-interlock commit is solid. The 4 confirmed divergences are the Δ-gates for the GTE-read/MFC0/muldiv give-back follow-up; spec + targets in accuracy/load_readfudge_ldabsorb.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>