From 14bc520c9667336060c8b536d04d949b1ec8e91a Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Wed, 29 Jul 2026 00:47:01 -0600 Subject: [PATCH] =?UTF-8?q?fix(phase-29):=20engine=5Fcore.h=20=E2=80=94=20?= =?UTF-8?q?=C2=A799=20no-prototype=20for=20func=5F80147364=20(sidesteps=20?= =?UTF-8?q?a=204,021-site=20conform)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Item 3, and the cheap route won. conform_decls' dry run priced the direct fix and warned it off: byte-true def : void func_80147364(u16 param_1, u16 param_2) 4,021 decl sites: 2,030 (u16,s32) + 1,983 (u16 a0,s32 a1) + 4 byte-true + 4 (u16,u16) ⚠ SCALAR-NARROWING (s32 -> u16) — NOT caller-neutral; argument promotion changes at every call site, so callers emit different code (byte-proven on func_80175DA8) So conforming 4,021 sites would likely trade a PLUMBING failure for a BYTE failure. The §99 no-prototype form on the HEADER is compatible with both the byte-true definition and the existing (u16, s32) prototypes, and touches 9 sites instead of 4,021: extern void func_80147364(u16, s32); -> extern void func_80147364(); Verified: header change ALONE, no src change, R22 clean-fleet 140 passed, 0 failed of 140. This is the T67 failure resolved — that batch failed 2/140 with because it corrected the header's TYPES while 272 TUs disagreed. Dropping the prototype instead disagrees with nobody. --- src/shared/engine_core.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/shared/engine_core.h b/src/shared/engine_core.h index 5086efaf79..a85fb06705 100644 --- a/src/shared/engine_core.h +++ b/src/shared/engine_core.h @@ -2198,7 +2198,7 @@ } #define DEFINE_func_80147300() \ - extern void func_80147364(u16, s32); \ + extern void func_80147364(); \ void func_80147300(u16 arg0) { \ func_80147364(arg0, 0); \ } @@ -8544,7 +8544,7 @@ #define DEFINE_func_8014CA14() \ extern u16 func_8014CA70(s32 a0, s32 a1); \ - extern void func_80147364(u16, s32); \ + extern void func_80147364(); \ extern void *D_8012707C; \ s32 func_8014CA14(s32 a0, s32 a1) { \ u16 x = func_8014CA70(a0, a1); \ @@ -8561,7 +8561,7 @@ #define DEFINE_func_8014CA88() \ extern u16 func_8014CAE4(s32 *a0, s32 a1); \ - extern void func_80147364(u16, s32); \ + extern void func_80147364(); \ extern void *D_8012707C; \ s32 func_8014CA88(s32 *a0, s32 a1) { \ u16 x = func_8014CAE4(a0, a1); \ @@ -11591,7 +11591,7 @@ extern void func_80015978(s32 a0, s32 *a1); \ extern s32 func_8012E5CC(s32 a0, s32 a1, s32 a2); \ extern void func_8002D4C8(s32 a0, s32 a1); \ - extern void func_80147364(u16 a0, s32 a1); \ + extern void func_80147364(); \ extern s32 func_800CCF28(s32 a0); \ extern u16 *func_80146750(u16 *param_1); \ extern u8 D_80126B5C; \ @@ -16790,7 +16790,7 @@ } #define DEFINE_func_80147324() \ - extern void func_80147364(u16, s32); \ + extern void func_80147364(); \ extern void *D_8012707C; \ void func_80147324(s32 arg0) { \ s32 temp_a0; \ @@ -20167,7 +20167,7 @@ extern void func_8016A290(); \ extern void func_80147324(s32 arg0); \ extern s32 func_80146A6C(s32 a0, void *a1, s32 a2, s32 a3, s32 a4, s32 a5, s32 a6); \ - extern void func_80147364(u16, s32); \ + extern void func_80147364(); \ extern void func_80146C3C(void); \ void func_8016A08C(s32 param_1) { \ register s32 s0 __asm__("$16"); \ @@ -20477,7 +20477,7 @@ extern void func_80164418(); \ extern s32 func_80146E98(s32 a0); \ extern void func_801553C0(s32 a0); \ - extern void func_80147364(u16, s32); \ + extern void func_80147364(); \ extern void func_80147324(s32 arg0); \ extern void func_80162CCC(void); \ void func_8016432C(s32 a0) { \ @@ -21992,7 +21992,7 @@ #define DEFINE_func_8016A1CC() \ extern u8 D_80078EBF; \ extern void func_80147324(s32 arg0); \ - extern void func_80147364(u16, s32); \ + extern void func_80147364(); \ extern void func_80146C3C(void); \ void func_8016A1CC(int param_1) \ { \ @@ -23629,7 +23629,7 @@ extern void func_80162FC0(s32 *a0); \ extern void func_80146DE8(s32 *a0, s32 a1, s32 a2, s32 a3); \ extern void func_80146E90(s32 *a0, s32 a1); \ - extern void func_80147364(u16, s32); \ + extern void func_80147364(); \ extern void func_80146CA0(void *a0); \ extern u16 func_80156370(u16 param_1); \ extern void func_801634D8(s32 param_1, u16 param_2, u16 param_3, s32 param_4, u16 param_5); \