mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-01 23:52:03 -04:00
feat(t5): Claude wave t5y — 5 banked (sonnet 4/5, opus 0/0, +recovery); fleet 213 passed, 0 failed of 213 (P31 S62 T5)
This commit is contained in:
+1
-1
@@ -324,7 +324,7 @@ ov_SC03_002_ELF := $(ov_SC03_002_OUT).elf
|
||||
ov_SC03_002_MAPFILE := $(ov_SC03_002_OUT).map
|
||||
ov_SC03_002_LD_SCRIPT := $(ov_SC03_002_OUT).ld
|
||||
ov_SC03_002_SPLAT_YAML := config/splat.ov_SC03_002.yaml
|
||||
ov_SC03_002_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_002.o,ov_SC03_002_jr_8012ACE0.o,tail2.data.o,ov_SC03_002_jr_80135888.o,tail3.data.o,ov_SC03_002_jr_80135A4C.o,tail4.data.o,ov_SC03_002_jr_80135D20.o,tail5.data.o,ov_SC03_002_jr_801380E0.o,ov_SC03_002_o0c.o,tail6.data.o,ov_SC03_002_jr_8013F350.o,tail7.data.o,ov_SC03_002_jr_8013FFD8.o,tail8.data.o,ov_SC03_002_jr_80140608.o,tail9.data.o,ov_SC03_002_jr_8015444C.o,ov_SC03_002_jr_80154C24.o,ov_SC03_002_jr_801588CC.o,ov_SC03_002_jr_80159C84.o,tail10.data.o,ov_SC03_002_jr_8015A3C8.o,tail11.data.o,ov_SC03_002_jr_8015AE2C.o,tail12.data.o,ov_SC03_002_jr_8015C32C.o,tail13.data.o,ov_SC03_002_jr_8016AB6C.o,tail14.data.o,ov_SC03_002_jr_80171B4C.o,ov_SC03_002_jr_801734BC.o,tail15.data.o,ov_SC03_002_jr_801789AC.o,ov_SC03_002_jr_80178D40.o,tail16.data.o,ov_SC03_002_jr_8017A4AC.o,tail17.data.o,ov_SC03_002_jr_8017AE2C.o,ov_SC03_002_jr_8017D604.o,tail18.data.o,ov_SC03_002_jr_80181BCC.o,tail19.data.o,ov_SC03_002_jr_80181D78.o,ov_SC03_002_jr_8018431C.o,tail20.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve
|
||||
ov_SC03_002_JTBL_INTERLEAVE := --order tail.data.o,ov_SC03_002.o,ov_SC03_002_jr_8012ACE0.o,tail2.data.o,ov_SC03_002_jr_80135888.o,tail3.data.o,ov_SC03_002_jr_80135A4C.o,tail4.data.o,ov_SC03_002_jr_80135D20.o,tail5.data.o,ov_SC03_002_jr_801380E0.o,ov_SC03_002_o0c.o,tail6.data.o,ov_SC03_002_jr_8013F350.o,tail7.data.o,ov_SC03_002_jr_8013FFD8.o,tail8.data.o,ov_SC03_002_jr_80140608.o,tail9.data.o,ov_SC03_002_jr_8015444C.o,ov_SC03_002_jr_80154C24.o,ov_SC03_002_jr_801588CC.o,ov_SC03_002_jr_80159C84.o,tail10.data.o,ov_SC03_002_jr_8015A3C8.o,tail11.data.o,ov_SC03_002_jr_8015AE2C.o,tail12.data.o,ov_SC03_002_jr_8015C32C.o,tail13.data.o,ov_SC03_002_jr_8016AB6C.o,tail14.data.o,ov_SC03_002_jr_80171B4C.o,ov_SC03_002_jr_801734BC.o,tail15.data.o,ov_SC03_002_jr_801789AC.o,ov_SC03_002_jr_80178D40.o,tail16.data.o,ov_SC03_002_jr_8017A4AC.o,tail17.data.o,ov_SC03_002_jr_8017AE2C.o,ov_SC03_002_jr_8017D604.o,tail18.data.o,ov_SC03_002_jr_801815AC.o,ov_SC03_002_jr_80181BCC.o,tail19.data.o,ov_SC03_002_jr_80181D78.o,ov_SC03_002_jr_8018431C.o,tail20.data.o,trailing.o # Phase-26 §8 jtbl-rodata carve
|
||||
build/src/ov_SC03_002/ov_SC03_002.o: JTBL_PADS := 0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0x14
|
||||
build/src/ov_SC03_002/ov_SC03_002_jr_8012ACE0.o: JTBL_PADS := 0,0,0 # §8e pads (jtbl_carve.py) tables=+0x0,+0xcc,+0xe0
|
||||
build/src/ov_SC03_002/ov_SC03_002_jr_80135D20.o: JTBL_PADS := 0,4 # §8e pads (jtbl_carve.py) tables=+0x0,+0x18
|
||||
|
||||
@@ -121,6 +121,7 @@ segments:
|
||||
- [0x52354, c, ov_SC03_002_jr_8017A4AC]
|
||||
- [0x52cd4, c, ov_SC03_002_jr_8017AE2C]
|
||||
- [0x554ac, c, ov_SC03_002_jr_8017D604]
|
||||
- [0x59454, c, ov_SC03_002_jr_801815AC]
|
||||
- [0x59a74, c, ov_SC03_002_jr_80181BCC]
|
||||
- [0x59c20, c, ov_SC03_002_jr_80181D78]
|
||||
- [0x5c1c4, c, ov_SC03_002_jr_8018431C]
|
||||
@@ -167,6 +168,7 @@ segments:
|
||||
- [0xa2198, .rodata, ov_SC03_002_jr_8017AE2C] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
- [0xa21ac, .rodata, ov_SC03_002_jr_8017D604] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
- [0xa21cc, data, tail18]
|
||||
- [0xa21dc, .rodata, ov_SC03_002_jr_801815AC] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
- [0xa21f0, .rodata, ov_SC03_002_jr_80181BCC] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
- [0xa220c, data, tail19]
|
||||
- [0xa2210, .rodata, ov_SC03_002_jr_80181D78] # Phase-26 §8 jtbl-rodata carve (jtbl_carve.py)
|
||||
|
||||
@@ -3759,6 +3759,27 @@ void func_8017E940(s32 a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_021/nonmatchings/ov_SC02_021_jr_8017C294", func_8017EA5C);
|
||||
extern void func_801292C8(u8 *a0);
|
||||
|
||||
void func_8017EA5C(s32 a0) {
|
||||
s32 *p1, *p2, *p3;
|
||||
|
||||
p1 = *(s32 **)((s32)a0 + 0x20);
|
||||
*(u16 *)((s8 *)p1 + 0x18) = *(u16 *)((s8 *)p1 + 0x18) + 0x280;
|
||||
p2 = *(s32 **)((s32)a0 + 0x20);
|
||||
p3 = *(s32 **)((s32)p1 + 0x20);
|
||||
*(u16 *)((s8 *)p2 + 0x1A) = *(u16 *)((s8 *)p2 + 0x1A) + 0x280;
|
||||
if (*(u8 *)((s8 *)p3 + 1) >= 8) {
|
||||
*(u8 *)((s8 *)p3 + 1) = *(u8 *)((s8 *)p3 + 1) - 8;
|
||||
}
|
||||
if (*(u8 *)((s8 *)p3 + 2) >= 8) {
|
||||
*(u8 *)((s8 *)p3 + 2) = *(u8 *)((s8 *)p3 + 2) - 8;
|
||||
}
|
||||
if ((s16)*(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x18) > 0x3800) {
|
||||
*(u8 *)((s8 *)p3 + 3) = 0;
|
||||
func_801292C8((u8 *)a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC02_021/nonmatchings/ov_SC02_021_jr_8017C294", func_8017EB00);
|
||||
|
||||
@@ -5146,236 +5146,3 @@ void func_80181548(void *a0) {
|
||||
func_8012A828((s32)a0, (s32)&D_801AA660);
|
||||
func_8018323C((s32)a0);
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002_jr_8017D604", func_801815AC);
|
||||
|
||||
void func_801816F0(void *a0) {
|
||||
extern s16 D_80189928;
|
||||
extern s16 D_80189930;
|
||||
extern s16 D_80189938;
|
||||
extern s16 D_801AB098;
|
||||
extern s32 D_801A4304;
|
||||
extern s32 func_80182D68(void *a0, void *a1);
|
||||
extern s32 func_80029504(void);
|
||||
extern void func_8012E88C(s32 a0);
|
||||
extern void func_8012A828(s32 a0, s32 a1);
|
||||
extern void func_8018323C(s32 a0);
|
||||
extern void func_8012E8E0(s32 a0, s32 a1);
|
||||
extern void func_80183480(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern void func_80183264(void *a0, s32 a1);
|
||||
extern s32 func_801788B8(s32 arg0, s32 arg1);
|
||||
extern void func_80181990(void *a0);
|
||||
extern void func_801813E4(void *a0);
|
||||
void *s0 = a0;
|
||||
s32 v0;
|
||||
s32 v1;
|
||||
|
||||
if (func_80182D68(s0, &D_80189938) != 0) {
|
||||
v1 = func_80029504();
|
||||
if (v1 < 0x64) {
|
||||
*(short *)((char *)s0 + 0x2) = 2;
|
||||
func_80183264(s0, &D_80189928);
|
||||
} else if (v1 < 0x78) {
|
||||
*(short *)((char *)s0 + 0x2) = 7;
|
||||
func_8012E88C((s32)s0);
|
||||
func_8012A828((s32)s0, (s32)&D_801AB098);
|
||||
func_8018323C((s32)s0);
|
||||
func_8012E8E0((s32)s0, (s32)&D_80189930);
|
||||
func_80183480((s32)s0, (s32)&D_801A4304, 0x1, 0x70);
|
||||
} else if (v1 < 0x82) {
|
||||
*(short *)((char *)s0 + 0x2) = 0xB;
|
||||
func_8012E88C((s32)s0);
|
||||
func_8012A828((s32)s0, (s32)&D_801AB098);
|
||||
func_8018323C((s32)s0);
|
||||
func_8012E8E0((s32)s0, (s32)&D_80189930);
|
||||
func_80183480((s32)s0, (s32)&D_801A4304, 0x1, 0x70);
|
||||
} else {
|
||||
*(short *)((char *)s0 + 0x2) = 2;
|
||||
func_80183264(s0, &D_80189928);
|
||||
}
|
||||
|
||||
{
|
||||
register s32 t __asm__("$2");
|
||||
t = *(s32 *)((char *)s0 + 0x68);
|
||||
*(short *)(t + 0xC) = 0x7FFF;
|
||||
}
|
||||
v0 = func_801788B8((s32)s0, (s32)&func_80181990);
|
||||
*(s32 *)((char *)s0 + 0xD4) = v0;
|
||||
func_8012E8E0(v0, (s32)&D_80189928);
|
||||
v0 = func_801788B8((s32)s0, (s32)&func_801813E4);
|
||||
*(s32 *)((char *)s0 + 0xD8) = v0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern void (*D_801899F4[])(void);
|
||||
|
||||
void func_80181808(void *a0) {
|
||||
D_801899F4[*(u16 *)((s32)a0 + 0x2)]();
|
||||
}
|
||||
|
||||
|
||||
extern s32 (*D_8018994C)();
|
||||
|
||||
void func_80181844(void *param) {
|
||||
*(u16 *)((s32)param + 2) = 4;
|
||||
*(u16 *)((s32)param + 0x34) = 0;
|
||||
if ((u32)func_80029504() < 0x82) {
|
||||
func_80178CBC((s32)param, (s32)&D_8018994C);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern s32 func_80128C98(s32 arg);
|
||||
extern void func_801CBB54(void *a0);
|
||||
void func_80181894(void *a0) {
|
||||
if (func_80128C98(3)) {
|
||||
((void (*)(void *))func_801CBB54)(a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_80128C98(s32 arg);
|
||||
extern void func_801CBBDC(void *a0);
|
||||
void func_801818D0(u8 *a0) {
|
||||
if (func_80128C98(0x3)) {
|
||||
((void (*)(u8 *))func_801CBBDC)(a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern void func_80178CBC(s32 arg0, s32 arg1);
|
||||
extern short D_801899A4;
|
||||
void func_8018190C(short *param) {
|
||||
param[1] = 0x12;
|
||||
func_80178CBC((int)param, (int)&D_801899A4);
|
||||
}
|
||||
|
||||
|
||||
extern int func_80178970(void);
|
||||
extern short D_801AA660;
|
||||
extern void func_8012A828(s32 a0, s32 a1);
|
||||
extern void func_80178D18(void);
|
||||
|
||||
void func_80181938(arg0)
|
||||
void *arg0;
|
||||
{
|
||||
extern int func_80178970(void);
|
||||
extern void func_80178D18(void);
|
||||
extern void func_8012A828(s32, s32);
|
||||
extern short D_801AA660;
|
||||
|
||||
if (func_80178970() != 0) {
|
||||
((void (*)(s32))func_80178D18)((s32)arg0);
|
||||
*(short *)((char *)arg0 + 0x2) = 16;
|
||||
*(short *)((char *)arg0 + 0x34) = 2;
|
||||
((void (*)(s32 *, s32))func_8012A828)((s32 *)arg0, (s32)&D_801AA660);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_80182E88(void);
|
||||
extern s32 func_80183158(s32 arg0, s32 arg1);
|
||||
extern s32 func_80178BF8();
|
||||
extern void func_80172710(void);
|
||||
|
||||
s32 aF80181990(void *a0) __asm__("func_80181990");
|
||||
|
||||
s32 aF80181990(void *a0) {
|
||||
register s32 obj __asm__("$16") = (s32)a0;
|
||||
s32 ptr;
|
||||
s32 ptr2;
|
||||
ptr = *(s32 *)((char *)obj + 0x64);
|
||||
if (*(u16 *)((char *)ptr + 0x2) == 2 && func_80182E88() != 0 && func_80183158(7, 0x15) != 0) {
|
||||
ptr2 = *(s32 *)((char *)obj + 0x64);
|
||||
*(u16 *)((char *)ptr2 + 0x2) = 3;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
func_80178BF8();
|
||||
return (s32)func_80172710;
|
||||
}
|
||||
|
||||
|
||||
void func_80181A10(void *a0)
|
||||
{
|
||||
s32 v0;
|
||||
*(s32 *)(*(s32 *)((s32)a0 + 0xCC) + 0xB0) = 2;
|
||||
v0 = func_8018317C(5, 0, 5, 0x1E);
|
||||
if (v0 != 0) {
|
||||
func_80181548(a0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 func_80029504(void);
|
||||
extern int func_80178970(void);
|
||||
extern void func_80178D18(void);
|
||||
extern void func_80178CBC(s32 arg0, s32 arg1);
|
||||
extern s32 func_80128C98(s32 arg);
|
||||
extern void func_80183264(void *a0, s32 a1);
|
||||
extern short D_80189928;
|
||||
extern void (*D_80189974)(void);
|
||||
|
||||
void func_80181A64(void *a0) {
|
||||
s32 s0 = (s32)a0;
|
||||
|
||||
if ((u32)func_80029504() >= 0x82) {
|
||||
switch (*(u16 *)(s0 + 0x34)) {
|
||||
case 0:
|
||||
if (func_80128C98(3) != 0) {
|
||||
((void (*)(s32 *, s32))func_80178CBC)((s32 *)s0, (s32)&D_80189974);
|
||||
*(s16 *)(s0 + 0x34) = 1;
|
||||
}
|
||||
return;
|
||||
case 1:
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (((s32 (*)(s32))func_80178970)((s32)s0) != 0) {
|
||||
((void (*)(s32))func_80178D18)((s32)s0);
|
||||
*(s16 *)(s0 + 2) = 2;
|
||||
func_80183264((void *)s0, &D_80189928);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void func_80181B14(void) {
|
||||
}
|
||||
|
||||
void func_80181B1C(void) {
|
||||
}
|
||||
|
||||
void func_80181B24(s32 a0)
|
||||
{
|
||||
extern s32 D_801A4304;
|
||||
extern s32 func_80183550(s32 a0);
|
||||
extern void func_80183480(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
extern s32 func_8012BD14(s32 a0);
|
||||
extern void func_8014CB68(void);
|
||||
|
||||
if (func_80183550(a0) != 0) {
|
||||
func_80183480(a0, (s32)&D_801A4304, 1, 0x70);
|
||||
}
|
||||
if (func_8012BD14(*(s32 *)(a0 + 0x64)) < 0x4001) {
|
||||
func_8014CB68();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s32 D_801A4304;
|
||||
extern s32 func_80183550(s32 a0);
|
||||
extern void func_80183480(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||
|
||||
void func_80181B88(s32 a0)
|
||||
{
|
||||
if (func_80183550(a0) != 0) {
|
||||
func_80183480(a0, (s32)&D_801A4304, 1, 0x70);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5231,7 +5231,7 @@ extern s32 func_801788B8(s32 arg0, s32 arg1);
|
||||
extern s32 func_8012C658(s32 arg0, s32 arg1, s32 arg2);
|
||||
extern void func_8001D0E8(s32 a0, s32 a1, s32 a2);
|
||||
extern void MoveImage(void *a0, s32 a1, s32 a2);
|
||||
extern void func_801806B8();
|
||||
extern s32 func_801806B8();
|
||||
|
||||
extern u8 D_801997EC[];
|
||||
extern u8 D_80199820[];
|
||||
@@ -5433,7 +5433,24 @@ s32 func_8018066C(void) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000_jr_8017BEBC", func_801806B8);
|
||||
extern s32 func_80178BF8();
|
||||
extern void func_80172710(void);
|
||||
extern u16 D_80126B5E;
|
||||
extern u16 D_80126B66;
|
||||
|
||||
s32 func_801806B8(void *a0)
|
||||
{
|
||||
if ((s16)*(s16 *)((s32)a0 + 0xE) - (s16)D_80126B66 >= 0x50) {
|
||||
return 0;
|
||||
}
|
||||
if ((u32)((s16)D_80126B5E - *(s16 *)((s32)a0 + 6)) >= 0x101) {
|
||||
return 0;
|
||||
}
|
||||
*(s16 *)(*(s32 *)((s32)a0 + 0x64) + 2) = 2;
|
||||
func_80178BF8();
|
||||
return (s32)func_80172710;
|
||||
}
|
||||
|
||||
|
||||
void func_80180730(void) {
|
||||
}
|
||||
|
||||
@@ -2791,7 +2791,7 @@ extern u8 D_8019976C[];
|
||||
extern u8 D_80199774[];
|
||||
extern s32 func_8017FD04(s32 arg0);
|
||||
extern void func_8001D0E8(s32 a0, s32 a1, s32 a2);
|
||||
extern void func_801806B8();
|
||||
extern s32 func_801806B8();
|
||||
extern u8 D_801997EC[];
|
||||
extern u8 D_80199820[];
|
||||
extern u8 D_80199468[];
|
||||
|
||||
@@ -3487,7 +3487,29 @@ void func_8017D464(void *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_000/nonmatchings/ov_SC05_000_jr_8017BEBC", func_8017D4A0);
|
||||
typedef struct {
|
||||
s16 v[4];
|
||||
} Blk8_80126940_8017D4A0;
|
||||
|
||||
extern void func_8017D538(s32 param_1, s16 *param_2);
|
||||
|
||||
void func_8017D4A0(s32 param_1) {
|
||||
extern Blk8_80126940_8017D4A0 D_80126940;
|
||||
Blk8_80126940_8017D4A0 sp10;
|
||||
|
||||
sp10 = D_80126940;
|
||||
if (sp10.v[1] < -0x4E0) {
|
||||
sp10.v[1] = -0x4E0;
|
||||
}
|
||||
if (sp10.v[0] < -0x2D0) {
|
||||
sp10.v[0] = -0x2D0;
|
||||
}
|
||||
if (sp10.v[0] > 0x2D0) {
|
||||
sp10.v[0] = 0x2D0;
|
||||
}
|
||||
func_8017D538(param_1, sp10.v);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// @class: schedule
|
||||
@@ -3844,7 +3866,32 @@ void func_8017DF08(s32 *a0) {
|
||||
}
|
||||
|
||||
|
||||
INCLUDE_ASM("asm/ov_SC05_000/nonmatchings/ov_SC05_000_jr_8017BEBC", func_8017DF38);
|
||||
extern void func_80019064(void *a0);
|
||||
extern int func_801511E0(int arg);
|
||||
extern void func_80154274(s32 *a0, s32 a1);
|
||||
extern void func_80146E90(s32 *a0, s32 a1);
|
||||
extern void func_80146DE8(s32 *a0, s32 a1, s32 a2, s32 a3);
|
||||
extern void func_801477E8(s32 *a0, s32 a1);
|
||||
extern void func_80149020(s32 *a0);
|
||||
extern void func_80147324(s32 arg0);
|
||||
extern void func_80146CA0(void *a0);
|
||||
extern s32 D_80062C14;
|
||||
extern s32 D_80181F5C;
|
||||
|
||||
void func_8017DF38(s32 *a0)
|
||||
{
|
||||
func_80019064(&D_80062C14);
|
||||
func_801511E0((s32)a0);
|
||||
*(s16 *)(*(s32 *)((s32)a0 + 0x20) + 0x12) = (*(u16 *)((s32)a0 + 0x42) + 0x800) & 0xFFF;
|
||||
func_80154274(a0, (s32)&D_80181F5C);
|
||||
func_80146E90(a0, 0x20);
|
||||
func_80146DE8(a0, 0, 0xFFFF0000, 0x180000);
|
||||
func_801477E8(a0, 0xFFF00000);
|
||||
func_80149020(a0);
|
||||
func_80147324(0x451);
|
||||
func_80146CA0(a0);
|
||||
}
|
||||
|
||||
|
||||
extern void func_80149020(s32 *a0);
|
||||
extern void func_80147A84(s32 arg0);
|
||||
|
||||
Reference in New Issue
Block a user