feat(decomp): ox wave eh overlays — 129 banked

Committed before the main batch: gate_main reverts on failure and would take these with it.
This commit is contained in:
Drew T
2026-08-25 17:10:42 -06:00
parent f0450910dd
commit eebe792a0b
77 changed files with 2514 additions and 152 deletions
+60 -2
View File
@@ -699,7 +699,7 @@ void func_800D2454(s32 a0, s32 a1, s32 *a2) {
INCLUDE_ASM("asm/md_MAIN_003/nonmatchings/md_MAIN_003", func_800D24D0);
extern s32 func_800D27A0(s32 a0, s32 a1);
extern s32 func_800D27A0();
extern void func_800D3234(s32 a0, s32 a1);
extern void StFreeRing(s32 a0);
@@ -726,7 +726,65 @@ s32 func_800D2704(s32 a0, s32 a1) {
}
INCLUDE_ASM("asm/md_MAIN_003/nonmatchings/md_MAIN_003", func_800D27A0);
extern s32 D_800EC9F4;
extern s32 D_800EC9F8;
extern s32 D_800D9484;
extern s32 D_800D9488;
struct UnkS1 { s32 pad0; s32 f4; s32 pad8; s32 fC; s32 pad10; s32 pad14; s32 f18; u32 f1C; };
s32 func_800D27A0(void* arg0, struct UnkS1* arg1) {
s32 sp10[2];
u16 sp18[4];
s32 ret;
s32 i;
for (i = 0x8000; i != 0; i--) {
if (StGetNext(&sp10[0], &sp10[1]) == 0) {
goto found;
}
}
return 0;
found:
if (*(u32*)(sp10[1] + 8) >= arg1->fC) {
D_800EC9F4 = 1;
}
if (*(u32*)(sp10[1] + 8) >= arg1->fC - 15) {
D_800EC9F8 = 1;
} else {
D_800EC9F8 = 0;
}
if (D_800D9484 != *(u16*)(sp10[1] + 0x10) || D_800D9488 != *(u16*)(sp10[1] + 0x12)) {
u16 cur1;
u16 cur2;
sp18[0] = 0;
sp18[1] = 0;
sp18[2] = arg1->f4 != 0 ? (arg1->f18 * 3) / 2 : *(u16*)&arg1->f18;
sp18[3] = arg1->f1C * 2;
if (arg1->f4 != 0) {
func_80059888(sp18, 0, 0, 0);
} else {
func_80059888(sp18, 0x40, 0x40, 0x40);
}
cur1 = *(u16*)(sp10[1] + 0x10);
cur2 = *(u16*)(sp10[1] + 0x12);
D_800D9484 = cur1;
D_800D9488 = cur2;
}
{
u16 t = arg1->f4 != 0 ? (D_800D9484 * 3) / 2 : *(u16*)&D_800D9484;
u16 g;
ret = sp10[0];
g = *(u16*)&D_800D9488;
*(u16*)(arg0 + 0x24) = t;
*(u16*)(arg0 + 0x1C) = t;
*(u16*)(arg0 + 0x26) = g;
*(u16*)(arg0 + 0x1E) = g;
*(u16*)(arg0 + 0x32) = g;
}
return ret;
}
typedef struct {
s8 pad00[0x18];
+10 -1
View File
@@ -66,7 +66,16 @@ void func_800CB054(void *a0) {
INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB05C);
INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB0E8);
void func_800CB0E8(void *a0) {
extern s32 func_80146994(s32 a0, s32 a1, s32 a2, s32 a3);
s32 v1;
v1 = func_80146994(0x15, (s32)a0, 0, 0);
if (v1 != 0) {
*(s32 *)(v1 + 0x30) = *(s16 *)((u8 *)a0 + 0x36);
}
}
INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB138);
+14 -1
View File
@@ -376,7 +376,20 @@ void func_800CBA60(void *a0) {
}
INCLUDE_ASM("asm/md_MAIN_025/nonmatchings/md_MAIN_025", func_800CBAF4);
void func_800CBAF4(void *a0)
{
s32 s0;
extern s32 func_80146E98(s32 a0);
extern void func_800CBBF8();
s0 = *(s32 *)((s32)a0 + 0x10);
if (func_80146E98((s32)a0) != 0) {
func_800CBBF8();
} else if (s0 != 0) {
*(u16 *)((s32)s0 + 0x1A) = *(u16 *)((s32)s0 + 0x1A) - 0x400;
}
}
void func_800CBB50(void *a0) {
*(u8 *)((s32)a0 + 0x27) = 0x1A;
+13 -1
View File
@@ -50,7 +50,19 @@ void func_800CAF68(void *arg0) {
}
INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB010);
extern s32 func_8014C088(s32 a0, s32 a1);
extern s32 func_80165A20(s32 a0);
extern void func_800CB108();
void func_800CB010(void *arg0) {
if (func_8014C088((s32)arg0, 0xB) == 0) {
*(u8 *)((s32)arg0 + 0x197) += 1;
func_80165A20((s32)arg0);
} else if (*(u8 *)((s32)arg0 + 0xBE) != 0) {
func_800CB108(arg0);
}
}
extern void func_800CB108(void);
void func_800CB078(void) {
+50 -1
View File
@@ -532,4 +532,53 @@ void func_800CC004(void) {
}
INCLUDE_ASM("asm/md_MAIN_027/nonmatchings/md_MAIN_027", func_800CC024);
extern void func_80015954(s32 a0, s32 a1);
extern s32 func_80047948(s32 a0);
extern s32 func_8004787C(s32 a0);
void func_800CC024() {
extern u8 D_800CC290[];
s32 s2;
s32 s3;
s32 m;
s32 ang;
s32 r;
s16 d[2];
u16 v;
u16 t;
s32 obj;
{
register s32 a0p __asm__("$4");
obj = a0p;
}
s2 = *(s32 *)(obj + 0x4C);
s3 = *(s32 *)(obj + 0x20);
if (s2 == 0) {
return;
}
func_80015954((s32)D_800CC290, obj + 4);
v = *(u16 *)(obj + 0x60);
m = v & 0x1F;
ang = ((m << 8) & 0x7F00) >> 1;
t = *(u16 *)(obj + 0xA);
__asm__("" :: "r"(m), "r"(ang));
*(u16 *)(obj + 0xA) = t - 0x10;
*(u16 *)(obj + 0x60) = v + 1;
if (*(s32 *)(obj + 0x50) == 0) {
r = func_80047948(m << 7);
} else {
r = 0x1000 - func_80047948(m << 7);
}
d[0] = r / 1024;
d[1] = func_8004787C(ang) / 512;
*(u16 *)(obj + 6) += d[0];
*(u16 *)(obj + 0xA) += d[1];
*(s32 *)(s3 + 0x18) = *(s32 *)(*(s32 *)(s2 + 0x20) + 0x18);
}
+13 -1
View File
@@ -164,7 +164,19 @@ INCLUDE_ASM("asm/md_MAIN_028/nonmatchings/md_MAIN_028", func_800CB59C);
}
INCLUDE_ASM("asm/md_MAIN_028/nonmatchings/md_MAIN_028", func_800CB620);
void func_800CB620(s32 arg0) {
s32 v;
*(u16 *)(arg0 + 0x10) = *(u16 *)(arg0 + 6);
*(u16 *)(arg0 + 0x12) = *(u16 *)(arg0 + 0xA);
*(u16 *)(arg0 + 0x14) = *(u16 *)(arg0 + 0xE);
v = rand() & 0x1F;
v <<= 7;
*(u16 *)(arg0 + 0x64) = v;
*(u16 *)(arg0 + 0x66) = v;
func_800CB684(arg0, 0x200);
func_800CB6D4(arg0);
}
void func_800CB684(s32 a0, s32 a1) {
extern s32 rand(void);
+18 -1
View File
@@ -30,7 +30,24 @@ void func_800CAE78(u8 *a0) {
INCLUDE_ASM("asm/md_MAIN_032/nonmatchings/md_MAIN_032", func_800CAEC0);
INCLUDE_ASM("asm/md_MAIN_032/nonmatchings/md_MAIN_032", func_800CAF60);
void func_800CAF60(void *a0) {
extern void func_80147A84(s32 a0);
extern void func_801473EC(s32 *a0);
extern void func_80148038(s32 a0, s32 a1);
extern void func_80147460(s32 a0);
extern s32 func_80161418(void *a0);
extern s32 func_80155FD4(s32 a0, s32 a1);
*(u32 *)((u8 *)a0 + 0x44) |= 2;
func_80147A84((s32)a0);
func_801473EC((s32 *)a0);
func_80148038((s32)a0, 0x20000);
func_80147460((s32)a0);
if (func_80161418(a0) == 0) {
func_80155FD4((s32)a0, *(u8 *)((u8 *)a0 + 0x1AA));
}
}
void func_800CAFD0(void *a0) {
extern u8 D_8011F9D0[];
+11 -1
View File
@@ -291,7 +291,17 @@ void func_800CB5DC(void *arg0) {
}
INCLUDE_ASM("asm/md_MAIN_033/nonmatchings/md_MAIN_033", func_800CB6D4);
void func_800CB6D4(void *a0)
{
extern void func_800CB76C(void *arg0);
if (*(u16 *)*(s32 *)((u8 *)a0 + 0x34) == 0) {
*(u16 *)((u8 *)a0 + 2) = *(u16 *)((u8 *)a0 + 2) + 1;
} else {
func_800CB76C(a0);
}
}
extern void func_80146C3C(void);
+18 -1
View File
@@ -190,7 +190,24 @@ tail:
}
INCLUDE_ASM("asm/md_MAIN_037/nonmatchings/md_MAIN_037", func_800CB2A8);
extern void func_800CB378(s32 a0);
void func_800CB2A8(s32 a0) {
s32 v1;
u16 v0;
v1 = *(s32 *)(a0 + 0x20);
v0 = *(u16 *)(v1 + 0x1A);
v0 = v0 + 0x80;
*(u16 *)(v1 + 0x1A) = v0;
*(u16 *)(v1 + 0x18) = v0;
if (func_80146E98((s32)a0) != 0) {
func_80146CA0((void *)a0);
} else {
func_800CB378(a0);
}
}
extern void func_800CB358(void);
+34 -2
View File
@@ -107,7 +107,22 @@ void func_800CCD04(void *a0) {
}
INCLUDE_ASM("asm/md_MAIN_043/nonmatchings/md_MAIN_043", func_800CCDC4);
extern s32 func_80146E98(s32 arg0);
extern void func_801599A4(void *arg0);
extern void func_80159B3C(void *arg0);
extern s32 func_80161208();
void func_800CCDC4(s32 a0)
{
*(s32 *)(a0 + 0x44) |= 2;
if (func_80146E98(a0) != 0) {
func_801599A4((void *)a0);
func_80159B3C((void *)a0);
} else {
func_80161208((void *)a0);
}
}
extern void func_8014B5C4(s32 *a0, s32 a1, s32 a2);
extern void func_8013C9C4(void *a0);
@@ -135,7 +150,24 @@ s32 func_800CCEA0(void *a0) {
}
INCLUDE_ASM("asm/md_MAIN_043/nonmatchings/md_MAIN_043", func_800CCEAC);
s32 func_800CCEAC(void *a0)
{
extern void func_801599A4(void *a0);
extern void func_80159B3C(void *a0);
extern s16 currentLocationId;
if (currentLocationId == 0x306F) {
if (*(s32 *)((s32)a0 + 0x234) != 0) {
(*(s32 *)((s32)a0 + 0x234))--;
return 0;
}
func_801599A4(a0);
func_80159B3C(a0);
return 1;
}
return 0;
}
+37 -4
View File
@@ -297,7 +297,11 @@ void func_800CD57C(void *arg0) {
}
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CD5EC);
void func_800CD5EC(void *a0) {
func_800CD758((s32)a0);
*(u16 *)((s32)a0 + 0x66) = (*(s32 *)((s32)a0 + 0x50) * 1365) & 0xFFF;
}
#include "common.h"
@@ -371,7 +375,14 @@ void func_800CD834(void *a0) {
}
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CD848);
extern s32 func_80012F74(s32, s32, s32, s32);
void func_800CD848(s32 param_1) {
*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x18) =
*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x1A) =
func_80012F74(*(s16 *)(*(s32 *)(param_1 + 0x20) + 0x1A), 0x1000, 4, 1);
}
extern void func_80015978(s32 a0, s32 *a1);
extern s32 func_80135260(s32 a0, s32 a1, s32 a2, s32 a3);
@@ -492,7 +503,20 @@ void func_800CDA80(int param_1)
}
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CDB4C);
extern s32 func_80146E98(s32 a0);
extern s32 func_80146C3C(void *a0);
void func_800CDB4C(int param_1)
{
extern unsigned char D_800CEBF4[];
unsigned char *base;
base = (unsigned char *)D_800CEBF4 + *(s32 *)(param_1 + 0x2C) * 0x40;
base[2] = base[2] - 8;
if (func_80146E98(param_1) != 0) {
func_80146C3C((void *)param_1);
}
}
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CDBA8);
@@ -560,7 +584,16 @@ L_c3c:
}
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CE134);
void func_800CE134(void) {
register s32 a0v __asm__("$4");
s32 param_1 = a0v;
*(s32 *)(param_1 + 0x30) = *(s32 *)(param_1 + 0x1C) * 8;
func_80169A4C(a0v, param_1 + 0x38);
if (--*(s32 *)(param_1 + 0x1C) == 0)
func_80146C3C((void *)param_1);
}
+15 -1
View File
@@ -224,7 +224,21 @@ void func_800CD4D0(void *arg0) {
}
INCLUDE_ASM("asm/md_MAIN_047/nonmatchings/md_MAIN_047", func_800CD58C);
void func_800CD58C(void *arg0) {
extern u8 D_800CD6E0[];
extern void func_80016714(void *a0, s32 a1);
extern void func_800CCBC0(void);
if (*(s32 *)((s32)arg0 + 0x2C) != 0) {
func_800CCDE8(arg0, 1, 0x37);
func_800CCBC0();
*(s32 *)((s32)arg0 + 0x2C) = 0;
} else {
func_80016714(D_800CD6E0, 0xC4);
func_800CCDE8(arg0, 0, 0);
}
}
void func_800CD5F8(void *arg0) {
extern void func_801465C0(void);
+61 -4
View File
@@ -9,7 +9,25 @@ void func_801E4C64(void *a0) {
}
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E4CA0);
void func_801E4CA0(s32 a0) {
extern s32 func_8012C354(s32 arg0, s32 arg1);
extern void func_8012A828(s32 arg0, void *arg1);
extern s32 func_80143994(s32 arg0, s32 arg1);
extern s32 D_80196BBC;
extern void D_801E5DB4;
extern void D_801E9F0C;
s32 *ptr;
ptr = &D_80196BBC;
*(s32 *)ptr = (s32)&D_801E9F0C;
if (func_8012C354(a0, (s32)ptr - 4) != 0) {
func_8012A828(a0, &D_801E5DB4);
*(s32 *)(a0 + 0xCC) = func_80143994(a0, 0x4000);
*(u16 *)(a0 + 0x2) += 1;
}
}
void func_801E4D14(s32 a0) {
extern void func_8012A828(s32 a0, void *a1);
@@ -203,9 +221,39 @@ void func_801E51C0(s32 a0) {
}
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E5240);
void func_801E5240(s32 a0) {
extern void func_8012A828(s32 a0, void *a1);
extern s32 func_801399F0(s32);
extern void func_80139914(s32);
extern void D_801E5DB4;
if (*(s32 *)(a0 + 0x94) >= 0x19) {
func_8012A828(a0, &D_801E5DB4);
}
if (func_801399F0(*(s32 *)(a0 + 0xB0)) != 0) {
func_80139914(*(s32 *)(a0 + 0xB0));
*(s32 *)(a0 + 0x1C) = 0x18;
*(u16 *)(a0 + 2) += 1;
}
}
void func_801E52BC(s32 a0) {
extern void func_8012A828(s32 a0, void *a1);
extern s32 D_801270C8;
extern void D_801E5DB4;
if (*(s32 *)(a0 + 0x94) >= 0x19) {
func_8012A828(a0, &D_801E5DB4);
}
*(s32 *)(a0 + 0x1C) -= 1;
if (*(s32 *)(a0 + 0x1C) == -1) {
D_801270C8 = 0x11;
*(s32 *)(a0 + 0x1C) = 8;
*(u16 *)((s32)a0 + 2) += 1;
}
}
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E52BC);
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E5338);
@@ -427,7 +475,16 @@ void func_801E5894(void *a0) {
}
INCLUDE_ASM("asm/md_SC02_009/nonmatchings/md_SC02_009", func_801E58C0);
void func_801E58C0(void *a0) {
extern void func_801439C0(u8 *a0);
extern void func_8012C218(void *a0);
if (--*(s32 *)((s32)a0 + 0x1C) == 0) {
func_801439C0(*(u8 **)((s32)a0 + 0xCC));
func_8012C218(a0);
}
}
void func_801E590C(void *a0) {
+8 -1
View File
@@ -220,7 +220,14 @@ void func_801E7FF0(void *a0) {
}
INCLUDE_ASM("asm/md_SC04_024/nonmatchings/md_SC04_024", func_801E802C);
extern void func_801E8054(s32 param_1, s16 *param_2);
void func_801E802C(s32 arg0) {
extern s16 D_801274E8;
func_801E8054(arg0, &D_801274E8);
}
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
+7 -1
View File
@@ -220,7 +220,13 @@ void func_801E7FF8(void *a0) {
}
INCLUDE_ASM("asm/md_SC04_030/nonmatchings/md_SC04_030", func_801E8034);
extern void func_801E805C(s32 a0, s16 *a1);
void func_801E8034(void *a0) {
extern s16 D_801274E8;
func_801E805C((s32)a0, &D_801274E8);
}
/* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */
+16 -1
View File
@@ -483,7 +483,22 @@ void func_801F0E6C(void) {
}
INCLUDE_ASM("asm/md_SC05_026/nonmatchings/md_SC05_026_jr_801F0748", func_801F0E9C);
extern s32 D_801F832C;
extern s32 D_801F84AC;
void func_801F0E9C(void) {
typedef struct { s32 next; u8 pad[0xC]; } Node_801F0E9C;
Node_801F0E9C *p;
s32 i;
p = (Node_801F0E9C *)&D_801F832C;
for (i = 0; i < D_801F84AC - 1; ) {
p->next = (s32)(p + 1);
i++;
p = p + 1;
}
}
extern s32 func_80029504(void);
extern void func_80029124(s32 a0, s32 a1);
+81 -5
View File
@@ -203,7 +203,22 @@ void func_801A026C(s32 arg0)
}
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A04D4);
extern s32 func_8016F1AC(void);
extern s32 func_80178B18(s32 a0, s32 a1);
extern s16 D_801A698C;
void func_801A04D4(s32 arg0) {
s32 s0 = arg0;
if (func_8016F1AC() == 0) {
func_80178B18((s32)s0, (s32)&D_801A698C);
*(s16 *)(s0 + 2) = 2;
*(s16 *)(s0 + 0x34) = 0;
*(s32 *)(s0 + 0x1C) = 0;
}
}
#include "common.h"
@@ -302,7 +317,22 @@ void func_801A06E8(s32 arg0) {
}
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A072C);
extern void func_8012A828(s32 a0, void *a1);
extern s32 func_8012C588(s32, s32);
extern s32 D_801F1FD8;
extern u16 D_801F43C0;
extern s32 D_801F436C[];
void func_801A072C(s32 arg0) {
*(s16 *)(arg0 + 0x2) = 8;
*(s32 *)(arg0 + 0x1C) = 0x80;
*(s32 *)(arg0 + 0xE4) = 0x50;
*(s32 *)(*(s32 *)(arg0 + 0x20) + 0x24) = (s32)D_801F436C;
func_8012A828(arg0, &D_801F1FD8);
D_801F43C0 = 0x11;
func_8012C588(0x3D0, arg0);
}
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A079C);
@@ -472,7 +502,25 @@ void func_801A0E28(s32 a0) {
}
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A10B0);
extern void func_801A28AC(s32 a0);
extern void func_8012A828(s32 a0, void *a1);
extern void func_8012B23C(s32 a0);
extern void func_8017F184(void);
extern s32 func_8012C658(s32 a0, s32 a1, s32 a2);
extern u8 D_801F0478[];
void func_801A10B0(void *a0) {
func_801A28AC((s32)a0);
*(s16 *)((s32)a0 + 0x2) = 0xE;
*(u16 *)((s32)a0 + 0x34) = 0;
*(s32 *)((s32)a0 + 0xE4) = 0x50;
func_8012A828((s32)a0, D_801F0478);
func_8012B23C((s32)a0);
*(s32 *)((s32)a0 + 0x14) = 0xFFE00000;
func_8017F184();
func_8012C658(0x34C, 4, (s32)a0);
}
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A1120);
@@ -600,7 +648,23 @@ void func_801A143C(s32 a0) {
}
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A16BC);
extern void func_801A28AC(s32 a0);
extern void func_8012A828(s32 a0, void *a1);
extern void func_8002D4C8(s32 a0, s32 a1);
extern u8 D_801F1198[];
void func_801A16BC(s32 arg0) {
s32 s0 = arg0;
func_801A28AC(s0);
*(s16 *)(s0 + 2) = 0x12;
*(s32 *)(s0 + 0xE4) = 0x50;
func_8012A828(s0, D_801F1198);
*(s16 *)(s0 + 0x34) = 0;
*(s32 *)(s0 + 0xE0) &= ~0x8;
func_8002D4C8(0xB79, 0);
}
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A1724);
@@ -747,7 +811,19 @@ s32 func_801A19C8(s32 arg0) {
}
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A1ACC);
extern void func_8012A828(s32 a0, void *a1);
extern s32 func_8012C658(s32 arg0, s32 arg1, s32 arg2);
extern u8 D_801A64C4[];
void func_801A1ACC(s32 arg0) {
*(s16 *)(arg0 + 0x02) = 0x14;
*(u16 *)(arg0 + 0x34) = 0;
*(s32 *)(arg0 + 0x1C) = 0;
*(s32 *)(arg0 + 0xE4) = 0x20;
func_8012A828(arg0, D_801A64C4);
*(s32 *)(arg0 + 0xD8) = func_8012C658(0x34C, 1, arg0);
}
#include "common.h"
+69 -5
View File
@@ -721,7 +721,24 @@ void func_801A2E90(s32 a0)
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2F34);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A30C8);
extern void func_801A46B8(s32 a0);
extern void func_8012AD44(s32 *a0, s16 a1);
void func_801A30C8(s32 a0)
{
s32 s0;
u16 v0;
s0 = a0;
v0 = *(u16 *)(s0 + 0x5C);
*(u8 *)(s0 + 0xC1) = 0;
*(u16 *)(s0 + 0x5E) = 0;
*(u16 *)(s0 + 0x10A) = 0;
*(u16 *)(s0 + 0x5C) = v0 & 0xDFFF;
func_801A46B8(s0);
func_8012AD44((s32 *)s0, 8);
}
extern void func_801A36F0(void *a0);
extern void func_8012AD44(s32 *a0, s16 a1);
@@ -832,7 +849,17 @@ void func_801A370C(s32 a0) {
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3744);
extern void func_80132288(s32 *a0, s32 *a1, s32 a2);
extern s32 *D_801AFB8C;
extern s32 D_801BF01C;
extern s32 D_801F8724;
void func_801A3744(s32 a0) {
*(s16 *)(a0 + 0xE6) = 4;
func_80132288(&D_801F8724, D_801AFB8C, D_801BF01C);
*(s16 *)(a0 + 0x100) = -0x40;
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3798);
@@ -937,9 +964,34 @@ void func_801A3F10(void) {
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3FB0);
extern void func_801439C0(u8 *a0);
void func_801A3FB0(void *arg0) {
register void *s0 __asm__("$16");
register u8 *a0 __asm__("$4");
s32 *v0p;
s0 = arg0;
v0p = *(s32 **)((char *)s0 + 0x20);
*(s32 *)((char *)v0p + 4) |= 0x80000000;
a0 = *(u8 **)((char *)s0 + 0xD0);
if (a0 != NULL) {
func_801439C0(a0);
*(u8 **)((char *)s0 + 0xD0) = NULL;
}
}
extern s32 func_80143970(s32 a0);
void func_801A4008(s32 a0) {
*(s32 *)(*(s32 *)(a0 + 0x20) + 4) &= 0x7FFFFFFF;
if (*(s32 *)(a0 + 0xD0) == 0) {
*(s32 *)(a0 + 0xD0) = func_80143970(a0);
}
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4008);
extern s32 func_8004787C(s32 a0);
@@ -2631,7 +2683,19 @@ void func_801A6E78(void *a0) {
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6EF4);
extern s32 func_8012B8A4(s16 *a0);
extern void func_801A5698(u8 *s2, s32 a1);
extern void func_801A54AC(s32 a0);
void func_801A6EF4(void *arg0) {
s32 s0;
s0 = (s32)arg0;
*(u16 *)(*(s32 *)((u8 *)s0 + 0x20) + 0x12) = func_8012B8A4((s16 *)s0);
func_801A5698((u8 *)s0, *(s16 *)((u8 *)s0 + 0xFE));
func_801A54AC(s0);
}
extern void func_8012AD80(s32 a0);
extern void func_8012B178(s32 a0, s32 a1);
+8 -1
View File
@@ -3130,7 +3130,14 @@ void func_8017EFEC(void *a0) {
}
INCLUDE_ASM("asm/ov_SC01_004/nonmatchings/ov_SC01_004_jr_8017E5B8", func_8017F028);
void func_8017F028(s32 param_1) {
if ((u32)func_80029504() < 5) {
func_80029514(5);
}
*(s32 *)(param_1 + 0x1C) = 4;
*(u16 *)(param_1 + 2) = *(u16 *)(param_1 + 2) + 1;
}
void func_8017F078(void *a0) {
if (*(s32 *)((s32)a0 + 0x1C) != 0) {
+18 -1
View File
@@ -3763,7 +3763,24 @@ void func_801827FC(void *a0) {
INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009_jr_8018057C", func_80182850);
INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009_jr_8018057C", func_801828D0);
extern void func_8012A828(s32 a0, void *a1);
extern void func_8012C218(void *a0);
extern u8 D_801ED404[];
void func_801828D0(void *arg0) {
s32 temp_v0;
if (*(s16 *)((u8 *)arg0 + 0x98) != 0) {
temp_v0 = *(s32 *)((u8 *)arg0 + 0x1C) - 1;
*(s32 *)((u8 *)arg0 + 0x1C) = temp_v0;
if (temp_v0 == -1) {
func_8012A828((s32)arg0, &D_801ED404);
}
} else {
func_8012C218(arg0);
}
}
+30 -2
View File
@@ -3356,7 +3356,23 @@ void func_8017D184(int param_1)
}
INCLUDE_ASM("asm/ov_SC01_074/nonmatchings/ov_SC01_074_jr_8017BE9C", func_8017D1D8);
extern void func_8014706C(void *a0);
extern void func_80154274(s32 *a0, s32 a1);
extern void func_80146DE8(s32 *a0, s32 a1, s32 a2, s32 a3);
extern void func_80147324(s32 a0);
extern s32 func_80171990(u8 *a0);
extern M2C_UNK D_80182168;
void func_8017D1D8(void *a0) {
func_8014706C(a0);
func_80154274((s32 *)a0, (s32)&D_80182168);
func_80146DE8((s32 *)a0, 0, 0x20000, 0);
*(s32 *)((s32)a0 + 0x200) = 0x40;
*(s16 *)((s32)a0 + 0x20C) = 1;
func_80147324(0xBCA);
func_80171990((u8 *)a0);
}
INCLUDE_ASM("asm/ov_SC01_074/nonmatchings/ov_SC01_074_jr_8017BE9C", func_8017D244);
@@ -3437,7 +3453,19 @@ void func_8017D460(void *a0) {
}
INCLUDE_ASM("asm/ov_SC01_074/nonmatchings/ov_SC01_074_jr_8017BE9C", func_8017D4D0);
void func_8017D4D0(void *param_1) {
s16 v;
v = *(s16 *)((s32)param_1 + 0x20E);
v = v - 1;
*(s16 *)((s32)param_1 + 0x20E) = v;
if (v == -1) {
func_8002D4C8(0xBE8, 0);
*(s16 *)((s32)param_1 + 0x20E) = 0;
func_80171990((u8 *)param_1);
}
}
extern s32 func_80171990(u8 *a0);
extern u8 D_80182200[];
+48 -3
View File
@@ -5646,7 +5646,25 @@ void func_80180F6C(void *a0) {
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080_jr_8017AE2C", func_80180FA8);
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080_jr_8017AE2C", func_80181040);
extern s32 D_80127190;
extern void func_801292C8(u8 *a0);
void func_80181040(void *a0) {
u16 v0;
s32 v1;
*(u16 *)((s8 *)a0 + 0xA) = D_80127190 - 0x150;
v1 = *(s32 *)((s8 *)a0 + 0x20);
v0 = *(u16 *)(v1 + 0x18) + 0x80;
*(u16 *)(v1 + 0x18) = v0;
*(u16 *)(v1 + 0x1A) = v0;
v0 = *(u16 *)((s8 *)a0 + 0x2E) - 1;
*(u16 *)((s8 *)a0 + 0x2E) = v0;
if ((s16)v0 == -1) {
func_801292C8((u8 *)a0);
}
}
extern void (*D_8018A248[])(void);
@@ -5859,7 +5877,20 @@ INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080_jr_8017AE2C", func_80181CA
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080_jr_8017AE2C", func_80181D98);
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080_jr_8017AE2C", func_80181F5C);
void func_80181F5C(void *arg0)
{
extern void func_80181D98(void *a0);
extern void func_8017F268(void *a0);
void *s0;
s0 = arg0;
func_80181D98(arg0);
if (*(s16 *)((s32)s0 + 0xFC) == 1) {
func_8016ED8C((s32)func_8017F268, 0x1000000, *(s16 *)((s32)s0 + 0xFE));
*(s16 *)((s32)s0 + 0xFC) = 0;
}
}
extern u16 D_800B99DA;
extern s32 D_801270D0;
@@ -6114,7 +6145,21 @@ void func_80182AC4(s32 *param_1) {
}
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080_jr_8017AE2C", func_80182B30);
extern void func_80182B90(void *a0, s32 a1, s16 a2);
void func_80182B30(int param_1)
{
unsigned short t;
func_80182B90((void *)param_1, *(short *)(param_1 + 0xFC), *(short *)(param_1 + 0xFE));
*(unsigned short *)(param_1 + 0xFC) = *(unsigned short *)(param_1 + 0xFC) + 1;
t = *(unsigned short *)(param_1 + 0xFE) + 1;
*(unsigned short *)(param_1 + 0xFE) = t;
if ((short)t >= 0x10) {
*(unsigned short *)(param_1 + 0xFE) = 0;
}
}
#include "common.h"
+11 -1
View File
@@ -3545,7 +3545,17 @@ void func_8017E290(void *a0) {
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017CA80", func_8017E2CC);
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017CA80", func_8017E334);
extern s32 func_8013767C(s32 a0);
extern u16 D_80126980;
void func_8017E334(void *arg0) {
if (D_80126980 & 0x8000) {
*(s16 *)((s8 *)arg0 + 0x20C) = 0;
*(s32 *)((s8 *)arg0 + 0x198) = func_8013767C(*(s32 *)((s8 *)arg0 + 0x198));
(*(u8 *)((s8 *)arg0 + 0x214))++;
}
}
extern s32 func_8016F410(s32 a0);
extern void func_80154274(s32 *a0, s32 a1);
+100 -5
View File
@@ -3544,7 +3544,29 @@ void func_801809C4(Obj_801809C4 *obj) {
}
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017F690", func_80180CBC);
void func_80180CBC(s32 param_1) {
extern void func_8012A828(s32, void *);
extern s32 D_80186B78;
extern s16 D_8018A9D0;
extern s16 D_8018A9D2;
extern s16 D_801C774C;
s32 ptr;
s32 tmp;
func_8012A828(param_1, &D_80186B78);
*(s16 *)(param_1 + 2) = 2;
*(s32 *)(param_1 + 0xDC) = D_8018A9D0;
ptr = *(s32 *)(param_1 + 0x20);
*(s32 *)(param_1 + 0xE0) = D_8018A9D2;
*(s32 *)(param_1 + 0xE4) = 0;
tmp = *(volatile s32 *)(param_1 + 0xE4);
*(s16 *)(param_1 + 0xFC) = 0x18;
*(s16 *)(ptr + 0x10) = (s16)tmp;
*(s32 *)(param_1 + 0x1C) = 0x12C;
D_801C774C = 1;
}
#include "common.h"
@@ -3752,7 +3774,18 @@ void func_801818E0(void *arg0) {
}
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017F690", func_80181920);
void func_80181920(void* a0)
{
extern void func_8012A828(s32 a0, void *a1);
extern s32 D_801A1A10;
*(s16 *)(a0 + 2) = 3;
*(s16 *)(a0 + 0x34) = 0;
*(s32 *)(a0 + 0x1C) = 0x3C;
func_8012A828(a0, &D_801A1A10);
*(s16 *)(a0 + 0xDC) = *(u16 *)(*(s32 *)(a0 + 0x20) + 0x12);
}
void func_80181978(void *arg0) {
extern void func_80142414(void *a0, s32 a1);
@@ -4019,7 +4052,29 @@ void func_80182F90(s32 a0)
}
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017F690", func_80182FEC);
extern void func_8012A828(s32 a0, void *a1);
extern void func_8012B23C(s32 a0);
extern u8 D_801A21E0[];
extern u8 D_801A2848[];
void func_80182FEC(s32 param_1)
{
s32 v1;
*(s16 *)(param_1 + 2) = 0xE;
*(u16 *)(param_1 + 0x34) = 0;
func_8012A828(param_1, D_801A21E0);
v1 = *(s32 *)(param_1 + 0x20);
*(u16 *)(param_1 + 0x5C) = 0xAA00;
*(u16 *)(param_1 + 0x5E) = 0;
*(u16 *)(v1 + 0x14) = 0;
*(u16 *)(v1 + 0x10) = 0;
func_8012B23C(param_1);
func_8012A828(param_1, D_801A2848);
*(s32 *)(param_1 + 0x1C) = 0x1E;
*(u16 *)(param_1 + 0x34) = 1;
}
#include "common.h"
@@ -4591,7 +4646,25 @@ INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017F690", func_80183D3
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017F690", func_80183DA4);
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017F690", func_80184090);
extern void func_8012B21C(void *a0);
extern void func_8002D4C8(s32 a0, s32 a1);
extern u16 D_80126B62;
void func_80184090(void *a0) {
u16 t;
t = *(u16 *)((s32)a0 + 0x5C);
*(u16 *)((s32)a0 + 0x2) = 2;
*(u16 *)((s32)a0 + 0x34) = 0;
*(u16 *)((s32)a0 + 0x5C) = t & 0x7FFE;
func_8012B21C(a0);
*(s32 *)((s32)a0 + 0x1C) = 0;
*(u16 *)((s32)a0 + 0x24) = *(u16 *)((s32)a0 + 0x6);
*(u16 *)((s32)a0 + 0x28) = *(u16 *)((s32)a0 + 0xE);
*(u16 *)((s32)a0 + 0x26) = D_80126B62;
func_8002D4C8(0x4B4, 0);
}
extern void (*D_8018AC10[])(void);
@@ -5204,7 +5277,29 @@ void func_80184FC4(int param_1)
}
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_8017F690", func_8018500C);
extern s32 func_8012BEE8(s32 a0);
extern void func_8012A828(s32 a0, void *a1);
extern void func_80182FEC(int param_1);
extern void D_801A1AB8;
void func_8018500C(int param_1)
{
int iVar1;
iVar1 = func_8012BEE8((s32)param_1);
if (iVar1 != 0) {
if (*(s16 *)(param_1 + 0x70) == 2) {
func_80182FEC(param_1);
} else {
*(u16 *)(param_1 + 0x5e) = 0;
*(u16 *)(param_1 + 0x5c) = 0xAA00;
func_8012A828((s32)param_1, &D_801A1AB8);
*(u16 *)(param_1 + 2) = 3;
*(u16 *)(param_1 + 0xfe) = 0;
}
}
}
extern s32 func_8012BEE8(s32 a0);
extern void func_8012A828(s32 a0, void *a1);
+28 -2
View File
@@ -3743,7 +3743,26 @@ void func_8017EA9C(void *param_1)
}
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017EAD4);
void func_8017EAD4(void *param_1)
{
extern void func_8017EFB4();
extern void func_8017EDF8();
extern s32 func_8014C168(s32 *a0, s32 a1);
extern Blk8 D_801274E8;
extern s16 D_801274EC;
extern s32 D_80126B58;
s32 ptr;
func_8017EFB4(param_1);
ptr = func_8014C168(&D_80126B58, 0x3D);
*(s16 *)&D_801274E8 = *(u16 *)(ptr + 6);
D_801274EC = *(u16 *)(ptr + 0xE);
func_8017EDF8(param_1, &D_801274E8);
}
void func_8017EB30(void) {
}
@@ -4060,7 +4079,14 @@ void func_8017F358(void *a0) {
}
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_8017CF90", func_8017F394);
void func_8017F394(void *a0) {
extern void func_80171B44(s32 *a0);
(*(u8 *)((s32)a0 + 0x214))++;
*(u16 *)(*(u32 *)((s32)a0 + 0x20) + 0x12) = 0;
((void (*)(void))func_80171B44)();
}
// @class: plumbing
+135 -10
View File
@@ -3284,7 +3284,21 @@ void func_80182810(void *arg0) {
}
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_801828D8);
#include "common.h"
extern void func_8012AD44(s32 *a0, s16 a1);
extern void func_80186F14(void *a0);
void func_801828D8(void *arg0) {
s32 s0 = (s32)arg0;
u32 v;
v = *(u32 *)(s0 + 0xE8);
*(u32 *)(s0 + 0xE8) = v | 1;
func_8012AD44((s32 *)s0, 2);
func_80186F14((void *)s0);
}
#include "common.h"
@@ -3362,7 +3376,18 @@ void func_80182998(void) {
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_80182A8C);
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_80182D80);
extern void func_80186178(s32 *a0);
extern void func_8012B23C(s32 a0);
extern void func_8012AD44(s32 *a0, s16 a1);
extern void func_80186304();
void func_80182D80(s32 arg0) {
func_80186178((s32 *)arg0);
func_8012B23C(arg0);
func_8012AD44((s32 *)arg0, 0xC);
func_80186304((u8 *)arg0, 0, 2);
}
extern void func_8018622C();
@@ -4109,7 +4134,21 @@ void func_8018415C(void *a0) {
}
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_80184184);
void func_80184184(s32 a0) {
s32 a1;
a1 = *(s32 *)(a0 + 0x20);
*(u8 *)(a0 + 0xC1) = 0;
*(u16 *)(a0 + 0x5E) = 0;
*(s32 *)(a0 + 0x1C) = 0x18;
*(u32 *)(a1 + 4) |= 0x80000000;
*(u16 *)(a0 + 2) = 4;
if (*(s32 *)(a0 + 0xCC) != 0) {
*(u16 *)*(s32 *)(a0 + 0xCC) = 0;
}
func_8002D4C8(0x509, 0);
}
#include "common.h"
@@ -4232,7 +4271,22 @@ void func_80184404(s32 a0) {
}
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_80184480);
extern void func_8012AD44(s32 *a0, s16 a1);
extern void func_8012B200(u8 *a0);
extern s32 D_801963FC;
void func_80184480(s32 arg0) {
s32 s0 = arg0;
*(s32 *)(s0 + 0x58) = (s32)&D_801963FC;
*(u16 *)(s0 + 0x5C) = 0x8C00;
func_8012AD44((s32 *)s0, 1);
func_8012B200((u8 *)s0);
*(s32 *)(s0 + 0xC) = 0;
*(s32 *)(s0 + 8) = 0;
*(s32 *)(s0 + 4) = 0;
}
void func_801844D4(s32 arg0) {
s32 self = arg0;
@@ -4536,7 +4590,17 @@ void func_80184828(void *a0)
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_801849E4);
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_80184A34);
extern void func_8012AD44(s32 *a0, s16 a1);
void func_80184A34(void *arg0) {
*(u16 *)((s32)arg0 + 0xDC) = *(u16 *)((s32)arg0 + 0x6);
*(u16 *)((s32)arg0 + 0xDE) = *(u16 *)((s32)arg0 + 0xA);
*(u16 *)((s32)arg0 + 0xE0) = *(u16 *)((s32)arg0 + 0xE);
func_8012AD44((s32 *)arg0, 5);
*(u16 *)((s32)arg0 + 0x34) = 4;
*(s32 *)((s32)arg0 + 0x1C) = 5;
}
#include "common.h"
@@ -6004,7 +6068,18 @@ void func_80186F60(s32 a0) {
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_80186F9C);
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_80187070);
extern s32 func_8012C658(s32 arg0, s32 arg1, s32 arg2);
void func_80187070(s32 arg0) {
s32 self = arg0;
s32 v1;
v1 = func_8012C658(0x56, 5, self);
if (v1 != 0) {
*(s32 *)(v1 + 0xCC) = *(s32 *)(self + 0xCC);
}
}
#include "common.h"
@@ -6406,7 +6481,22 @@ void func_801877FC(s32 s0) {
}
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_801878C0);
void func_801878C0(void *arg0) {
s32 s0 = (s32)arg0;
func_80182810((void *)s0);
if (*(u32 *)(s0 + 0xE8) & 0x2000) {
*(u32 *)(s0 + 0x1C) = 0x18;
} else {
*(u32 *)(s0 + 0x1C) = 0x30;
}
func_801828D8((void *)s0);
*(u32 *)(s0 + 0xE8) = *(u32 *)(s0 + 0xE8) & 0xFFFFFF7F;
}
extern void func_80182810();
extern void func_801828D8();
void func_8018791C(void *a0) {
s32 s0 = (s32)a0;
@@ -6446,7 +6536,17 @@ extern void func_80181900(void*);
}
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_80187A38);
extern void func_80186F58();
extern void func_80186304();
extern void func_8012AD44(s32 *a0, s16 a1);
void func_80187A38(void *arg0) {
*(u32 *)((s32)arg0 + 0xE8) |= 1;
func_80186F58(arg0);
func_80186304((u8 *)arg0, 0xE, 2);
func_8012AD44((s32 *)arg0, 4);
}
#include "common.h"
@@ -6733,7 +6833,19 @@ void func_8018810C(void *a0) {
}
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_80188150);
extern s32 func_8012BEE8(s32 a0);
extern u16 D_801E4398;
void func_80188150(void *a0) {
s32 s0 = (s32)a0;
func_8012BEE8(s0);
if (*(s32 *)(s0 + 0x1C) == 1) {
*(u16 *)(s0 + 0x76) = 0x1E;
D_801E4398 = 0x1E;
}
}
extern s32 func_801830F4(s32, s32);
extern void func_8002D4C8(s32 a0, s32 a1);
@@ -10351,7 +10463,20 @@ void func_8018D7F0(void *a0)
}
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80181D30", func_8018D8A8);
extern s32 D_801270C8;
extern void func_8002D4C8(s32 a0, s32 a1);
extern void func_8018EA04(s32 a0);
void func_8018D8A8(void *a0)
{
if (D_801270C8 == 0x15) {
func_8018EA04(2);
func_8002D4C8(5, 0);
*(u32 *)((s32)a0 + 0x1C) = 0xE;
*(u16 *)((s32)a0 + 2) += 1;
}
}
void func_8018D904(void *a0) {
*(s16 *)((s32)a0 + 0x2) += 1;
+37 -3
View File
@@ -7940,7 +7940,18 @@ extern void func_8018452C(void);
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80183630);
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_80183954);
extern void func_8012AD80(s32 a0);
s32 func_80183954(s32 a0) {
u8 *s0;
s16 val;
func_8012AD80(a0);
s0 = (u8 *)a0;
val = *(s16 *)(s0 + 0xA);
return ((val - 0xB0) < -0xA01) ? 0 : 2;
}
extern s32 rand(void);
extern u8 D_801202A0[];
@@ -8420,7 +8431,18 @@ void func_80184964(s32 a0) {
}
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_801849D4);
extern s32 func_80029178(s32 arg);
extern void func_80029124(s32 a0, s32 a1);
extern void func_8012A828(s32 a0, void *a1);
extern s32 D_801F45D4;
void func_801849D4(s32 param_1) {
if ((func_80029178(0x125) & 0xFF) != 0) {
func_8012A828(param_1, &D_801F45D4);
func_80029124(0x125, 0);
}
}
s32 func_80184A28(s32 *a0) {
return *(s16 *)((char *)a0 + 0xFE) == 0;
@@ -10066,7 +10088,19 @@ void func_8018707C(s32 a0)
}
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_8017AE2C", func_801870D0);
extern void func_8012AD80(s32 a0);
extern void func_8012C218(void *a0);
void func_801870D0(s32 param_1) {
s32 s0;
s0 = param_1;
func_8012AD80(s0);
if (*(s16 *)(s0 + 0x98) == 0) {
func_8012C218((void *)s0);
}
}
#include "common.h"
+43 -2
View File
@@ -6369,7 +6369,29 @@ void func_80184474(s32 param_1)
void func_80184510(void) {
}
INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017_jr_8017DF34", func_80184518);
#include "common.h"
extern void func_8012B23C(s32 a0);
extern void func_8012B14C(s32 a0, s32 a1);
extern void func_8012A828(s32 a0, void *a1);
extern u8 D_801CC344;
extern u8 D_801D0BB4;
void func_80184518(void *arg0)
{
s32 s0;
s32 v0;
s0 = (s32)arg0;
func_8012B23C(s0);
func_8012B14C(s0, (s32)&D_801CC344);
func_8012A828(s0, (void *)&D_801D0BB4);
v0 = *(s32 *)(s0 + 0x20);
*(s16 *)(v0 + 0x10) = -0x400;
*(s16 *)(s0 + 2) = 3;
*(s32 *)(s0 + 0x1C) = 0x28;
}
extern void func_8012AD80(s32 a0);
extern void func_8012B2CC(s32 a0);
@@ -8414,7 +8436,26 @@ void func_801878A8(s32 param_1)
}
INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017_jr_8017DF34", func_80187940);
#include "common.h"
void func_80187940(s32 arg0) {
extern void func_8012A828(s32 a0, void *a1);
extern s32 D_801E0F44;
s32 p1;
s32 p2;
func_8012A828(arg0, (void *)&D_801E0F44);
*(s16 *)(arg0 + 2) = 0x10;
p1 = *(s32 *)(arg0 + 0x20);
*(s32 *)(p1 + 4) |= 0x80000000;
p2 = *(s32 *)(arg0 + 0x20);
*(s16 *)(arg0 + 0x34) = 0;
*(s16 *)(p2 + 0x1C) = 0x1000;
*(s16 *)(p2 + 0x1A) = 0x1000;
*(s16 *)(p2 + 0x18) = 0x1000;
}
#include "common.h"
+22 -2
View File
@@ -3781,9 +3781,29 @@ extern void func_80029514(s32 arg);
}
INCLUDE_ASM("asm/ov_SC02_021/nonmatchings/ov_SC02_021_jr_8017C294", func_8017EEF8);
extern void func_80029124(s32 a0, s32 a1);
extern void func_80029514(s32 a0);
void func_8017EEF8(void) {
func_80029514(0x118);
func_80029124(0xF9, 1);
func_80029124(0xFA, 0);
func_80029124(0x109, 1);
}
extern void func_80029514(s32 a0);
extern void func_80029124(s32 a0, s32 a1);
extern s32 func_801788B8(s32 a0, s32 a1);
extern s32 func_8017F1B4(s32 a0);
void func_8017EF3C(s32 arg0) {
func_80029514(0x118);
func_80029124(0xF9, 0);
func_80029124(0xFA, 1);
func_801788B8(arg0, (s32)func_8017F1B4);
}
INCLUDE_ASM("asm/ov_SC02_021/nonmatchings/ov_SC02_021_jr_8017C294", func_8017EF3C);
extern void func_800D0F4C(s32 arg);
void func_8017EF90(void) {
+8 -1
View File
@@ -5292,7 +5292,14 @@ void func_80181AD0(s32 a0) {
}
INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028_jr_8017D898", func_80181B48);
void func_80181B48(int param_1)
{
void **fp = *(void ***)(*(int *)(param_1 + 0x64) + 0xDC);
if (fp != 0 && *fp != 0)
(*(void (*)(void))*fp)();
}
INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028_jr_8017D898", func_80181B90);
+53 -2
View File
@@ -3772,7 +3772,27 @@ void func_801865A4(s32 a0)
}
INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028_jr_80184BD8", func_80186668);
void func_80186668(s32 a0)
{
s32 sp18;
s32 ret;
sp18 = *(s32 *)(a0 + 0x20);
ret = func_80047948((*(s32 *)(a0 + 0x1C) << 9) >> 4);
*(s16 *)(sp18 + 0x18) = *(s16 *)(sp18 + 0x1A) = *(s16 *)(sp18 + 0x1C) = ret * 2;
if (*(s16 *)(a0 + 0x100) <= *(s16 *)(sp18 + 0x18)) {
*(s16 *)(sp18 + 0x18) = *(s16 *)(sp18 + 0x1A) = *(s16 *)(sp18 + 0x1C) = *(s16 *)(a0 + 0x100);
*(u16 *)(a0 + 2) = 1;
*(u16 *)(a0 + 0x5C) = *(u16 *)(*(s32 *)(a0 + 0x78) + 2);
*(u16 *)(a0 + 0x76) = *(u16 *)*(s32 *)(a0 + 0x78);
*(s32 *)(a0 + 0xE0) &= ~1;
if (!(*(u16 *)(a0 + 0x70) & 1)) {
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x2C) &= ~0x10;
}
}
--*(s32 *)(a0 + 0x1C);
}
typedef struct { u8 b[8]; } Blk8_80186740;
typedef struct {
@@ -4478,7 +4498,38 @@ void func_801875F0(s32 a0) {
}
INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028_jr_80184BD8", func_801876C4);
extern s32 D_801A9A78[];
extern s32 D_801A9A7C[];
extern s32 D_801A9A80[];
extern s32 D_801A9A84[];
extern s32 D_801A9A88[];
extern s32 func_8012C51C(void *a0, s32 a1);
void func_801876C4(void *a0, s32 a1) {
s32 sp10[5];
s32 obj;
register s32 w __asm__("$7");
s32 x, y, z;
register s32 t __asm__("$3");
obj = (s32)a0;
x = D_801A9A78[a1 * 5];
y = D_801A9A7C[a1 * 5];
z = D_801A9A80[a1 * 5];
w = D_801A9A84[a1 * 5];
sp10[0] = x;
sp10[1] = y;
sp10[2] = z;
sp10[3] = w;
t = D_801A9A88[a1 * 5];
sp10[4] = t;
__asm__ __volatile__("" ::: "memory");
((u16 *)sp10)[0] = ((u16 *)sp10)[0] + *(u16 *)(obj + 6);
((u16 *)sp10)[1] = ((u16 *)sp10)[1] + *(u16 *)(obj + 0xA);
((u16 *)sp10)[2] = ((u16 *)sp10)[2] + *(u16 *)(obj + 0xE);
func_8012C51C(sp10, obj);
}
typedef struct {
s32 a; /* 0x00 -> D_801D0120 */
+67 -10
View File
@@ -3419,7 +3419,13 @@ DEFINE_func_80172760() /* dedup: shared engine-core @0x80172760 (src/shared) */
DEFINE_func_80172780() /* dedup: shared engine-core @0x80172780 (src/shared) */
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_80171B4C", func_801727D0);
extern int (*D_8018718C[])(void);
s32 func_801727D0(void *a0)
{
D_8018718C[*(u8 *)((s32)a0 + 0x214)]();
}
DEFINE_func_8017280C() /* dedup: shared engine-core @0x8017280c (src/shared) */
@@ -3433,7 +3439,13 @@ void func_8017288C(void) {
DEFINE_func_80172894() /* dedup: shared engine-core @0x80172894 (src/shared) */
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_80171B4C", func_801728E4);
extern void (*D_80187198[])(void);
s32 func_801728E4(void *a0)
{
D_80187198[*(u8 *)((s32)a0 + 0x214)]();
}
DEFINE_func_80172920() /* dedup: shared engine-core @0x80172920 (src/shared) */
@@ -3447,7 +3459,13 @@ void func_801729A8(void) {
DEFINE_func_801729B0() /* dedup: shared engine-core @0x801729b0 (src/shared) */
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_80171B4C", func_801729F0);
extern void (*D_801871A4[])(void);
s32 func_801729F0(void *a0)
{
D_801871A4[*(u8 *)((s32)a0 + 0x214)]();
}
DEFINE_func_80172A2C() /* dedup: shared engine-core @0x80172a2c (src/shared) */
@@ -3464,7 +3482,13 @@ void func_80172B0C(void) {
DEFINE_func_80172B14() /* dedup: shared engine-core @0x80172b14 (src/shared) */
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_80171B4C", func_80172B44);
s32 func_80172B44(void *a0)
{
extern void (*D_801871B4[])(void);
D_801871B4[*(u8 *)((s32)a0 + 0x214)]();
}
DEFINE_func_80172B80() /* dedup: shared engine-core @0x80172b80 (src/shared) */
@@ -3499,7 +3523,12 @@ void func_80172D60(void) {
DEFINE_func_80172D68() /* dedup: shared engine-core @0x80172d68 (src/shared) */
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_80171B4C", func_80172DAC);
s32 func_80172DAC(void *a0)
{
extern void (*D_801871CC[])(void);
D_801871CC[*(u8 *)((s32)a0 + 0x214)]();
}
DEFINE_func_80172DE8() /* dedup: shared engine-core @0x80172de8 (src/shared) */
@@ -3534,7 +3563,12 @@ DEFINE_func_80172FEC() /* dedup: shared engine-core @0x80172fec (src/shared) */
DEFINE_func_8017303C() /* dedup: shared engine-core @0x8017303c (src/shared) */
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_80171B4C", func_80173078);
s32 func_80173078(void *a0)
{
extern void (*D_801871D8[])(void);
D_801871D8[*(u8 *)((s32)a0 + 0x214)]();
}
DEFINE_func_801730B4() /* dedup: shared engine-core @0x801730b4 (src/shared) */
@@ -3548,7 +3582,13 @@ void func_8017316C(void) {
DEFINE_func_80173174() /* dedup: shared engine-core @0x80173174 (src/shared) */
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_80171B4C", func_8017319C);
extern void (*D_801871E4[])(void);
s32 func_8017319C(void *a0)
{
D_801871E4[*(u8 *)((s32)a0 + 0x214)]();
}
DEFINE_func_801731D8() /* dedup: shared engine-core @0x801731d8 (src/shared) */
@@ -3665,7 +3705,12 @@ void func_801736A8(void) {
DEFINE_func_801736B0() /* dedup: shared engine-core @0x801736b0 (src/shared) */
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_80171B4C", func_801736FC);
s32 func_801736FC(void *a0) {
extern void (*D_80187204[])(void);
D_80187204[*(u8 *)((s32)a0 + 0x214)]();
}
DEFINE_func_80173738() /* dedup: shared engine-core @0x80173738 (src/shared) */
@@ -3693,7 +3738,13 @@ void func_801738D4(void) {
DEFINE_func_801738DC() /* dedup: shared engine-core @0x801738dc (src/shared) */
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_80171B4C", func_8017390C);
s32 func_8017390C(void *a0)
{
extern void (*D_8018721C[])(void);
D_8018721C[*(u8 *)((s32)a0 + 0x214)]();
}
DEFINE_func_80173948() /* dedup: shared engine-core @0x80173948 (src/shared) */
@@ -3759,7 +3810,13 @@ void func_80174274(void) {
DEFINE_func_8017427C() /* dedup: shared engine-core @0x8017427c (src/shared) */
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_80171B4C", func_801742A4);
extern void (*D_8018724C[])(void);
s32 func_801742A4(void *a0)
{
D_8018724C[*(u8 *)((s32)a0 + 0x214)]();
}
DEFINE_func_801742E0() /* dedup: shared engine-core @0x801742e0 (src/shared) */
+7 -1
View File
@@ -5981,7 +5981,13 @@ void func_8017EB88(void *a0) {
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_8017AE2C", func_8017EBC4);
INCLUDE_ASM("asm/ov_SC02_037/nonmatchings/ov_SC02_037_jr_8017AE2C", func_8017ED68);
extern s32 func_8017EEC4(s32 arg0, void *arg1);
extern s32 D_80187850;
void func_8017ED68(s32 arg0) {
func_8017EEC4(arg0, &D_80187850);
}
extern s16 D_80126940;
+53 -1
View File
@@ -7792,7 +7792,59 @@ s32 a0;
}
INCLUDE_ASM("asm/ov_SC02_041/nonmatchings/ov_SC02_041_jr_8017BEBC", func_80183014);
extern s32 func_8012BC60(void *a0, void *a1);
extern s32 func_8012B6D4(s16 *a0, s16 *a1);
extern void func_8012B0B4(unsigned int *p, int a1, int a2);
extern s32 func_8012CEB0(void *a0, void *a1, s32 a2);
extern void func_8012ADE4(u8 *a0);
void func_80183014(s32 a0) {
extern u8 D_801202A0[];
u8 *p;
s16 *self4;
unsigned int *sc;
s32 i;
s32 ang;
s16 v10[4]; /* sp+0x10 */
s16 v18[4]; /* sp+0x18 */
s32 sp20[2]; /* sp+0x20 — func_8012B0B4 output */
i = 0;
p = D_801202A0;
self4 = (s16 *)(a0 + 4);
sc = (unsigned int *)sp20;
do {
switch (*(u16 *)p) {
case 0x1DC:
if ((u8 *)a0 != p) {
if (func_8012BC60((void *)self4, (void *)(p + 4)) < 0x900) {
ang = func_8012B6D4(self4, (s16 *)(p + 4));
func_8012B0B4(sc, ang, 0x31);
v18[0] = *(u16 *)(p + 6);
v18[1] = *(u16 *)(p + 0xA);
v18[2] = *(u16 *)(p + 0xE);
v18[0] += sp20[0];
v18[2] += sp20[0] >> 16;
v10[0] = *(u16 *)(a0 + 0x3A);
v10[1] = *(u16 *)(a0 + 0x3E);
v10[2] = *(u16 *)(a0 + 0x42);
if ((func_8012CEB0(v10, v18, 0) & 0x2000) != 0) {
*(u16 *)(a0 + 6) = v18[0];
*(u16 *)(a0 + 0xA) = v18[1];
*(u16 *)(a0 + 0xE) = v18[2];
return;
}
func_8012ADE4((u8 *)a0);
return;
}
}
break;
}
i++;
p += 0x10C;
} while (i < 0x60);
}
extern s32 func_80132EF4(s32 a0, s32 a1);
typedef struct { short a, b, c; } SV3_80181D44_8018317C; /* == the TU's own `SV3` (engine_types.h:612); renamed only because
+14 -1
View File
@@ -3056,5 +3056,18 @@ void func_80184DDC(void *a0)
}
INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001_jr_80184DDC", func_80184F18);
void func_80184F18(s32 *arg0)
{
extern void func_8012E88C(s32 a0);
extern void func_8012A828(s32 a0, s32 a1);
extern void func_80187750(s32 a0);
extern short D_801C36E8;
*(s16 *)((s32)arg0 + 2) = 9;
*(s16 *)((s32)arg0 + 0x34) = 0;
func_8012E88C((s32)arg0);
func_8012A828((s32)arg0, (s32)&D_801C36E8);
func_80187750((s32)arg0);
}
+16 -1
View File
@@ -5088,6 +5088,21 @@ void func_80181B14(void) {
void func_80181B1C(void) {
}
INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002_jr_8017D604", func_80181B24);
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();
}
}
INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002_jr_8017D604", func_80181B88);
+59 -4
View File
@@ -6517,7 +6517,13 @@ void func_8017F510(s32 arg0, s32 arg1, s32 arg2)
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_jr_8017AE2C", func_80180CAC);
void func_80180CAC(void) {
func_80029124(0x142, 0);
if ((func_800291B4(0xCC) & 0xFF) == 1) {
func_800291A0(0xCC, 2);
}
}
extern void func_80029124(s32 arg0, s32 arg1);
void func_80180CF0(void) {
@@ -13005,7 +13011,20 @@ void func_8018A2F8(s32 param_1) {
}
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_jr_8017AE2C", func_8018A384);
void func_8018A384(s16 *param_1)
{
s32 s0 = (s32)param_1;
u16 v;
v = *(u16 *)(s0 + 0xFE);
v = v - 1;
*(u16 *)(s0 + 0xFE) = v;
if ((s32)(v << 16) <= 0) {
func_80143B6C(param_1, 0);
*(u16 *)(s0 + 0xFE) = 8;
}
}
#include "common.h"
@@ -13075,11 +13094,47 @@ void func_8018A4B4(s32 param_1) {
}
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_jr_8017AE2C", func_8018A538);
extern void func_8012A828(s32 a0, void *a1);
extern void func_8002D4C8(s32 a0, s32 a1);
extern u8 D_801E0084;
extern s32 D_801D7E84;
extern s32 D_801F7740;
void func_8018A538(s32 param_1) {
s32 v1;
*(u16 *)(param_1 + 2) = 4;
*(u16 *)(param_1 + 0x34) = 0;
func_8012A828(param_1, &D_801E0084);
v1 = D_801D7E84;
*(s32 *)(param_1 + 0x1C) = 0x28;
D_801F7740 = v1;
func_8002D4C8(0x660, 0);
}
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_jr_8017AE2C", func_8018A598);
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_jr_8017AE2C", func_8018A5C4);
extern void func_8012CBA4(s32 a0);
extern void func_80131E00();
extern void func_8012ADE4(u8 *a0);
s32 func_8018A5C4_impl(s32 a0) __asm__("func_8018A5C4");
s32 func_8018A5C4_impl(s32 a0)
{
s32 flags;
flags = ((s32 (*)(s32))func_8012CBA4)(a0);
if ((flags & 0x1000) != 0) {
((void (*)(s32, s32))func_80131E00)(a0, 0x12);
return 0;
}
if (flags != 0x2000) {
func_8012ADE4((u8 *)a0);
}
return 1;
}
#include "common.h"
+14 -1
View File
@@ -5645,7 +5645,20 @@ void func_8017FA84(void *a0) {
}
INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007_jr_8017AE2C", func_8017FB40);
void func_8017FB40(s32 param_1)
{
extern void func_8012A828(s32 a0, void *a1);
extern u8 D_801BEC20[];
*(u16 *)(param_1 + 0x5C) = 0;
*(s32 *)(param_1 + 0x1C) = 0x10;
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x10) = 0;
*(u16 *)(*(s32 *)(param_1 + 0x20) + 0x2C) |= 0x10;
*(s16 *)(param_1 + 0x34) = 0;
*(s16 *)(param_1 + 0xA) = *(s16 *)(param_1 + 0xA) - 0x3C;
func_8012A828(param_1, (void *)D_801BEC20);
}
INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007_jr_8017AE2C", func_8017FBA0);
+10 -1
View File
@@ -3450,7 +3450,16 @@ void func_80182A18(int param_1) {
}
INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007_jr_80181F94", func_80182A80);
extern s32 func_8012BCCC(s32 a0);
void func_80182A80(s32 param_1) {
s32 ret;
ret = func_8012BCCC(param_1);
if (ret < 0x24001) {
func_80182468(param_1);
}
}
extern s32 func_8012BEE8(s32 arg);
extern s32 func_801824A8();
+52 -3
View File
@@ -3421,7 +3421,20 @@ void func_8017DCA0(void) {
}
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017DCC8);
void func_8017DCC8(s32 *a0)
{
s32 v0;
v0 = func_800291B4(0xCE) & 0xFF;
if (v0 == 9) {
func_80171A04(a0);
func_800291A0(0xCE, 0);
} else {
func_80171A10(a0);
func_800291A0(0xCE, 1);
}
}
extern void func_8016EE40(s32 a0, s32 a1, s32 a2);
void func_8017DD30(void) {
@@ -4348,11 +4361,47 @@ void func_8017F584(s32 a0) {
}
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017F64C);
extern void func_8017EB88();
extern s32 func_8012BEE8(s32 a0);
extern s32 func_8012AD50(void *a0);
extern void func_80019064(void *a0);
extern s32 D_80062BE8;
void func_8017F64C(s32 a0)
{
func_8017EB88(a0);
if (func_8012BEE8(a0) != 0) {
*(u16 *)(a0 + 0x104) = 0;
*(s32 *)(a0 + 0x1C) = 0x18;
func_8012AD50((void *)a0);
}
if ((*(u32 *)(a0 + 0x1C) & 7) == 0) {
func_80019064(&D_80062BE8);
}
}
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017F6B8);
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_8017C730", func_8017F718);
extern void func_8017EB88(s32 arg0);
extern void func_801437D8(s32 a0, s32 a1, s32 a2, s32 a3);
extern s8 D_801852D0[];
extern u8 D_80185300[];
extern void func_80016450(s32 a0, s32 a1);
void func_8017F718(s32 arg0) {
s32 temp;
func_8017EB88(arg0);
func_801437D8(arg0 + 0x102, (s32)D_801852D0, (s32)D_80185300, 0);
temp = *(u16 *)(arg0 + 0xFE) + 3;
*(u16 *)(arg0 + 0xFE) = temp;
if ((s16)temp >= 0x100) {
*(u16 *)(arg0 + 0xFE) = 0xFF;
}
func_80016450(*(u8 *)(arg0 + 0xFE), 0);
}
extern void func_8012C1B8(void);
extern void func_8012CAE4(void *a0);
+21 -1
View File
@@ -4234,7 +4234,27 @@ void func_8017DBE4(void *a0) {
INCLUDE_ASM("asm/ov_SC03_012/nonmatchings/ov_SC03_012_jr_8017AE2C", func_8017DCB4);
INCLUDE_ASM("asm/ov_SC03_012/nonmatchings/ov_SC03_012_jr_8017AE2C", func_8017DE18);
extern u16 D_800B99DC;
extern u8 D_8017E8A4[];
extern void func_8013C9C4(void *a0);
extern void func_8017DCB4(s32 a0);
extern void func_800D1724(s32 a0);
extern u8 D_80181B58[];
void func_8017DE18(void *a0) {
u16 val;
val = *(u16 *)((char *)a0 + 0xE6);
val--;
*(u16 *)((char *)a0 + 0xE6) = val;
if ((val << 0x10) == 0) {
*(u16 *)((char *)a0 + 0xE6) = (D_800B99DC & 7) + 1;
func_8013C9C4(&D_8017E8A4);
}
func_8017DCB4((s32)a0);
func_800D1724((s32)&D_80181B58);
}
void func_8017DE90(s32 *a0) {
*(u16 *)((s32)a0 + 6) = *(u16 *)(*(s32 *)((s32)a0 + 100) + 0xDE);
+11 -1
View File
@@ -3857,7 +3857,17 @@ void func_8017EBA0(s32 a0, s32 a1) {
}
INCLUDE_ASM("asm/ov_SC03_013/nonmatchings/ov_SC03_013_jr_8017C730", func_8017ECD0);
extern void func_80139A68(s32 a0, u16 a1);
extern s16 D_80184E7C[];
extern s32 D_80184E84[];
extern void func_8012AD44(s32 *a0, s16 a1);
void func_8017ECD0(s32 a0) {
func_80139A68(D_80184E7C[*(s16 *)(a0 + 0x70)], 0);
func_80178B18(a0, D_80184E84[*(s16 *)(a0 + 0x70)]);
func_8012AD44((s32 *)a0, 2);
}
extern void func_8012AD44(s32 *a0, s16 a1);
void func_8017ED40(s32 arg0) {
+44 -3
View File
@@ -4681,7 +4681,24 @@ void func_8017E834(s32 a0) {
}
INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023_jr_8017AE2C", func_8017E8E4);
extern void func_8012A828(s32 a0, void *a1);
extern u8 D_801933C0[];
void func_8017E8E4(s32 a0) {
s32 s0;
s32 v1;
s0 = a0;
*(u16 *)(s0 + 6) = *(u16 *)(s0 + 6) - 3;
v1 = *(s32 *)(s0 + 0x1C) - 1;
*(s32 *)(s0 + 0x1C) = v1;
*(u16 *)(s0 + 0xE) = *(u16 *)(s0 + 0xE) + 1;
if (v1 == 0) {
func_8012A828(a0, D_801933C0);
*(s16 *)(s0 + 2) = 5;
}
}
INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023_jr_8017AE2C", func_8017E948);
@@ -4784,7 +4801,16 @@ void func_8017EB2C(s32 a0) {
}
INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023_jr_8017AE2C", func_8017EC30);
extern s32 func_8012BD14(s32 a0);
void func_8017EC30(s32 a0)
{
if ((func_8016F1AC() == 0) && (func_8012BD14(a0) < 0x401)) {
func_8017D884();
*(s16 *)(a0 + 2) = 2;
}
}
extern s32 func_800291B4(s32 a0);
extern void func_8012C218(void *a0);
@@ -4816,7 +4842,22 @@ extern void func_8012CAE4(void *a0);
}
INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023_jr_8017AE2C", func_8017ED30);
extern s32 func_8012CBCC(s32 a0);
extern void func_8012C218(void *a0);
void func_8017ED30(s32 a0)
{
s32 s0;
s0 = a0;
func_8012CBCC(a0);
if (((u16)(*(u16 *)(s0 + 6) + 0x300) >= 0x601U) ||
(*(s16 *)(s0 + 0xA) < -0x400) ||
((u16)(*(u16 *)(s0 + 0xE) + 0x100) >= 0x701U)) {
func_8012C218((void *)s0);
}
}
extern void func_8012C1B8(void);
extern void func_8012CAE4(void *a0);
+44 -3
View File
@@ -6603,7 +6603,26 @@ void func_80186C98(s32 param_1) {
}
INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028_jr_8017DF98", func_80186D0C);
#include "common.h"
extern void func_8012CBCC(s32 a0);
extern void func_8012A828(s32 a0, void *a1);
extern void func_8002D4C8(s32 a0, s32 a1);
extern u8 D_801AE46C[];
void func_80186D0C(void *a0)
{
if (((s32 (*)(s32))func_8012CBCC)(a0) & 0x8000) {
*(s16 *)((s32)a0 + 0x2) = 0x11;
func_8012A828(a0, D_801AE46C);
*(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x12) = *(u16 *)((s32)a0 + 0xFC);
func_8002D4C8(0x640, 0);
}
*(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x12) += 0x48;
}
#include "common.h"
@@ -7359,7 +7378,17 @@ void func_80187C28(void *a0)
}
INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028_jr_8017DF98", func_80187CF4);
extern void func_80183264(s32 a0);
void func_80187CF4(void *a0) {
*(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x1C) += 0xA00;
if (*(s16 *)((s32)a0 + 0xFC) == 4) {
*(u16 *)((s32)a0 + 0x2) = 2;
*(s32 *)((s32)a0 + 0x1C) = 0x79;
}
func_80183264((s32)a0);
}
extern s32 func_8012C354(s32 a0, s32 a1);
extern void func_8012A828(s32 a0, void *a1);
@@ -8037,7 +8066,19 @@ void func_80188F4C(void *a0)
INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028_jr_8017DF98", func_80188FF0);
INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028_jr_8017DF98", func_80189094);
extern void func_8012C218(void *a0);
void func_80189094(s32 param_1) {
s32 v0;
*(u32 *)(*(s32 *)(param_1 + 0x20) + 4) ^= 0x80000000;
v0 = *(s32 *)(param_1 + 0x1C) - 1;
*(s32 *)(param_1 + 0x1C) = v0;
if (v0 == 0) {
func_8012C218((void *)param_1);
}
}
extern void func_8012CBCC(s32 a0);
extern void func_8012C218(void *a0);
+23 -1
View File
@@ -3734,7 +3734,29 @@ void func_8017FC50(void *param_1) {
}
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_8017FCE0);
#include "common.h"
extern s32 func_8012E504(s32 a0, s32 a1);
extern s32 func_80029178(s32 arg);
extern s32 func_8012C354(s32 a0, s32 a1);
extern s32 func_80143970(s32 a0);
extern void func_8012A828(s32 a0, void *a1);
extern void func_8012CAE4(void *a0);
extern u8 D_8018B720[];
extern u8 D_80187B3C[];
void func_8017FCE0(void *a0) {
if ((func_8012E504((s32)a0, 0x95) != 0) || ((func_80029178(0x9D) & 0xFF) != 0)) {
func_8012CAE4(a0);
} else if (func_8012C354((s32)a0, (s32)D_8018B720) != 0) {
func_80143970((s32)a0);
func_8012A828((s32)a0, D_80187B3C);
*(s16 *)((s32)a0 + 2) = 1;
*(s16 *)((s32)a0 + 0x34) = 0;
}
}
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_8017DC70", func_8017FD74);
+62 -3
View File
@@ -4664,7 +4664,21 @@ void func_8017EBF8(void *a0) {
}
INCLUDE_ASM("asm/ov_SC03_030/nonmatchings/ov_SC03_030_jr_8017AE2C", func_8017EC34);
extern void func_8014BF18(s32 a0);
extern s32 func_8012C658(s32 arg0, s32 arg1, s32 arg2);
extern s32 func_8012AD50(void *a0);
void func_8017EC34(s32 a0) {
s32 s0 = a0;
func_8014BF18(4);
func_8012C658(0xCA, 0, s0);
func_8012C658(0xCA, 1, s0);
func_8012C658(0xCA, 2, s0);
func_8012C658(0xCA, 3, s0);
func_8012AD50((void *)s0);
}
extern u8 func_8014BF6C(void);
@@ -5608,7 +5622,31 @@ void func_8018101C(void *a0) {
}
INCLUDE_ASM("asm/ov_SC03_030/nonmatchings/ov_SC03_030_jr_8017AE2C", func_8018107C);
extern void func_8012C1B8(void);
extern void func_8012CAE4(void *a0);
extern void func_8001C214(s32 a0, s32 a1);
extern void func_8012A828(s32, void *);
extern void func_8012C588();
extern s32 rand(void);
extern u8 D_801DCCE8[];
extern s32 D_801DD860;
void func_8018107C(s32 a0) {
register s32 v0 __asm__("$2");
v0 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)((s32)a0 + 0x20) = v0;
if (v0 == 0) {
func_8012CAE4((void *)a0);
return;
}
func_8001C214(v0, (s32)D_801DCCE8);
((void (*)(s32, s32))func_8012A828)((s32)a0, (s32)&D_801DD860);
((void (*)(s32, s32))func_8012C588)(0x10F, (s32)a0);
*(s32 *)((s32)a0 + 0x1C) = rand() % 31 + 0x3C;
*(u16 *)((s32)a0 + 2) = 1;
}
INCLUDE_ASM("asm/ov_SC03_030/nonmatchings/ov_SC03_030_jr_8017AE2C", func_8018112C);
@@ -5651,7 +5689,28 @@ void func_80181300(void *a0) {
}
INCLUDE_ASM("asm/ov_SC03_030/nonmatchings/ov_SC03_030_jr_8017AE2C", func_8018133C);
extern void func_8012C1B8(void);
extern void func_8012CAE4(void *a0);
extern void func_8001C214(s32 a0, s32 a1);
extern void func_8012C588();
void func_8018133C(void *a0) {
s32 v0;
v0 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)((s32)a0 + 0x20) = v0;
if (v0 == 0) {
func_8012CAE4(a0);
return;
}
func_8001C214(v0, 0);
*(u16 *)((s32)a0 + 0xFC) = *(u16 *)(*(s32 *)((s32)a0 + 0x64) + 0x36);
*(u16 *)((s32)a0 + 0xFE) = 200;
*(u16 *)((s32)a0 + 0x70) = *(u16 *)(*(s32 *)((s32)a0 + 0x64) + 0x70);
func_8012C588(0x10B, a0);
*(u16 *)((s32)a0 + 2) = 2;
}
extern s32 func_80181C08(void *a0);
extern void func_80181708(void *a0);
+14 -1
View File
@@ -3570,7 +3570,20 @@ s32 a0;
}
INCLUDE_ASM("asm/ov_SC03_095/nonmatchings/ov_SC03_095_jr_8017BEBC", func_8017D758);
void func_8017D758(s32 a0) {
extern s16 D_80184A4A[];
s32 t;
t = *(s32 *)(a0 + 0x1C) - 1;
*(s32 *)(a0 + 0x1C) = t;
if (t == 0) {
s32 val = D_80184A4A[*(s16 *)(a0 + 0xFC) * 4];
*(s16 *)(a0 + 0x2) = 3;
*(s32 *)(a0 + 0x1C) = val;
}
func_8012DFD4((u8 *)a0);
}
extern void func_8012CBA4(s32 a0);
extern void func_8012DFD4(u8 *a0);
+66 -3
View File
@@ -4418,7 +4418,19 @@ INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017C8D0", func_801818E
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017C8D0", func_80181C84);
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017C8D0", func_80182220);
extern void func_8002D4C8(s32 a0, s32 a1);
extern void func_80183EE8(void);
extern void func_80184604();
void func_80182220(s32 a0) {
*(s16 *)((s32)a0 + 0x2) = 0xB;
*(s32 *)((s32)a0 + 0x1C) = 0x3C;
*(s16 *)((s32)a0 + 0x34) = 0;
func_8002D4C8(0x72C, 0);
func_80183EE8();
func_80184604(-1);
}
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017C8D0", func_8018226C);
@@ -6634,7 +6646,35 @@ void func_8018784C(void *a0) {
}
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017C8D0", func_80187890);
extern void func_8012C1B8(void);
extern void func_8012CAE4(void *a0);
extern void func_8001C214(s32 a0, s32 a1);
extern void func_8002D4C8(s32 a0, s32 a1);
void func_80187890(void *arg0) {
s32 t;
s32 v0;
*(s32 *)((u8 *)arg0 + 0x20) = ((s32 (*)(void))func_8012C1B8)();
if (*(s32 *)((u8 *)arg0 + 0x20) == 0) {
func_8012CAE4((void *)arg0);
return;
}
func_8001C214(*(s32 *)((u8 *)arg0 + 0x20), 0);
*(s16 *)((u8 *)arg0 + 0x102) = -0x1AC;
*(s16 *)((u8 *)arg0 + 0xFE) = -0x1AC;
*(s16 *)((u8 *)arg0 + 0x104) = -0x1AC;
*(s16 *)((u8 *)arg0 + 0x100) = -0x1AC;
*(s32 *)((u8 *)arg0 + 0x1C) = 0x1F;
t = *(u16 *)(*(s32 *)((u8 *)arg0 + 0x64) + 2);
v0 = 0x775;
if (t != 9) {
v0 = 0x733;
}
func_8002D4C8(v0, 0);
*(u16 *)((u8 *)arg0 + 2) = *(u16 *)((u8 *)arg0 + 2) + 1;
}
#include "common.h"
@@ -6720,7 +6760,30 @@ void func_80188040(void *a0) {
}
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_8017C8D0", func_8018807C);
extern void func_8012C1B8(void);
extern void func_8012CAE4(void *a0);
extern void func_8001C214(s32 a0, s32 a1);
extern void func_8012B2CC(s32 a0);
extern s32 rand(void);
void func_8018807C(s32 a0) {
s32 obj;
obj = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(a0 + 0x20) = obj;
if (obj == 0) {
func_8012CAE4((void *)a0);
return;
}
func_8001C214(obj, 0);
*(u16 *)(*(s32 *)(a0 + 0x20) + 0x14) = *(u16 *)(a0 + 0xFC);
func_8012B2CC(a0);
*(u16 *)(a0 + 0xFE) = rand() % 32 + 0x20;
*(u16 *)(a0 + 0x2) = *(u16 *)(a0 + 0x2) + 1;
}
#include "common.h"
+10 -1
View File
@@ -3497,7 +3497,16 @@ s32 func_8017D608(void) {
}
INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115_jr_8017BEBC", func_8017D628);
void func_8017D628(s32 param_1) {
s32 ret;
ret = func_800D0EC4();
func_800D0F0C(ret, *(s16 *)(param_1 + 0x70) + 0x62);
func_800291A0(0xDE, *(u8 *)(param_1 + 0x70));
*(s16 *)(param_1 + 0x70) = 0;
*(s32 *)(*(s32 *)(param_1 + 0x20) + 4) |= 0x80000000;
}
INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115_jr_8017BEBC", func_8017D684);
+31 -2
View File
@@ -5256,9 +5256,38 @@ void func_80180B88(void *a0) {
}
INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117_jr_8017BEBC", func_80180BC4);
extern void func_8012C1B8(void);
extern void func_8012CAE4(void *a0);
extern void func_8001C214(s32 a0, s32 a1);
extern void func_8012AD50(s32);
void func_80180BC4(void *a0)
{
s32 v0;
v0 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)((s32)a0 + 0x20) = v0;
if (v0 == 0) {
func_8012CAE4(a0);
return;
}
func_8001C214(v0, 0);
func_8012AD50((s32)a0);
}
extern s32 func_80029178(s32 arg);
extern void func_8012AD50(s32);
extern u8 D_80188B4C[];
void func_80180C18(void *a0) {
if ((func_80029178(0xBB) & 0xFF) != 0) {
*(s32 *)((s32)a0 + 0x58) = (s32)D_80188B4C;
*(s16 *)((s32)a0 + 0x5C) = 0x80;
func_8012AD50((s32)a0);
}
}
INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117_jr_8017BEBC", func_80180C18);
void func_80180C68(void) {
}
+40 -2
View File
@@ -4749,7 +4749,21 @@ void func_8017E380(void *a0) {
}
INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_jr_8017AE2C", func_8017E3BC);
extern int func_800D0F8C(int a0);
extern s32 func_800D0EC4(void);
extern void func_800D0F0C(s32, s32);
void func_8017E3BC(s32 a0)
{
if (func_800D0F8C(a0 & 0xFF) == 0) {
s32 ret;
ret = func_800D0EC4();
if (ret != 0) {
func_800D0F0C(ret, a0);
}
}
}
extern void func_8012E8E0(s32 a0, s32 a1);
extern void func_8012E88C(s32 a0);
@@ -5778,7 +5792,31 @@ void func_80180334(void *a0) {
}
INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_jr_8017AE2C", func_801803CC);
extern u16 D_800B99DA;
extern s32 func_801842F8(u8 a0, u8 a1, u8 a2, u8 a3);
extern void func_8012E88C(s32 a0);
extern void func_8012A828(s32, s32);
extern void func_801843B8(s32 a0);
extern void func_801845FC(s32, s32, s32, s32);
extern short D_801BEA50;
extern s16 D_801B9560;
extern void func_8018004C(s32 a0);
void func_801803CC(void *arg0)
{
if (*(s16 *)((char *)arg0 + 0xFC) != 0) {
func_8018004C((s32)arg0);
}
if ((D_800B99DA & 3) == 0 && func_801842F8(9, 4, 0x12, 0) == 0) {
*(s16 *)((char *)arg0 + 2) = 6;
func_8012E88C((s32)arg0);
func_8012A828((s32)arg0, (s32)&D_801BEA50);
func_801843B8((s32)arg0);
*(s16 *)((char *)arg0 + 0x34) = 0;
func_801845FC((s32)arg0, (s32)&D_801B9560, 0, 0x60);
}
}
extern int func_80178970(void);
extern void func_80178D18(void);
+19 -1
View File
@@ -5380,7 +5380,25 @@ INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000_jr_8017BEBC", func_801806B
void func_80180730(void) {
}
INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000_jr_8017BEBC", func_80180738);
extern s32 func_80029504(void);
extern void func_80178CBC(s32 *a0, s32 a1);
extern s32 D_80199868;
extern s32 D_80199830;
void func_80180738(void *a0)
{
s32 v0;
if ((u32)func_80029504() >= 0x302) {
func_80178CBC((s32 *)a0, &D_80199868);
v0 = 4;
} else {
func_80178CBC((s32 *)a0, &D_80199830);
v0 = 3;
}
*(s16 *)(a0 + 2) = v0;
}
extern int func_80178970(void);
+53 -1
View File
@@ -10140,7 +10140,59 @@ s32 func_80186544(s32 a0) {
}
INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002_jr_8017BEBC", func_80186638);
extern s32 func_8012BC60(void *a0, void *a1);
extern s32 func_8012B6D4(s16 *a0, s16 *a1);
extern void func_8012B0B4(unsigned int *param_1, int param_2, int param_3);
extern s32 func_8012CEB0(void *a0, void *a1, s32 a2);
extern void func_8012ADE4(u8 *a0);
void func_80186638(s32 a0) {
extern u8 D_801202A0[];
u8 *p;
s16 *self4;
unsigned int *sc;
s32 i;
s32 ang;
s16 v10[4];
s16 v18[4];
s32 sp20[2];
i = 0;
p = D_801202A0;
self4 = (s16 *)(a0 + 4);
sc = (unsigned int *)sp20;
do {
switch (*(u16 *)p) {
case 0x1DC:
if ((u8 *)a0 != p) {
if (func_8012BC60((void *)self4, (void *)(p + 4)) < 0x900) {
ang = func_8012B6D4(self4, (s16 *)(p + 4));
func_8012B0B4(sc, ang, 0x31);
v18[0] = *(u16 *)(p + 6);
v18[1] = *(u16 *)(p + 0xA);
v18[2] = *(u16 *)(p + 0xE);
v18[0] += sp20[0];
v18[2] += sp20[0] >> 16;
v10[0] = *(u16 *)(a0 + 0x3A);
v10[1] = *(u16 *)(a0 + 0x3E);
v10[2] = *(u16 *)(a0 + 0x42);
if (func_8012CEB0(v10, v18, 0) & 0x2000) {
*(u16 *)(a0 + 6) = v18[0];
*(u16 *)(a0 + 0xA) = v18[1];
*(u16 *)(a0 + 0xE) = v18[2];
return;
}
func_8012ADE4((u8 *)a0);
return;
}
}
break;
}
i++;
p += 0x10C;
} while (i < 0x60);
}
#include "common.h"
+52 -1
View File
@@ -9475,7 +9475,58 @@ s32 func_80185914(s32 a0) {
}
INCLUDE_ASM("asm/ov_SC04_005/nonmatchings/ov_SC04_005_jr_8017BEBC", func_80185A08);
#include "common.h"
extern u8 D_801202A0[];
extern s32 func_8012BC60(struct Vec *a0, struct Vec *a1);
extern s32 func_8012B6D4(s16 *a0, s16 *a1);
extern void func_8012B0B4(unsigned int *param_1, int param_2, int param_3);
extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
extern void func_8012ADE4(u8 *a0);
s32 func_80185A08(s32 a0) {
u8 *p;
s16 *self4;
unsigned int *sc;
s32 i;
s32 ang;
s16 v10[4]; /* sp+0x10 */
s16 v18[4]; /* sp+0x18 */
s32 sp20[2]; /* sp+0x20 — func_8012B0B4 output */
i = 0;
p = D_801202A0;
self4 = (s16 *)(a0 + 4);
sc = (unsigned int *)sp20;
do {
if (*(u16 *)p == 0x1DC && (u8 *)a0 != p) {
if (func_8012BC60((struct Vec *)self4, (struct Vec *)(p + 4)) < 0x900) {
ang = func_8012B6D4(self4, (s16 *)(p + 4));
func_8012B0B4(sc, ang, 0x31);
v18[0] = *(u16 *)(p + 6);
v18[1] = *(u16 *)(p + 0xA);
v18[2] = *(u16 *)(p + 0xE);
v18[0] += sp20[0];
v18[2] += sp20[0] >> 16;
v10[0] = *(u16 *)(a0 + 0x3A);
v10[1] = *(u16 *)(a0 + 0x3E);
v10[2] = *(u16 *)(a0 + 0x42);
if (func_8012CEB0((s32)v10, (s32)v18, 0) & 0x2000) {
*(u16 *)(a0 + 6) = v18[0];
*(u16 *)(a0 + 0xA) = v18[1];
*(u16 *)(a0 + 0xE) = v18[2];
return;
}
func_8012ADE4((u8 *)a0);
return;
}
}
i++;
p += 0x10C;
} while (i < 0x60);
}
extern s32 func_80132EF4(s32 a0, s32 a1);
typedef struct { short a, b, c; } SV3_80181D44_80185B70; /* == the TU's own `SV3` (engine_types.h:612); renamed only because
+60 -4
View File
@@ -4595,7 +4595,18 @@ s32 func_801809D4(s32 *a0) {
}
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8017D494", func_801809E0);
extern void func_8018FC58(void *a0);
void func_801809E0(s32 arg0) {
s32 s0;
s0 = arg0;
func_8017FF80();
func_8018FC58((void *)3);
*(s32 *)(s0 + 0x1C) = 0xC0;
*(s16 *)(s0 + 0x84) = 0x28;
}
extern void func_8002D4C8(s32 a0, s32 a1);
extern void func_8012BEE8(u8*);
@@ -5444,7 +5455,22 @@ L80182380:
}
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8017D494", func_801823C0);
#include "common.h"
void func_801823C0(void *a0)
{
extern void func_8018637C(s32 arg0, s32 arg1);
extern void func_80186BF8(void);
extern void func_8012AD44(s32 *a0, s16 a1);
extern struct { s32 f0; s32 f1; s32 f2; } D_801944EC[];
register s32 s0 __asm__("$16") = (s32)a0;
func_8018637C((s32)a0, D_801944EC[*(s16 *)(s0 + 0xE2)].f0);
func_80186BF8();
func_8012AD44((s32 *)s0, 0xB);
}
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8017D494", func_80182420);
@@ -5492,7 +5518,20 @@ INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8017D494", func_801827D
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8017D494", func_80182AF8);
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8017D494", func_80182B5C);
void func_80182B5C(void *arg0) {
extern u8 D_80194538[];
extern void func_8018332C(s32 a0, s32 a1);
extern void func_80186908();
extern u16 D_801EFD40;
extern void func_8012AD44(s32 *a0, s16 a1);
*(s16 *)((s32)arg0 + 0xF4) = 0;
func_8018332C((s32)arg0, (s32)&D_80194538);
func_80186908();
D_801EFD40 |= 0x20;
func_8012AD44((s32 *)arg0, 0xE);
}
#include "common.h"
@@ -10452,7 +10491,24 @@ void func_80189FDC(void *a0) {
}
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8017D494", func_8018A018);
#include "common.h"
extern void func_8018A074(s32 arg0);
extern void func_8001C924(void *a0, void *a1);
extern void func_8018A42C(void *a0, void *a1);
extern void func_8002D4C8(s32 a0, s32 a1);
extern s32 D_801E30C4;
extern u8 D_801E5870[];
void func_8018A018(s32 arg0)
{
func_8018A074((s32)arg0);
func_8001C924(*(void **)((s32)arg0 + 0x20), (void *)&D_801E30C4);
func_8018A42C((void *)arg0, (void *)D_801E5870);
*(s32 *)((s32)arg0 + 0x58) = 0;
func_8002D4C8(0x84C, 0);
}
extern s32 func_8012C658(s32 arg0, s32 arg1, s32 arg2);
extern void func_8018A0E0(s32 arg0);
+11 -1
View File
@@ -3496,7 +3496,17 @@ void func_8017F030(void) {
}
INCLUDE_ASM("asm/ov_SC04_020/nonmatchings/ov_SC04_020_jr_8017D604", func_8017F068);
extern s32 func_801813AC(u8 a0, u8 a1, u8 a2, u8 a3);
void func_8017F068(s32 obj) {
*(s32 *)(*(s32 *)(obj + 0xCC) + 0xB0) = 2;
if (func_801813AC(5, 0, 5, 0x1E) != 0) {
func_8017EDF4((void *)obj);
} else if (func_80181388(7, 0x15) != 0) {
func_8017EDB0(obj);
}
}
extern void func_80178CBC(s32 arg0, s32 arg1);
extern int func_80178970(void);
+15 -1
View File
@@ -3615,7 +3615,21 @@ void func_8017D828(void *a0) {
}
INCLUDE_ASM("asm/ov_SC05_000/nonmatchings/ov_SC05_000_jr_8017BEBC", func_8017D864);
void func_8017D864(s32 param_1) {
extern s32 func_8012C354(s32 a0, s32 a1);
extern void func_8001D0E8(s32 a0, s32 a1, s32 a2);
extern void (*D_80181E28[])(void);
extern s32 D_80198064;
s32 v0;
v0 = func_8012C354(param_1, (s32)D_80181E28);
if (v0 != 0) {
func_8001D0E8(*(s32 *)(param_1 + 0x20), 0x7FFF, 0x7FFF);
*(s32 *)(*(s32 *)(param_1 + 0x20) + 0x20) = D_80198064;
*(u16 *)(param_1 + 0x2) = *(u16 *)(param_1 + 0x2) + 1;
}
}
void func_8017D8CC(void) {
}
+26 -1
View File
@@ -5333,7 +5333,32 @@ void func_80180260(void *a0) {
}
INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001_jr_8017BEBC", func_8018029C);
#include "common.h"
/* Callee spellings copied VERBATIM from this TU (law 2):
* func_80178B18 @2535/@4800, func_8016F2A8 @1946, func_8016F2EC @1948,
* func_8002D4C8 @59/@4802, func_8012AD44 @5060/@5182.
* D_80189B10 is only address-taken (2nd arg of func_80178B18); spelled as a
* dispatcher table to match the adjacent D_80189AF8 (@5329) / D_80189B18 (@5359)
* declarations in this same TU. */
extern s32 func_80178B18(s32 param_1, s32 param_2);
extern void func_8016F2A8(void);
extern void func_8016F2EC(void);
extern void func_8002D4C8(s32 a0, s32 a1);
extern void func_8012AD44(s32 *a0, s16 a1);
extern void (*D_80189B10[])(void);
void func_8018029C(s32 param_1) {
func_80178B18(param_1, (s32)D_80189B10);
func_8016F2A8();
func_8016F2EC();
*(u16 *)(param_1 + 0xFE) = 0x14;
*(s32 *)(param_1 + 0x1C) = 4;
func_8002D4C8(0x8FE, 0);
func_8012AD44((s32 *)param_1, 2);
}
INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001_jr_8017BEBC", func_80180304);
+13 -1
View File
@@ -3457,7 +3457,19 @@ void func_8017D490(void *a0) {
}
INCLUDE_ASM("asm/ov_SC05_007/nonmatchings/ov_SC05_007_jr_8017BEBC", func_8017D52C);
extern int func_80178970(void);
extern void func_80178D18(void);
void func_8017D52C(s32 a0)
{
extern s16 D_80126B62;
if (func_80178970() != 0 || D_80126B62 >= -447) {
((void (*)(s32))func_80178D18)(a0);
*(u16 *)(a0 + 2) -= 1;
}
}
void func_8017D58C(void) {
}
+63 -4
View File
@@ -3826,7 +3826,19 @@ void func_80185288(void *a0) {
}
INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010_jr_80181CDC", func_801852C4);
void func_801852C4(s32 arg0)
{
extern void func_80187B80(s32 a0);
extern void func_8017E910(void);
void *s0;
func_80187B80(4);
s0 = (void *)(arg0 + 0x76);
func_8017BF08(s0, s0, 5, 0xD2);
func_8017E910();
func_8002D4C8(0x89E, 0);
}
extern void func_80187BAC(void);
extern void func_8017E9B4(void);
@@ -4105,7 +4117,22 @@ INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010_jr_80181CDC", func_80185B2
INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010_jr_80181CDC", func_80185BD8);
INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010_jr_80181CDC", func_80185C80);
void func_80185C80(s32 a0) {
extern s32 func_8012C354(s32 a0, s32 a1);
extern void func_8012A828(s32 a0, void *a1);
extern u8 D_8019273C[];
extern void (*D_80188CCC)(void);
if (func_8012C354(a0, (s32)D_8019273C) != 0) {
*(u32 *)(*(s32 *)(a0 + 0x20) + 4) = *(u32 *)(*(s32 *)(a0 + 0x20) + 4) | 0x80000000;
*(s16 *)(a0 + 2) = 1;
func_8012A828(a0, &D_80188CCC);
*(u8 *)(a0 + 0x75) = 3;
*(u8 *)(a0 + 0xC0) = 1;
*(s16 *)(a0 + 0xAE) = -1;
}
}
void func_80185CF8(void) {
}
@@ -4768,7 +4795,22 @@ void func_801872BC(s32 param_1) {
}
INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010_jr_80181CDC", func_8018738C);
void func_8018738C(s32 a0) {
extern s32 func_8012C354(s32 a0, s32 a1);
extern void func_8012A828(s32 a0, void *a1);
extern void (*D_80188CCC)(void);
extern void (*D_80192E00)(void);
if (func_8012C354(a0, (s32)&D_80192E00) != 0) {
*(s32 *)(*(s32 *)(a0 + 0x20) + 4) = *(s32 *)(*(s32 *)(a0 + 0x20) + 4) | 0x40000040;
*(u8 *)(a0 + 0xC0) = 1;
*(u16 *)(a0 + 0x5C) = 0;
func_8012A828(a0, &D_80188CCC);
*(u16 *)(a0 + 2) = 1;
*(s32 *)(a0 + 0x1C) = 6;
}
}
extern void func_8012C218(void*);
@@ -4782,7 +4824,24 @@ extern void func_8012C218(void*);
INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010_jr_80181CDC", func_80187438);
INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010_jr_80181CDC", func_801874DC);
extern void func_8012C218(void*);
extern void func_8017ECE4(void);
extern s32 D_801C7E64;
void func_801874DC(void *param_1) {
s32 v;
v = *(s32 *)((u8 *)param_1 + 0x1C) - 1;
*(s32 *)((u8 *)param_1 + 0x1C) = v;
if (v == 0) {
((void (*)(void))func_8012C218)();
D_801C7E64 = 0;
}
*(u16 *)((u8 *)param_1 + 0xA) = 0;
((void (*)(s32))func_8017ECE4)((s32)param_1);
*(u16 *)((u8 *)param_1 + 0xA) -= 0x20;
}
#include "common.h"
+46 -3
View File
@@ -5127,7 +5127,13 @@ void func_8017ED1C(void *a0) {
}
INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017_jr_8017AE2C", func_8017ED58);
void func_8017ED58(void *a0) {
extern s32 D_801911C0;
*(short *)((char *)a0 + 0x2) = 5;
func_80178CBC((s32)a0, (s32)&D_801911C0);
*(short *)((char *)a0 + 0x34) = 0;
}
extern s16 func_80184B44(void);
@@ -5172,7 +5178,19 @@ void func_8017EEC8(void *a0) {
}
INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017_jr_8017AE2C", func_8017EF20);
extern s32 func_801858E0(s32 a0);
extern s32 func_80184CA4(s32 a0);
extern void func_80185C54(void*, s32, s32);
void func_8017EF20(void *a0) {
func_80185C54(a0, 0xC, 1);
if (func_801858E0(0xC) != 0) {
if (func_80184CA4((s32)a0) != 0) {
func_8017E85C(a0);
}
}
}
extern void func_80184BD4(s32, s32, s32, s32);
extern s32 func_801848AC(s32 arg0, s32 arg1);
@@ -6095,7 +6113,32 @@ extern void func_801849B8(s32*, s32);
}
INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017_jr_8017AE2C", func_801801B4);
extern s16 func_80184B44(void);
extern void func_801849B8(s32 *a0, s32 a1);
extern void func_8012E88C(s32);
extern void func_8012A828(s32, s32);
extern void func_80184990(s32);
void func_801801B4(void *arg0) {
extern short D_8019142C;
extern short D_801B9964;
extern s32 D_801CE1C0;
extern s32 D_801ECE70;
if (((s32 (*)(void))func_80184B44)() == 1) {
*(short *)((char *)arg0 + 0x2) = 1;
func_801849B8((s32 *)arg0, (s32)&D_8019142C);
} else {
*(short *)((char *)arg0 + 0x2) = 8;
func_8012E88C((s32)arg0);
func_8012A828((s32)arg0, (s32)&D_801B9964);
func_80184990((s32)arg0);
D_801CE1C0 = D_801ECE70;
*(short *)((char *)arg0 + 0x34) = 0;
}
}
extern void func_801849B8(s32*, s32);
+64 -1
View File
@@ -3590,6 +3590,69 @@ void func_80186B24(void)
}
INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017_jr_80186270", func_801874B0);
void func_801874B0(void) {
extern s32 D_801151D0;
extern s32 D_801151C8[];
extern u16 xf02 __asm__("D_800B9A02");
extern s16 xa __asm__("D_8011511A");
extern u16 xb __asm__("D_8011511A");
extern s32 xf168c(s32 a0) __asm__("func_8014168C");
extern u8 D_80115138[];
extern s32 D_801ED560;
extern s32 D_80115130;
extern s32 D_801B93CC[];
extern s32 D_801ED564;
extern u8 D_800B9A15;
extern u16 D_80115112;
extern s16 D_801ECE90;
extern s32 func_80188128(void);
extern void func_80188478(void);
extern s32 func_80188B1C(s32 a0, s32 a1);
extern void func_80139954(void);
extern s32 func_801376E8(s32 a0, s32 a1);
extern void func_80137B80(void);
s32 pad[2];
s32 v;
s32 r2;
s32 ret;
s16 rn;
s32 b;
s32 *p30;
u16 *p12;
D_801151D0 = ((s32 *)D_801151C8)[xf02];
ret = func_80188128();
func_80188478();
r2 = xf168c(xa);
b = D_80115138[xb];
if (D_801ED560 == 0) {
v = func_80188B1C(b, (s16)r2);
} else {
v = D_801ED560;
}
if (v != 0) {
p30 = &D_80115130;
if (v != *p30) {
*p30 = v;
func_80139954();
D_801ED564 = func_801376E8(v, (s32)D_801B93CC);
}
}
func_80137B80();
rn = ret;
if (rn < 0) {
func_80139954();
D_800B9A15 = 0;
if (D_801ECE90 == 0) {
func_8002D4C8(0x474, 0);
}
p12 = &D_80115112;
*p12 += 2;
}
}
+52 -3
View File
@@ -3434,7 +3434,29 @@ void func_8017EBFC(void *a0) {
}
INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018_jr_8017D604", func_8017EC80);
extern void func_8002D4C8(s32 a0, s32 a1);
extern void func_8017FE44(void);
extern s32 func_80171990(u8 *a0);
extern s32 D_801151D4;
void func_8017EC80(s32 a0) {
register s32 v0 __asm__("$2");
s32 v1;
v1 = D_801151D4;
v0 = *(u16 *)(v1 + 0x22) + 4;
*(u16 *)(v1 + 0x22) = v0;
*(s16 *)(v1 + 0x1A) = v0;
v0 = *(s32 *)((u8 *)a0 + 0x204) - 1;
*(s32 *)((u8 *)a0 + 0x204) = v0;
if (v0 == -1) {
func_8002D4C8(0xC4C, 0);
func_8017FE44();
func_80171990((u8 *)a0);
}
}
INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018_jr_8017D604", func_8017ECEC);
@@ -3745,7 +3767,19 @@ void func_8017F598(void *a0) {
}
INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018_jr_8017D604", func_8017F608);
extern s32 func_80171990(u8 *a0);
void func_8017F608(void *arg0) {
s16 var;
var = *(s16 *)((u8 *)arg0 + 0x20E) - 1;
*(s16 *)((u8 *)arg0 + 0x20E) = var;
if (var == -1) {
*(s16 *)((u8 *)arg0 + 0x20E) = 0;
func_80171990((u8 *)arg0);
}
}
extern void func_8002D4C8(s32 a0, s32 a1);
extern s32 func_80171990(u8 *a0);
@@ -3791,7 +3825,22 @@ void func_8017F6C8(void *a0) {
}
INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018_jr_8017D604", func_8017F754);
extern s32 func_80171990(u8*);
extern void func_8017F818(void *a0, s32 a1, s32 a2, s32 a3);
extern void func_8017F990();
void func_8017F754(void *a0) {
s32 v0;
v0 = *(s32 *)((u8 *)a0 + 0x200) - 0xA;
*(s32 *)((u8 *)a0 + 0x200) = v0;
if (v0 < 0x6F) {
((void (*)(void *))func_80171990)(a0);
}
func_8017F818(a0, *(s16 *)((u8 *)a0 + 0x20C), *(s32 *)((u8 *)a0 + 0x200), 0);
func_8017F990(a0, 0x800);
}
extern u8 D_800AE6BD;
extern void func_80171928(void *);
+16 -1
View File
@@ -4362,7 +4362,22 @@ extern s32 func_8018034C(void);
}
INCLUDE_ASM("asm/ov_SC06_006/nonmatchings/ov_SC06_006_jr_8017DB90", func_801807EC);
extern s32 func_8018034C(void);
extern void func_8017F2A0(void);
extern s32 D_801F8084;
extern void func_8017F308(void);
extern void func_8017FECC(s32 a0);
void func_801807EC(void) {
if (func_8018034C() != 0) {
func_8017F2A0();
}
if (D_801F8084 == 0xC8) {
func_8017F308();
}
func_8017FECC(4);
}
extern s32 func_8018034C(void);
extern s32 D_801F8084;
+10 -1
View File
@@ -3958,7 +3958,16 @@ void func_8017E62C(s32 param_1) {
}
INCLUDE_ASM("asm/ov_SC06_008/nonmatchings/ov_SC06_008_jr_8017C294", func_8017E694);
void func_8017E694(s32 a0) {
extern void func_801292C8();
if (*(s32 *)(a0 + 0x1c) == 0) {
func_801292C8(a0);
} else {
func_8017E6F0(a0);
*(s32 *)(a0 + 0x1c) -= 1;
}
}
+14 -1
View File
@@ -3957,7 +3957,20 @@ void func_8017E0FC(s32 a0) {
void func_8017E174(void) {
}
INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011_jr_8017BEBC", func_8017E17C);
void func_8017E17C(s32 param_1)
{
extern void func_8002D4C8(s32 a0, s32 a1);
s32 v;
v = *(u16 *)(param_1 + 0xA) + 0x10;
*(u16 *)(param_1 + 0xA) = v;
if ((s16)v >= -0x1C0) {
*(u16 *)(param_1 + 2) = *(u16 *)(param_1 + 2) - 1;
func_8002D4C8(4, 0xA66);
func_8002D4C8(0xA67, 0);
}
}
void func_8017E1DC(s32 a0) {
extern s32 func_8012C354(s32 a0, s32 a1);
+27 -2
View File
@@ -3622,7 +3622,23 @@ void func_8017E4AC(s32 a0)
}
INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016_jr_8017C8D0", func_8017E4FC);
#include "common.h"
extern void func_8017EEFC(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
extern void func_8002D4C8(s32 a0, s32 a1);
extern u8 D_80195E24;
extern s16 D_8019F708;
extern s16 D_8019F710;
extern u16 D_80188A1A;
void func_8017E4FC(s32 arg0)
{
func_8017EEFC(arg0, 7, 0, &D_80195E24);
D_8019F708 = 0;
D_8019F710 = D_80188A1A;
func_8002D4C8(0xA97, 0);
}
#include "common.h"
@@ -5574,7 +5590,16 @@ void func_80181D7C(s32 arg0) {
}
INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016_jr_8017C8D0", func_80181DBC);
extern s16 D_8019F710;
extern void func_8017E7D0(void);
void func_80181DBC(void) {
D_8019F710 = D_8019F710 - 1;
if (D_8019F710 <= 0) {
func_8017E7D0();
}
}
extern void func_8012AD80(s32 a0);
extern s32 func_8012BEE8(s32 a0);
+11 -1
View File
@@ -8808,7 +8808,17 @@ void func_801857CC(s32 param_1)
}
INCLUDE_ASM("asm/ov_SC06_018/nonmatchings/ov_SC06_018_jr_8017C24C", func_80185944);
extern void func_8012A828(s32 a0, void *a1);
extern u8 D_801CC6E8[];
void func_80185944(s32 p) {
*(u16 *)(p + 2) = 0x20;
func_8012A828(p, D_801CC6E8);
*(s32 *)(p + 0x1C) = 0;
*(s32 *)(p + 0xE4) = 0;
*(s32 *)(p + 0x48) = 0x4650;
}
// @class: regalloc-order
// @stuck: none — MATCH (168/168). $s4/$s5 pins for base+&local28; s32 sVar1 for single lh;
+61 -1
View File
@@ -8309,4 +8309,64 @@ void func_8018F694(void)
}
INCLUDE_ASM("asm/ov_SC06_018/nonmatchings/ov_SC06_018_jr_80187AEC", func_8018FE0C);
typedef struct { s32 a; s32 b[4]; } OtBlk_8018FE0C;
/* ==== simulated TU file-scope surface (verbatim from ov_SC06_018_jr_80187AEC.c) ==== */
extern short D_800B9A02;
extern s16 D_800B9A02;
extern void func_8004914C(void *a0);
extern void func_800491AC(void *a0);
extern void func_8004914C(void *);
extern void func_800491AC(void *);
extern void func_8004914C();
extern void func_800491AC();
extern s32 RotTransPers(s32 a0, s32 a1, s32 *a2, s32 *a3);
extern u8 D_800A651C[];
void func_8018FE0C(s32 arg0, s32 arg1, s32 arg2)
{
extern void *func_80010A08(s32);
extern void func_8004914C(void *);
extern void func_800491AC(void *);
extern s32 RotTransPers(s32, s32, s32 *, s32 *);
extern u8 D_800AF648;
extern OtBlk_8018FE0C aD800A651C[] __asm__("D_800A651C");
extern u8 D_800A6518[];
extern short D_800B9A02;
extern void func_80016638(void *a0, s32 a1, s32 a2);
s32 sp10;
s32 sp14;
s32 temp_v0_2;
void *temp_v0;
s32 ot;
s32 depth4;
register u16 *bidx __asm__("$8");
register u32 mask1 __asm__("$7");
register s32 rgb __asm__("$16");
register u32 tag0 __asm__("$4");
rgb = arg2;
__asm__("" : "=r"(rgb) : "0"(rgb));
temp_v0 = func_80010A08(0x10);
*(u8 *)((u8 *)temp_v0 + 3) = 3;
*(s32 *)((u8 *)temp_v0 + 4) = rgb;
*(u8 *)((u8 *)temp_v0 + 7) = 0x42;
func_8004914C(&D_800AF648);
func_800491AC(&D_800AF648);
temp_v0_2 = RotTransPers(arg0, temp_v0 + 8, &sp10, &sp14);
if ((temp_v0_2 > 0) && (sp14 >= 0) &&
(RotTransPers(arg1, temp_v0 + 0xC, &sp10, &sp14) > 0) && (sp14 >= 0)) {
mask1 = 0xFFFFFF;
bidx = (u16 *)&D_800B9A02;
depth4 = temp_v0_2 * 4;
tag0 = *(u32 *)temp_v0;
*(u32 *)temp_v0 = (tag0 & 0xFF000000) |
(*(u32 *)(depth4 + aD800A651C[*bidx].a) & mask1);
ot = aD800A651C[*bidx].a;
*(u32 *)(depth4 + ot) =
(*(u32 *)(depth4 + ot) & 0xFF000000) | ((u32)temp_v0 & mask1);
func_80016638(&D_800A6518[*bidx * 20], temp_v0_2, 1);
}
}
+9 -1
View File
@@ -4680,7 +4680,15 @@ void func_8017F490(s32 p) {
}
INCLUDE_ASM("asm/ov_SC06_020/nonmatchings/ov_SC06_020_jr_8017C24C", func_8017F570);
extern void func_8012A828(s32 a0, void *a1);
extern u8 D_801B5B88[];
void func_8017F570(s32 param_1) {
*(s16 *)(param_1 + 2) = 27;
func_8012A828(param_1, D_801B5B88);
*(s32 *)(param_1 + 0x1C) = 0x20;
}
extern s32 func_801833F4(void *a0, s32 a1, s32 a2);
extern s32 func_8012BCCC(s32 a0);
+20 -1
View File
@@ -4775,7 +4775,26 @@ void func_80183138(void *a0) {
}
INCLUDE_ASM("asm/ov_SC06_025/nonmatchings/ov_SC06_025_jr_8017EEC4", func_80183228);
extern void func_8012BE54(s32 a0);
extern s32 func_80178B18(s32 param_1, s32 param_2);
extern void func_8002D4C8(s32 a0, s32 a1);
extern s32 D_801892CC;
void func_80183228(void *a0) {
u16 *v0;
v0 = *(u16 **)((s32)a0 + 0x20);
*(u16 *)((s32)v0 + 0x1C) = 0xC00;
*(u16 *)((s32)v0 + 0x1A) = 0xC00;
*(u16 *)((s32)v0 + 0x18) = 0xC00;
if (((s32 (*)(s32))func_8012BE54)(a0) < 0x6401) {
func_80178B18((s32)a0, (s32)&D_801892CC);
*(u16 *)((s32)a0 + 0x2) = 2;
*(u16 *)((s32)a0 + 0x34) = 0;
func_8002D4C8(0xB01, 0);
}
}
void func_80183298(void *a0)
{
+12 -1
View File
@@ -3604,7 +3604,18 @@ void func_8017D8B8(s32 param_1)
}
INCLUDE_ASM("asm/ov_SC06_027/nonmatchings/ov_SC06_027_jr_8017BEBC", func_8017D92C);
extern void func_8012A828(s32 a0, void *a1);
extern s32 D_8019D2B8;
extern s32 D_80199B1C;
void func_8017D92C(s32 param_1)
{
if (D_8019D2B8 == 1) {
D_8019D2B8 = 0;
func_8012A828(param_1, &D_80199B1C);
}
}
INCLUDE_ASM("asm/ov_SC06_027/nonmatchings/ov_SC06_027_jr_8017BEBC", func_8017D96C);
+9 -1
View File
@@ -3183,7 +3183,15 @@ void func_80183DA8(s32 p) {
}
INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033_jr_801836FC", func_80183E88);
extern void func_8012A828(s32 a0, void *a1);
extern u8 D_801C6B7C[];
void func_80183E88(s32 param_1) {
*(s16 *)(param_1 + 2) = 0x1B;
func_8012A828(param_1, D_801C6B7C);
*(s32 *)(param_1 + 0x1C) = 0x20;
}
extern void func_8012F214(s32, s32, s32);
extern s32 func_8012BCCC(s32 a0);
+16 -1
View File
@@ -5867,7 +5867,22 @@ void func_80182E48(int param_1)
}
INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002_jr_8017C8D0", func_80182F2C);
void func_80182F2C(void *a0)
{
extern u16 D_8019FF8A;
s32 q;
u16 g;
func_80182818(a0);
q = *(s32 *)((s32)a0 + 0x20);
*(u16 *)(q + 0x12) = *(u16 *)(q + 0x12) + 0x80;
g = D_8019FF8A;
*(u16 *)((s32)a0 + 0xE4) = *(u16 *)((s32)a0 + 0xE4) + *(u16 *)((s32)a0 + 0xE8);
if (g & 0x4000) {
func_8018260C((s32)a0);
}
}
void func_80182F94(s32 arg0) {
register s32 s0 __asm__("$16") = arg0;
+42 -1
View File
@@ -4801,7 +4801,48 @@ void func_801828A4(s32 t)
}
INCLUDE_ASM("asm/ov_SC07_006/nonmatchings/ov_SC07_006_jr_8017BEBC", func_80182B8C);
extern s32 D_801BFCEC;
extern u8 D_8018E510[];
extern u8 D_8018DF10;
extern void func_8017D8A4(s32 a0, void *a1, void *a2, s32 a3, s32 a4);
extern void func_80143C74(s32 a0, s32 a1);
extern void func_80128EA8(s32 a0, s32 a1, s32 a2);
extern s32 func_8012C658(s32 a0, s32 a1, s32 a2);
extern s32 rand(void);
void func_80182B8C(s32 param_1, s32 param_2) {
s32 *q;
s32 work;
s32 rnd;
s32 t;
s32 u;
q = &D_801BFCEC;
func_8017D8A4(*q + 0x48, D_8018E510, D_8018E510 + 0x24, param_2, 1);
func_8017D8A4(*q + 0x54, D_8018E510 + 0xC, D_8018E510 + 0x30, param_2, 1);
func_8017D8A4(*q + 0x60, D_8018E510 + 0x18, D_8018E510 + 0x3C, param_2, 1);
work = ((s32 (*)())func_80143C74)(param_1, 0);
if (work != 0) {
*(u16 *)(work + 0xE) = *(u16 *)(work + 0xE) - *(u16 *)(D_801BFCEC + 0x48);
rnd = rand();
t = *(u16 *)(D_801BFCEC + 0x4A) - 0x20;
*(u16 *)(work + 0xA) = *(u16 *)(work + 0xA) + (t + (rnd & 0x3F));
rnd = rand();
u = *(u16 *)(D_801BFCEC + 0x4C) - 0x20;
*(u16 *)(work + 6) = *(u16 *)(work + 6) + (u + (rnd & 0x3F));
rnd = rand() & 0xFF;
*(u32 *)(work + 0x10) = (rnd - 0x80) << 10;
rnd = rand() & 3;
*(u16 *)(work + 0x16) = -(rnd + 4);
*(u32 *)(work + 0x18) = (rand() & 0xFF) << 11;
func_80128EA8(*(u32 *)(work + 0x20), (void *)(work + 0xD0), &D_8018DF10);
func_8012C658(0x3AC, 6, work);
func_8012C658(0x3AC, 6, work);
func_8012C658(0x3AC, 6, work);
func_8012C658(0x3AC, 6, work);
}
}
INCLUDE_ASM("asm/ov_SC07_006/nonmatchings/ov_SC07_006_jr_8017BEBC", func_80182D4C);
+30 -2
View File
@@ -4462,7 +4462,23 @@ s32 func_8017E4B0(void * arg0)
}
INCLUDE_ASM("asm/ov_SC07_007/nonmatchings/ov_SC07_007_jr_8017BEBC", func_8017E4C4);
extern s32 D_801151D4;
void func_8017E4C4(s32 a0) {
s32 p;
s32 t;
p = D_801151D4;
t = *(s32 *)(p + 0x10) - 2;
*(s32 *)(p + 0x10) = t;
*(s32 *)(p + 0x14) = t;
if (*(s32 *)(p + 0x10) < 300) {
*(s32 *)(p + 0x10) = 300;
*(s32 *)(p + 0x14) = 300;
func_80016714((void *)a0, 0x18);
}
}
extern s32 D_801151D4;
@@ -7062,7 +7078,19 @@ void func_801817D0(s32 a0) {
}
INCLUDE_ASM("asm/ov_SC07_007/nonmatchings/ov_SC07_007_jr_8017BEBC", func_80181828);
void func_80181828(s32 a0) {
extern s32 func_8012BEE8(s32 a0);
extern s32 func_8012AD50(void *a0);
extern void func_80181960();
register s32 s0 __asm__("$16");
if (func_8012BEE8(a0) != 0) {
*(u16 *)(a0 + 0xFC) = 0;
func_8012AD50((void *)a0);
}
func_80181960((void *)0xFFFFFF, 2, 0);
}
INCLUDE_ASM("asm/ov_SC07_007/nonmatchings/ov_SC07_007_jr_8017BEBC", func_80181878);
+29 -2
View File
@@ -3901,7 +3901,24 @@ INCLUDE_ASM("asm/ov_SC07_009/nonmatchings/ov_SC07_009_jr_8017AE2C", func_8017D06
void func_8017D0CC(void) {
}
INCLUDE_ASM("asm/ov_SC07_009/nonmatchings/ov_SC07_009_jr_8017AE2C", func_8017D0D4);
extern s16 D_800B9ABA[];
extern s16 D_801274EA;
extern s16 D_801274F2;
void func_8017D0D4(s32 a0)
{
s16 *p;
if (func_80171A88(a0) != 0) {
func_80171928((void *)a0);
return;
}
p = &D_801274EA;
(*p) += 4;
D_801274F2 += 8;
D_800B9ABA[0] += 2;
}
extern void func_8016EE40(s32 a0, s32 a1, s32 a2);
void func_8017D150(void) {
@@ -4300,7 +4317,17 @@ s32 func_8017D994(s32 *arg0) {
INCLUDE_ASM("asm/ov_SC07_009/nonmatchings/ov_SC07_009_jr_8017AE2C", func_8017DA0C);
INCLUDE_ASM("asm/ov_SC07_009/nonmatchings/ov_SC07_009_jr_8017AE2C", func_8017DA7C);
void func_8017DA7C(s32 *arg0) {
extern void func_800178C8(void *a0);
*(s16 *)((u8 *)arg0 + 4) = 4;
*(s32 *)((u8 *)arg0 + 0x40) = 0x60000000;
func_800178C8(arg0);
*(s16 *)((u8 *)arg0 + 4) = 3;
*(s32 *)((u8 *)arg0 + 0x40) = 0x50000000;
func_800178C8(arg0);
}
extern void (*D_801819E4[])(void);