Repository navigation
Match 22 PAL game functions and improve remaining packing draft - #75
Merged
Merged
Conversation
Add 908 matching bytes with shared state layouts and parameter declarations. Verify direct PAL catalogue bytes and all 37 relocation entries without changing the compilation or matching pipeline. Co-Authored-By: Codex <noreply@openai.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds matching PAL (
SCES_532.85) C for 22 game functions / 1,056 bytes. The batch covers bounded table reads, byte/word flag updates, state transitions, parameter-forwarding helpers, a counter update and a clamped float approach operation.0047DB88,0047DD30,0047DD58,0047DDC0,0047DDE8,004984A00049B3A8,004E2A78,004EF7F8,0050DEB8,0050F48800457A38,0045E618,0045EF28,00499418,00499440,004AC708,004B4CA8,00549AB800476080004ABFC0,00501B58Two unfinished drafts from #73 now match:
004ABFC0(36 bytes) uses explicit branch assignment to retain the original signed comparison, and00501B58(112 bytes) declares the external deletion marker as a one-byte object so its address is materialized in the original order. Both use the default compiler options; their four HI16/LO16 relocations resolve toD_00308C80andD_00222210. The third draft,00470970, remains nonmatching. Its improved research-only candidate, comparison evidence and a reproducible symbolic checker are included outside the build; it is not counted as a match. Seenotes/pal-00470970.md.The four accessors of
D_00171C00share an offset-based layout inpal/interface_state.h. The two004994xxadapters share one consistent callee declaration inpal/render_parameter.h. Names/types describe observed operations and layouts; no additional high-level game meaning is claimed.The float coefficient in
00549AB8retains retail's exact rounded value. Three translation units use existing file-wide compiler options to reproduce their original instruction selection/scheduling:0045E618uses-mno-split-addresses,00499418uses-fno-schedule-insns, and00476080uses-ffast-math -fno-delayed-branch. The compiler pipeline, assembler passes and matching rules are unchanged.Validation:
tools/cc.sh; their sizes and non-relocated instruction bits match the direct PAL catalogue addresses.This is a standalone batch based on main. Earlier pending PRs and the translated-code inventory are not included. One explicitly nonmatching research draft is included outside
src/and the progress maps. Related experiment: #73. The PS2Recomp output was used as an additional local reference; these files are reconstructed matching C. No disc data, extracted binaries, generated instruction listings, SDK material or runtime-tool changes are included.The
00470970draft now differs by one byte in one instruction: OR source operands are exchanged. The checker verifies this precise difference and proves identical lower 64 bits of all GPRs, the ordered store and return target for all input bit patterns using exact symbolic bit origins; changed-shift and unsupported-opcode negative controls pass. It does not model the upper 64 bits of 128-bit registers, prove the original C prototype or test game execution. This evidence does not relax byte-exact matching and adds no completed functions or bytes.