Skip to content

Match 45 NTSC-U helpers with pinned compiler profiles - #71

Draft
Joebannerlord wants to merge 1 commit into
OpenRAC:mainfrom
Joebannerlord:codex/deadlocked-ntscu-45-20261101
Draft

Joebannerlord wants to merge 1 commit into
OpenRAC:mainfrom
Joebannerlord:codex/deadlocked-ntscu-45-20261101

Conversation

@Joebannerlord

@Joebannerlord Joebannerlord commented Nov 1, 2026 •

Copy link
Copy Markdown

Adds 45 independently verified NTSC-U functions / 1,936 retail bytes, together with the pinned compiler profiles needed to reproduce them. The collection covers five core routines and forty network getters, initializers, predicates and callback/copy/zeroing wrappers. The branch contains one commit based on current upstream main.

Draft: PAL mapping is still needed before merge. PAL retail inputs are unavailable locally. The 45 new US sources have no verified PAL map rows, so tools/progress.py --version pal --check fails its coverage guard. PAL source, map and report are unchanged; no untested PAL match or mismatch status has been fabricated. A maintainer with PAL inputs can pull this branch and regenerate/review the PAL map.

Changes

  • Preserve the 45 reconstructed source files unchanged from their independently verified local versions. Check actual argument/return ABI, access widths, offsets, call targets and global addresses rather than relying on masked EXACT results.
  • Add SHA-256-pinned original compiler routes and tests. Keep options at whole-file scope, preserve upstream SN float handling and @lit4, and do not patch compiler output or objects. Compiler binaries/private runtimes are not included.
  • Correct the existing US inventory boundary at 01EC3498 using the official inventory generator: 32 matched bytes plus the separate, unmatched 12-byte 01EC34B8. This removes the earlier twelve-byte progress overcredit.
  • Adopt only the 45 new US map rows and that inventory split, preserving unrelated upstream rows/order. Regenerate US progress and README. Retain detailed historical matching notes plus the publication summary.

Validation

  • Complete source compilation: 5,306 non-library C files, successful.
  • Fresh checks of all 45 built objects: 1,936 bytes equal retail after standard relocation resolution in memory; 28 call/address target groups, zero new mismatch or unresolved target; objects unmodified.
  • 26 compiler-route/profile tests pass; git diff --check passes.
  • US map coverage and progress checks pass: 4,520 / 18,086 functions, 352,712 matched bytes. Compared with upstream: +45 functions / +1,936 matched bytes; total-function denominator increases by one because of the corrected inventory split.
  • Like-for-like legacy audit: 3,756 to 3,801 exact, retaining the same three non-exact and 827 unlisted functions. Full relocation discrepancy records are byte-identical: 80 preexisting mismatches / three unresolved targets. This is not a claim that the whole repository audits cleanly.
  • PAL coverage: known failure, 45 missing rows, as explained above. No PAL bytes or gameplay/native-port behavior were tested.

All 17 currently open PR patches were checked; no direct overlap with these functions was found. The deferred func_01EEEDA0 near miss is excluded. No retail programs, disc data, generated assembly, build output, proprietary toolchains, SDK source/headers/samples, or local scratch files are included. Matching is paused while this collection is staged for review.

45 verified functions
Function Retail bytes
func_001221D8 108
func_0014ADD8 56
func_0014C368 68
func_0014D010 68
func_0014DE80 84
func_01E9B268 40
func_01EA0610 40
func_01EA47E8 40
func_01EA4EE8 32
func_01EA71C8 36
func_01EA88A0 36
func_01EA9800 36
func_01EA9D98 72
func_01EA9FE8 52
func_01EAA020 52
func_01EAA060 52
func_01EAA0D0 96
func_01EB0D78 28
func_01EB4DB0 28
func_01EB4DE8 36
func_01EB4E40 36
func_01EB4FF0 36
func_01EB7288 36
func_01EB72B0 36
func_01EB72D8 36
func_01EB84B8 36
func_01EBDED0 32
func_01EBDEF0 32
func_01EC2840 40
func_01EC3498 32
func_01EC52B8 36
func_01EC9B08 40
func_01ED5548 36
func_01ED5570 32
func_01ED5638 32
func_01ED8500 40
func_01ED9BE8 32
func_01EDA098 28
func_01EDB030 36
func_01EDB388 36
func_01EED4D8 40
func_01EEE000 40
func_01EF21FC 32
func_01EFA2A4 36
func_01F07154 28

Add 45 independently verified functions totaling 1,936 retail bytes and
the pinned compiler routes needed to reproduce them. Preserve whole-file
flags, upstream SN float handling and the original reconstructed sources.
Correct the proven US inventory split at 01EC3498 without unrelated churn.

Full compilation passes for 5,306 source files; 26 route/profile tests
pass. Fresh objects match retail after standard relocation resolution in
memory, with 28 actual call/address target groups verified and no object
patches. US coverage/progress passes at 4,520 functions / 352,712 bytes.
The like-for-like audit gains 45 exact functions with no new discrepancies.

Retain three existing non-exact and 827 unlisted functions, 80 relocation
mismatches and three unresolved targets. PAL inputs are unavailable; its
coverage guard lacks 45 new US rows and must be completed before merge.
No PAL result, game behavior or whole-tree clean audit is claimed.

Retail inputs, binaries, generated assembly and scratch evidence stay local.

Co-Authored-By: Codex <noreply@openai.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant