Repository navigation
Match 24 small US functions with no C yet (7 net, 1 game, 16 overlay) - #132
Merged
Merged
Conversation
16 come from the automatic m2c pass, 8 were fixed by hand (byte fields, pointer stride, fifth argument, callee without parameters). Two had drafts in nonmatching/net/ (func_01EC9060, func_01EC92E8), removed with their README rows. The map rows change only for these functions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ByteMatch progress reportSCUS_974.65
✅ Newly matched (24)
📉 Worse (2)
SCES_532.85
✅ Newly matched (23)
📉 Worse (2)
Commit c6d1c3c · Ratchet: Deadlocked on ByteMatch |
This was referenced Nov 9, 2026
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.
Matches 24 small US functions (under 140 bytes) with no matching C yet: 7 in
net.text, 1 ingame, 16 in level overlays. 16 came straight out of the automatic m2c pass; 8 needed hand fixes. Two of them (func_01EC9060,func_01EC92E8) had drafts innonmatching/net/; the drafts and their README rows are removed.The batch was picked from functions nobody had tried, keeping only those m2c decompiles without errors (no
syscall, VU0 or other instructions C cannot express here).How they were matched
16 from the automatic pass (m2c draft, the usual clean-ups, then the compiler profiles):
func_004B54D8,func_01EA76E8,func_01EC9060,func_01EC92E8,func_01EC94C0,func_01EC96C0,func_01EF03CC,func_01EF9844,func_L00_00513308,func_L00_005195A8,func_L00_0052FA40,func_L00_005463F8,func_L00_00547500,func_L00_00552380,func_L00_00714A80,func_L00_00717DF0. The net ones andfunc_L00_00513308build with@ee296 -O2 -G0 -falign-jumps=1(four of them with-mno-split-addresses), fivel00_multiplayer_menuones with@ee29 -O2 -G0,func_L00_00714A80with-mno-split-addresses, and two need no cflags line.8 fixed by hand:
u8fields where retail useslbu/sb(func_L00_00716828,func_L00_00748B20,func_L01_004D90B0);func_L08_004B8018: 4 bytes, not 16);func_L00_005192C0,func_L00_00528568: retail sets$t0);func_L00_00520548);$a1is only the scaled index (func_L01_00466040).Profiles:
func_L00_00520548,func_L00_005192C0andfunc_L00_00528568build with@ee29, like their neighbours inl00_multiplayer_menu; the other five need no cflags line.No
#definealiases,volatile, inline asm or hard-coded addresses.Verification
On
mainat 4a7372f:tools/build.sh,build_libgcc.sh,build_libm.sh;tools/audit_matches.pyandtools/audit_relocs.py: no line names any of these functions;config/{us,pal}/map.tsvchanged only on these rows (match_map --writewith and without the new files, applied as a delta), thenmatch_map --check;progress.py --checkfor US and PAL: US 7,163 → 7,187 and PAL 7,644 → 7,667.Independent of #128 and #130 (no file in common).
Left out:
func_0013A0F0also matches in US, butsrc/pal/core/0013A0F0.cdefines the same symbol with the PAL addresses, andaudit_relocs.pychecks every object inbuild/obj/against the US addresses once the name is exact in US, so the PAL object shows up as 4 mismatches. That looks like a tool issue (the PAL objects should be skipped in the US check), so I kept the function out of this PR.Reserved in #112.
🤖 Generated with Claude Code