mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-27 22:45:39 -04:00
feat(phase-29 crack-wave3): func_8014032C jtbl exemplar banked ×1 (§59(3) two-table merged-span wall blocks member propagation)
This commit is contained in:
+1
-1
@@ -22,7 +22,7 @@ ov_SC01_077_MAPFILE := $(ov_SC01_077_OUT).map
|
||||
ov_SC01_077_LD_SCRIPT := $(ov_SC01_077_OUT).ld
|
||||
ov_SC01_077_SPLAT_YAML := config/splat.ov_SC01_077.yaml
|
||||
ov_SC01_077_JTBL_INTERLEAVE := --order tail.data.o,ov_SC01_077_jr_8012ACE0.o,tail2.data.o,ov_SC01_077_jr_801380E0.o,tail3.data.o,ov_SC01_077_o0.o,tail4.data.o,ov_SC01_077.o,tail5.data.o,ov_SC01_077_jr_8015444C.o,tail6.data.o,ov_SC01_077_jr_80159C84.o,tail7.data.o,ov_SC01_077_jr_8015A3C8.o,tail8.data.o,ov_SC01_077_jr_8015AE2C.o,tail9.data.o,ov_SC01_077_jr_8015C32C.o,tail10.data.o,ov_SC01_077_jr_8016AB6C.o,tail11.data.o,ov_SC01_077_jr_801734BC.o,tail12.data.o,ov_SC01_077_jr_80178D40.o,tail13.data.o,ov_SC01_077_jr_8017A4AC.o,tail14.data.o,ov_SC01_077_jr_80182268.o,tail15.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve
|
||||
build/src/ov_SC01_077/ov_SC01_077.o: JTBL_PADS := 0,0,4,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20,+0x38,+0x58
|
||||
build/src/ov_SC01_077/ov_SC01_077.o: JTBL_PADS := 0,0,4,0,4,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20,+0x38,+0x58,+0x70,+0x90
|
||||
build/src/ov_SC01_077/ov_SC01_077_jr_8012ACE0.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0xcc
|
||||
build/src/ov_SC01_077/ov_SC01_077_jr_80159C84.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x20
|
||||
ov_SC01_077_CHECK_SHA := config/check.ov_SC01_077.sha
|
||||
|
||||
@@ -96,7 +96,7 @@ segments:
|
||||
- [0xb01a4, .rodata, ov_SC01_077_o0] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
- [0xb0280, data, tail4]
|
||||
- [0xb0708, .rodata, ov_SC01_077] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
- [0xb0774, data, tail5]
|
||||
- [0xb07ac, data, tail5]
|
||||
- [0xb07dc, .rodata, ov_SC01_077_jr_8015444C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
- [0xb0848, data, tail6]
|
||||
- [0xb09a4, .rodata, ov_SC01_077_jr_80159C84] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
|
||||
@@ -2054,7 +2054,110 @@ s32 func_8013FFD8(s16 arg0, s32 arg1, s32 *arg2) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_077/nonmatchings/ov_SC01_077", func_8014032C);
|
||||
|
||||
|
||||
/* indexed data arrays (overlay) */
|
||||
|
||||
|
||||
/* address-return symbols (main RAM) */
|
||||
|
||||
s32 func_8014032C(s32 param_1, s32 param_2) {
|
||||
extern int (*D_80187F00[])(void);
|
||||
extern int (*D_80187EF0[])(void);
|
||||
extern void * D_80187C0C[];
|
||||
extern void * D_80187C3C[];
|
||||
extern void * D_80187C4C[];
|
||||
extern void * D_80187C24[];
|
||||
extern u8 D_80187BDC[];
|
||||
extern void * D_80187C64[];
|
||||
extern void * D_80187C7C[];
|
||||
extern void * D_80187C90[];
|
||||
extern u8 D_80187BE3[];
|
||||
extern u8 * D_801D95CC;
|
||||
extern u8 D_801117EC[];
|
||||
extern u8 D_801117B4[];
|
||||
extern u8 D_80112BC8[];
|
||||
extern u8 D_80112B58[];
|
||||
extern u8 D_80112BA8[];
|
||||
extern u8 D_80112B90[];
|
||||
|
||||
|
||||
int cVar1;
|
||||
unsigned int uVar3;
|
||||
void *result;
|
||||
|
||||
result = D_801117EC;
|
||||
switch (((short)param_1)) {
|
||||
case 0:
|
||||
if (((s32(*)(s32))func_80029178)(D_80187BB8[((short)param_2)]) & 0xFF) {
|
||||
result = D_80187C0C[((short)param_2)];
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
result = D_80187C3C[((short)param_2)];
|
||||
break;
|
||||
case 2:
|
||||
switch ((*(s16*)&D_80115128)) {
|
||||
case 0:
|
||||
if (D_80187F00[((short)param_2)]() == 0) {
|
||||
((short)param_2) = 5;
|
||||
} else if (D_80187EF0[((short)param_2)]() != 0) {
|
||||
((short)param_2) = 4;
|
||||
}
|
||||
result = D_80187C4C[((short)param_2)];
|
||||
break;
|
||||
case 1:
|
||||
goto case5;
|
||||
case 2:
|
||||
if (((s32(*)(s32))func_80029178)(D_801D95CC[((short)param_2)]) & 0xFF) {
|
||||
if (((short)param_2) == 5 && (((s32(*)(s32))func_80029178)(0x1C) & 0xFF)) {
|
||||
result = D_801117B4;
|
||||
} else {
|
||||
result = D_80187C24[((short)param_2)];
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (((s32(*)(s32))func_80029178)(D_80187BDC[((short)param_2)]) & 0xFF) {
|
||||
result = D_80187C64[((short)param_2)];
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
result = D_80187C7C[((short)param_2)];
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
case5:
|
||||
uVar3 = ((s32(*)(s32))func_800291B4)(D_80187BD0[((short)param_2)]) & 0xFF;
|
||||
if (uVar3 != 0) {
|
||||
result = D_80187C90[uVar3];
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (((short)param_2) != 0) {
|
||||
cVar1 = ((s32(*)(s32))func_800291B4)(D_80187BE3[((short)param_2)]) & 0xFF;
|
||||
if (cVar1 == 0) {
|
||||
result = D_80112B58;
|
||||
} else {
|
||||
result = D_80112BA8;
|
||||
if (cVar1 == 1) {
|
||||
result = D_80112B90;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
result = D_80112BC8;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
case 7:
|
||||
default:
|
||||
result = 0;
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC01_077/nonmatchings/ov_SC01_077", func_80140608);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user