mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 13:33:34 -04:00
02f060f607
800c3 (0x8005CE18-0x8005FC68, one contiguous run of 33 interleaved Sony objects) is now four
stub rows — libapi1 (21 BIOS trampolines + COUNTER), libpad1 (PADENTRY + PADMAIN 760), libapi2
(L02/L03), libpad2 (PADCMD PADIF PADPORTD PADSEQD WAITRC2) — fed by two WINDOWED psyq_integrate
calls from the raw .run/obj42/{libapi42,libpad421} dirs (integrate tiles each stub with one
library; every boundary checked against .text SECTION sizes). The apicard region's three
"game code" rows were libapi 4.2's C objects to the byte: 800c2 = FIRST.o (firstfile + the
"no jump table wall" stub func_80062144), 800c2_2 = PAD.o, 800c2_3 = PATCH.o + CHCLRPAD.o ->
apicard5/6/7; make_apicard_used.py sources libapi from 4.2 (the EXE's real libapi; libcard
stays 4.0) into .run/obj42/apicard_used, 26 objects / 7 blocks, no game code left in
0x80061F38-0x80062888. src/800c3.c (129 hand-matched "C", 62 verbatim bodies, 19 stubs incl.
the four §332 %lo-in-a-delay-slot "walls"), src/800c2.c, src/800c2_2.c, src/800c2_3.c removed;
REORDER_TUS is empty (mechanism kept). Cookbook §490.
Two stale instruments fixed: exclude_audit let a pinned WALL outrank LINKED (PopMatrix/
PushMatrix had sat as walls since S68 while living in libgte3, linked since Phase 8) — LINKED
dominates now, config/wave_exclude.txt 13 -> 3; frontier_classify carried a hard-coded 49-name
LINKED set (R51) and reported 337 "stubs" — derived from the Makefile now.
Verified: main 143dbb89f34491258bbc27810d0a12ec8b43a8dd WITH all SDK dirs and WITHOUT them from
a fresh extract; make tools-health OK; R22 fleet extract-all 212/212 + check-all 213/213.
Metrics: main REAL 839->773, LINKED 1,150->1,256, VERBATIM 29->3, stubs 29->16, byte-identical
2,075/2,091 = 99.2%; game-code weighted 93.3% (38,748/41,534), remainder 2,786 = the open-stub
sum; fleet stubs 51->38 (frontier_classify: 39 rows incl. the data word). Verbatim manifest
33 -> 6. Docs: worklist rows + "S79 task #5", SETUP (fresh-clone obj42 commands, Makefile
blocks, exclude_audit), decision-log "S79 addendum 2", accelerators "S79 (2)", CURRENT_PHASE
S79 FINAL refreshed (census, metrics, the task #6 brief).
5.3 KiB
5.3 KiB
Unmatched difficulty inventory (generated by tools/difficulty.py — harvest queue)
unmatched functions : 1272 trivial (<=5 ins) : 267 non-jtbl leaves : 842 (best harvest targets) jump-table funcs : 58 (deferred — need the rodata-island workflow, Task 2')
Easiest 120 unmatched (score asc) — the work queue
| score | name | nins | br | calls | jtbl | leaf |
|---|---|---|---|---|---|---|
| 1 | COR_05_OBJ_130 | 1 | 0 | 0 | - | Y |
| 1 | EXT_OBJ_A8 | 1 | 0 | 0 | - | Y |
| 1 | GS_137_OBJ_488 | 1 | 0 | 0 | - | Y |
| 1 | LIBMCRD_OBJ_1118 | 1 | 0 | 0 | - | Y |
| 1 | LIBMCRD_OBJ_330 | 1 | 0 | 0 | - | Y |
| 1 | LIBMCRD_OBJ_5BC | 1 | 0 | 0 | - | Y |
| 1 | LIBMCRD_OBJ_990 | 1 | 0 | 0 | - | Y |
| 1 | LIBMCRD_OBJ_BA0 | 1 | 0 | 0 | - | Y |
| 1 | LIBMCRD_OBJ_E5C | 1 | 0 | 0 | - | Y |
| 1 | MIDIREAD_OBJ_6BC | 1 | 0 | 0 | - | Y |
| 1 | MIDIREAD_OBJ_E4 | 1 | 0 | 0 | - | Y |
| 1 | OBJT2_OBJ_614 | 1 | 0 | 0 | - | Y |
| 1 | OBJT2_OBJ_838 | 1 | 0 | 0 | - | Y |
| 1 | PRESET2_OBJ_116C | 1 | 0 | 0 | - | Y |
| 1 | PRESET2_OBJ_4D8 | 1 | 0 | 0 | - | Y |
| 1 | PRESET2_OBJ_6C4 | 1 | 0 | 0 | - | Y |
| 1 | PRESET2_OBJ_C20 | 1 | 0 | 0 | - | Y |
| 1 | PRESET_OBJ_744 | 1 | 0 | 0 | - | Y |
| 1 | PRNT_OBJ_21C | 1 | 0 | 0 | - | Y |
| 1 | PRNT_OBJ_2A0 | 1 | 0 | 0 | - | Y |
| 1 | PRNT_OBJ_348 | 1 | 0 | 0 | - | Y |
| 1 | PRNT_OBJ_3D0 | 1 | 0 | 0 | - | Y |
| 1 | SYS_OBJ_1C28 | 1 | 0 | 0 | - | Y |
| 1 | S_SR_OBJ_B0 | 1 | 0 | 0 | - | Y |
| 2 | INTR_DMA_OBJ_274 | 2 | 0 | 0 | - | Y |
| 2 | LIBMCRD_OBJ_1A60 | 2 | 0 | 0 | - | Y |
| 2 | LIBMCRD_OBJ_308 | 2 | 0 | 0 | - | Y |
| 2 | PRESET2_OBJ_FD8 | 2 | 0 | 0 | - | Y |
| 2 | PRIM_OBJ_200 | 2 | 0 | 0 | - | Y |
| 2 | PRIM_OBJ_228 | 2 | 0 | 0 | - | Y |
| 2 | SR_SV_OBJ_224 | 2 | 0 | 0 | - | Y |
| 2 | SR_SV_OBJ_2F4 | 2 | 0 | 0 | - | Y |
| 2 | SYS_OBJ_191C | 2 | 0 | 0 | - | Y |
| 2 | S_ITC_OBJ_88 | 2 | 0 | 0 | - | Y |
| 2 | S_SCA_OBJ_15C | 2 | 0 | 0 | - | Y |
| 2 | S_SCA_OBJ_94 | 2 | 0 | 0 | - | Y |
| 2 | S_SK_OBJ_1EC | 2 | 0 | 0 | - | Y |
| 2 | VM_N2P_OBJ_1B8 | 2 | 0 | 0 | - | Y |
| 2 | VM_N2P_OBJ_BC | 2 | 0 | 0 | - | Y |
| 3 | C_007_OBJ_AC | 3 | 0 | 0 | - | Y |
| 3 | MIDIREAD_OBJ_6C0 | 3 | 0 | 0 | - | Y |
| 3 | PRESET2_OBJ_A88 | 3 | 0 | 0 | - | Y |
| 3 | PRNT_OBJ_380 | 3 | 0 | 0 | - | Y |
| 3 | SYS_OBJ_1B78 | 3 | 0 | 0 | - | Y |
| 3 | SetDQA | 3 | 0 | 0 | - | Y |
| 3 | SetDQB | 3 | 0 | 0 | - | Y |
| 3 | SetData32 | 3 | 0 | 0 | - | Y |
| 3 | SetIR0 | 3 | 0 | 0 | - | Y |
| 3 | SetInitPadFlag | 3 | 0 | 0 | - | Y |
| 3 | UT_KEYV_OBJ_174 | 3 | 0 | 0 | - | Y |
| 3 | _padSetAct | 3 | 0 | 0 | - | Y |
| 4 | CD_set_test_parmnum | 4 | 0 | 0 | - | Y |
| 4 | C_011_OBJ_960 | 4 | 0 | 0 | - | Y |
| 4 | CdLastCom | 4 | 0 | 0 | - | Y |
| 4 | GEO_00_OBJ_2C | 4 | 0 | 0 | - | Y |
| 4 | GS_108_OBJ_7C | 4 | 0 | 0 | - | Y |
| 4 | GetGraphDebug | 4 | 0 | 0 | - | Y |
| 4 | GetGraphType | 4 | 0 | 0 | - | Y |
| 4 | GsGetActiveBuff | 4 | 0 | 0 | - | Y |
| 4 | LIBMCRD_OBJ_15C | 4 | 0 | 0 | - | Y |
| 4 | LIBMCRD_OBJ_1944 | 4 | 0 | 0 | - | Y |
| 4 | LIBMCRD_OBJ_3B8 | 4 | 0 | 0 | - | Y |
| 4 | LIBMCRD_OBJ_84C | 4 | 0 | 0 | - | Y |
| 4 | LIBMCRD_OBJ_A5C | 4 | 0 | 0 | - | Y |
| 4 | MIDIREAD_OBJ_6AC | 4 | 0 | 0 | - | Y |
| 4 | ReadInitPadFlag | 4 | 0 | 0 | - | Y |
| 4 | SPU_OBJ_510 | 4 | 0 | 0 | - | Y |
| 4 | SPU_OBJ_AC4 | 4 | 0 | 0 | - | Y |
| 4 | SSSTART_OBJ_240 | 2 | 0 | 1 | - | - |
| 4 | SSSTART_OBJ_248 | 2 | 0 | 1 | - | - |
| 4 | SSSTART_OBJ_328 | 4 | 0 | 0 | - | Y |
| 4 | SYS_OBJ_1AF0 | 4 | 0 | 0 | - | Y |
| 4 | SYS_OBJ_2F7C | 4 | 0 | 0 | - | Y |
| 4 | S_RRWA_OBJ_40 | 4 | 0 | 0 | - | Y |
| 4 | S_SAV_OBJ_1E8 | 4 | 0 | 0 | - | Y |
| 4 | S_SAV_OBJ_1F8 | 4 | 0 | 0 | - | Y |
| 4 | S_SCA_OBJ_384 | 4 | 0 | 0 | - | Y |
| 4 | S_SRMP_OBJ_170 | 4 | 0 | 0 | - | Y |
| 4 | S_STSA_OBJ_48 | 4 | 0 | 0 | - | Y |
| 4 | SetVertex0 | 4 | 0 | 0 | - | Y |
| 4 | SetVertex1 | 4 | 0 | 0 | - | Y |
| 4 | SetVertex2 | 4 | 0 | 0 | - | Y |
| 4 | USERFUNC_OBJ_84 | 4 | 0 | 0 | - | Y |
| 4 | UT_KEYV_OBJ_350 | 4 | 0 | 0 | - | Y |
| 4 | UT_KEYV_OBJ_3FC | 4 | 0 | 0 | - | Y |
| 4 | VSYNC_OBJ_1D4 | 4 | 0 | 0 | - | Y |
| 4 | VS_VH_OBJ_180 | 4 | 0 | 0 | - | Y |
| 4 | _padSetCmd | 4 | 0 | 0 | - | Y |
| 4 | func_800426D4 | 4 | 0 | 0 | - | Y |
| 4 | func_80043078 | 4 | 0 | 0 | - | Y |
| 4 | func_80043410 | 4 | 0 | 0 | - | Y |
| 4 | func_80043420 | 4 | 0 | 0 | - | Y |
| 4 | func_80043440 | 4 | 0 | 0 | - | Y |
| 4 | func_800491EC | 4 | 0 | 0 | - | Y |
| 4 | func_8004923C | 4 | 0 | 0 | - | Y |
| 4 | func_8005C4CC | 4 | 0 | 0 | - | Y |
| 4 | func_8005CF08 | 4 | 0 | 0 | - | Y |
| 4 | func_8005CF18 | 4 | 0 | 0 | - | Y |
| 4 | func_8005F384 | 4 | 0 | 0 | - | Y |
| 4 | func_80062988 | 4 | 0 | 0 | - | Y |
| 4 | gfx2D_COM0_OBJ_30 | 4 | 0 | 0 | - | Y |
| 5 | C_004_OBJ_DC | 5 | 0 | 0 | - | Y |
| 5 | EVENT_OBJ_84 | 5 | 0 | 0 | - | Y |
| 5 | GS_123_OBJ_A8 | 5 | 0 | 0 | - | Y |
| 5 | INTR_OBJ_6D0 | 5 | 0 | 0 | - | Y |
| 5 | ISO9660_OBJ_29C | 3 | 0 | 1 | - | - |
| 5 | LIBMCRD_OBJ_5C0 | 5 | 0 | 0 | - | Y |
| 5 | LIBMCRD_OBJ_840 | 3 | 0 | 1 | - | - |
| 5 | LIBMCRD_OBJ_A50 | 3 | 0 | 1 | - | - |
| 5 | LIBMCRD_OBJ_C90 | 3 | 0 | 1 | - | - |
| 5 | LIBMCRD_OBJ_F4C | 3 | 0 | 1 | - | - |
| 5 | OBJT_OBJ_108 | 2 | 1 | 0 | - | Y |
| 5 | OBJT_OBJ_110 | 2 | 1 | 0 | - | Y |
| 5 | OBJT_OBJ_124 | 2 | 1 | 0 | - | Y |
| 5 | OBJT_OBJ_D0 | 2 | 1 | 0 | - | Y |
| 5 | OBJT_OBJ_E4 | 2 | 1 | 0 | - | Y |
| 5 | PRNT_OBJ_188 | 2 | 1 | 0 | - | Y |
| 5 | PRNT_OBJ_1E8 | 2 | 1 | 0 | - | Y |
| 5 | PRNT_OBJ_1F0 | 2 | 1 | 0 | - | Y |
| 5 | PRNT_OBJ_1F8 | 2 | 1 | 0 | - | Y |