feat(phase-32): T2c (2) — 8 free banks in the five new modules (twin remaps, 0 drafting tokens), every module byte-identical

- d=0 hash twins via family_remap: md_MAIN_007 func_800CEF60 (13, <- md_MAIN_008:0x800cee8c) · md_SC03_053
  func_801EF5E4 (16, <- ov_SC01_077:0x801743f0) · md_SC03_056 func_801CBB54 (11, <- ov_SC03_001:0x80184278) +
  func_801CBC08 (16, <- ov_SC01_077:0x801743f0) · md_SC03_054 func_801F0134 (5, <- resident:0x800cf82c)
- RELOC-ONLY twins: md_MAIN_007 func_800CF02C (15, <- resident:0x800cf4d4) · md_MAIN_009 func_800CD384 (13,
  <- md_MAIN_003:0x800ceed0)
- d=1 cousin: md_SC03_053 func_801EF560 (3, <- ov_SC03_001:0x801805ec; one constant 0x2 -> 0x10 named by the
  real-TU diff)
- each rtu_match MATCH in its real TU, spliced in-tree, make build -j8 rc 0: md_MAIN_007 2ff702b6 · md_MAIN_009
  d270f695 · md_SC03_053 c0848f30 · md_SC03_054 06bd73df · md_SC03_056 bc768a6b (R53). Oracles: twin_rescan
  (now covers md_*) + seed_ref --all --near (74 open: 7 d=0, 3 RELOC-ONLY, 16 NEAR-COUSIN, 48 none)
This commit is contained in:
Drew T
2026-09-05 00:10:33 -06:00
parent 8b2bbff831
commit 89d177aa37
5 changed files with 72 additions and 8 deletions
+19 -2
View File
@@ -4,13 +4,30 @@ INCLUDE_ASM("asm/md_MAIN_007/nonmatchings/md_MAIN_007", func_800CEE2C);
INCLUDE_ASM("asm/md_MAIN_007/nonmatchings/md_MAIN_007", func_800CEEFC);
INCLUDE_ASM("asm/md_MAIN_007/nonmatchings/md_MAIN_007", func_800CEF60);
void func_800CEF60(void) {
extern s32 func_800167F0(s32 a0);
extern void func_800118AC(void);
if (func_800167F0(0) & 0xFFFF) {
func_800118AC();
}
}
INCLUDE_ASM("asm/md_MAIN_007/nonmatchings/md_MAIN_007", func_800CEF94);
INCLUDE_ASM("asm/md_MAIN_007/nonmatchings/md_MAIN_007", func_800CEFF8);
INCLUDE_ASM("asm/md_MAIN_007/nonmatchings/md_MAIN_007", func_800CF02C);
extern u16 D_800B99E4;
extern void (*D_800D133C[])(void);
void func_800CF02C(void) {
D_800D133C[D_800B99E4]();
}
INCLUDE_RODATA("asm/md_MAIN_007/nonmatchings/md_MAIN_007", D_800CEDF8);
+9 -1
View File
@@ -1,6 +1,14 @@
#include "common.h"
INCLUDE_ASM("asm/md_MAIN_009/nonmatchings/md_MAIN_009", func_800CD384);
extern void (*D_800CDD08[])(void);
void func_800CD384(void) {
register s32 idx __asm__("$2");
__asm__ __volatile__("" : : "r"(idx));
D_800CDD08[idx]();
}
INCLUDE_RODATA("asm/md_MAIN_009/nonmatchings/md_MAIN_009", D_800CD348);
+17 -2
View File
@@ -4,13 +4,28 @@ INCLUDE_ASM("asm/md_SC03_053/nonmatchings/md_SC03_053", func_801EF46C);
INCLUDE_ASM("asm/md_SC03_053/nonmatchings/md_SC03_053", func_801EF49C);
INCLUDE_ASM("asm/md_SC03_053/nonmatchings/md_SC03_053", func_801EF560);
void func_801EF560(void *a0) {
*(short *)((char *)a0 + 0x2) = 0x10; /* NEAR-COUSIN constant from the real-TU diff (li v0,0x10) */
}
INCLUDE_ASM("asm/md_SC03_053/nonmatchings/md_SC03_053", func_801EF56C);
INCLUDE_ASM("asm/md_SC03_053/nonmatchings/md_SC03_053", func_801EF58C);
INCLUDE_ASM("asm/md_SC03_053/nonmatchings/md_SC03_053", func_801EF5E4);
extern s32 func_80178970(s32 *a0);
extern void func_80178D18(u8 *a0);
extern s32 func_801858CC(s32);
void func_801EF5E4(u8 * a0)
{
if (func_80178970(a0)) {
func_80178D18((u8 *)a0);
func_801858CC((s32)a0);
}
}
INCLUDE_ASM("asm/md_SC03_053/nonmatchings/md_SC03_053", func_801EF624);
+6 -1
View File
@@ -14,4 +14,9 @@ INCLUDE_ASM("asm/md_SC03_054/nonmatchings/md_SC03_054", func_801F00C8);
INCLUDE_ASM("asm/md_SC03_054/nonmatchings/md_SC03_054", func_801F0104);
INCLUDE_ASM("asm/md_SC03_054/nonmatchings/md_SC03_054", func_801F0134);
extern s16 D_801F1480;
void func_801F0134(void) {
D_801F1480 = 1;
}
+21 -2
View File
@@ -1,11 +1,30 @@
#include "common.h"
INCLUDE_ASM("asm/md_SC03_056/nonmatchings/md_SC03_056", func_801CBB54);
extern void func_80178CBC(s32*, s32);
extern short D_801CC890;
void func_801CBB54(void * arg0) {
*(short *)((char *)arg0 + 0x2) = 10;
((void (*)(s32, s32))func_80178CBC)((int)arg0, (int)&D_801CC890);
}
INCLUDE_ASM("asm/md_SC03_056/nonmatchings/md_SC03_056", func_801CBB80);
INCLUDE_ASM("asm/md_SC03_056/nonmatchings/md_SC03_056", func_801CBBDC);
INCLUDE_ASM("asm/md_SC03_056/nonmatchings/md_SC03_056", func_801CBC08);
extern s32 func_80178970(s32 *a0);
extern void func_80178D18(u8 *a0);
extern s32 func_8018151C(s32);
void func_801CBC08(u8 * a0)
{
if (func_80178970(a0)) {
func_80178D18((u8 *)a0);
func_8018151C((s32)a0);
}
}
INCLUDE_RODATA("asm/md_SC03_056/nonmatchings/md_SC03_056", D_801CBB50);