mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-07 01:18:49 -04:00
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:
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user