From 7604e294f2db0cdb77d27dda5caeea361ea5ef9d Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Wed, 5 Aug 2026 00:25:22 -0600 Subject: [PATCH] feat(phase-30 S39): propagate free h_exact class 0x80188f90 (8 ins x 1) - R22 140/140 --- config/dedup.us.yaml | 7 +++++++ docs/progress.fleet.md | 14 +++++++------- src/ov_SC03_118/ov_SC03_118_jr_801863CC.c | 5 +---- src/ov_SC03_119/ov_SC03_119_jr_801863CC.c | 2 +- src/shared/engine_core.h | 12 ++++++++++++ 5 files changed, 28 insertions(+), 12 deletions(-) diff --git a/config/dedup.us.yaml b/config/dedup.us.yaml index c32f46e92..8259efbe8 100644 --- a/config/dedup.us.yaml +++ b/config/dedup.us.yaml @@ -13536,3 +13536,10 @@ groups: func: DEFINE_func_80182BB0 vram: 0x80182BB0 binaries: [ov_SC03_014, ov_SC03_015] + - id: E_func_80188F90 + tier: h_exact + hash: 0ac0e5e6754a22d27794d13f5be51a6314bccd3a + source: src/shared/engine_core.h + func: DEFINE_func_80188F90 + vram: 0x80188F90 + binaries: [ov_SC03_118, ov_SC03_119] diff --git a/docs/progress.fleet.md b/docs/progress.fleet.md index 00d1df0a6..d3e79488f 100644 --- a/docs/progress.fleet.md +++ b/docs/progress.fleet.md @@ -4,16 +4,16 @@ # cross-binary collapsible-byte leverage: docs/duplicates.cross.md. # THREE progress metrics (all matter — see the labels): -FLEET fn-count byte-ident: 341363 / 353717 = 96.51% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) -FLEET instr-weighted : 12419153 / 13141652 = 94.5% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number) +FLEET fn-count byte-ident: 341364 / 353717 = 96.51% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) +FLEET instr-weighted : 12419161 / 13141652 = 94.5% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 5029454 / 5634875 = 89.3% (77973/87459 unique fns; the DISTINCT-RE number) MAIN game-code weighted : 436 / 60201 = 0.7% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; LINKED-excluding Ghidra sig dated 2026-06-14; caveat is R34: no independent second oracle for a PS-X EXE, NOT drift) - (fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 12418717 / 13081451 = 94.9%) + (fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 12418725 / 13081451 = 94.9%) -FLEET REAL substantive : 339508 (of which dedup-shared 241431 via 1916 groups / 241505 instances) +FLEET REAL substantive : 339509 (of which dedup-shared 241433 via 1917 groups / 241507 instances) FLEET LINKED PsyQ objs : 959 FLEET NON_MATCHING : 7 (0 in any default build — G4) -FLEET INCLUDE_ASM stubs : 12347 +FLEET INCLUDE_ASM stubs : 12346 FLEET matchable : 353717 | binary | REAL | shared | LINKED | byte-ident | matchable | byte-ident % | @@ -91,8 +91,8 @@ FLEET matchable : 353717 | ov_SC03_115 | 2428 | 1751 | 0 | 2430 | 2472 | 98.3% | | ov_SC03_116 | 2397 | 1751 | 0 | 2400 | 2438 | 98.4% | | ov_SC03_117 | 2465 | 1751 | 0 | 2471 | 2557 | 96.6% | -| ov_SC03_118 | 2540 | 1775 | 0 | 2541 | 2685 | 94.6% | -| ov_SC03_119 | 2536 | 1775 | 0 | 2537 | 2685 | 94.5% | +| ov_SC03_118 | 2540 | 1776 | 0 | 2541 | 2685 | 94.6% | +| ov_SC03_119 | 2537 | 1776 | 0 | 2538 | 2685 | 94.5% | | ov_SC03_121 | 2400 | 1751 | 0 | 2403 | 2459 | 97.7% | | ov_SC03_124 | 2570 | 1747 | 0 | 2590 | 2741 | 94.5% | | ov_SC03_125 | 2522 | 1751 | 0 | 2534 | 2588 | 97.9% | diff --git a/src/ov_SC03_118/ov_SC03_118_jr_801863CC.c b/src/ov_SC03_118/ov_SC03_118_jr_801863CC.c index e344864be..af631fb08 100644 --- a/src/ov_SC03_118/ov_SC03_118_jr_801863CC.c +++ b/src/ov_SC03_118/ov_SC03_118_jr_801863CC.c @@ -3895,10 +3895,7 @@ INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118_jr_801863CC", func_80188EB INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118_jr_801863CC", func_80188F14); -extern void func_80131E00(struct S80131E00 *a0, s32 a1); - void func_80188F90(s32 arg0) { - ((void (*)(s32, s32))func_80131E00)(arg0, 0x3); - } +DEFINE_func_80188F90() /* dedup: shared engine-core @0x80188F90 (src/shared) */ INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118_jr_801863CC", func_80188FB0); diff --git a/src/ov_SC03_119/ov_SC03_119_jr_801863CC.c b/src/ov_SC03_119/ov_SC03_119_jr_801863CC.c index c58dfac66..f90deccc3 100644 --- a/src/ov_SC03_119/ov_SC03_119_jr_801863CC.c +++ b/src/ov_SC03_119/ov_SC03_119_jr_801863CC.c @@ -3829,7 +3829,7 @@ INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119_jr_801863CC", func_80188EB INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119_jr_801863CC", func_80188F14); -INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119_jr_801863CC", func_80188F90); +DEFINE_func_80188F90() /* dedup: shared engine-core @0x80188F90 (src/shared) */ INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119_jr_801863CC", func_80188FB0); diff --git a/src/shared/engine_core.h b/src/shared/engine_core.h index e443c4754..43c2d7b9a 100644 --- a/src/shared/engine_core.h +++ b/src/shared/engine_core.h @@ -521,6 +521,12 @@ func_80182C28(arg0, arg1, 0xC, 0); \ } +#define DEFINE_func_80188F90() \ + extern void func_80131E00(struct S80131E00 *a0, s32 a1); \ + void func_80188F90(s32 arg0) { \ + ((void (*)(s32, s32))func_80131E00)(arg0, 0x3); \ + } + #endif #define DEFINE_func_80128EA8() \ @@ -30447,4 +30453,10 @@ func_80182C28(arg0, arg1, 0xC, 0); \ } +#define DEFINE_func_80188F90() \ + extern void func_80131E00(struct S80131E00 *a0, s32 a1); \ + void func_80188F90(s32 arg0) { \ + ((void (*)(s32, s32))func_80131E00)(arg0, 0x3); \ + } + #endif