diff --git a/src/md_MAIN_003/md_MAIN_003.c b/src/md_MAIN_003/md_MAIN_003.c index 9a0dc9cd9..aaff3bc68 100644 --- a/src/md_MAIN_003/md_MAIN_003.c +++ b/src/md_MAIN_003/md_MAIN_003.c @@ -564,7 +564,69 @@ INCLUDE_ASM("asm/md_MAIN_003/nonmatchings/md_MAIN_003", func_800D06BC); INCLUDE_ASM("asm/md_MAIN_003/nonmatchings/md_MAIN_003", func_800D0740); -INCLUDE_ASM("asm/md_MAIN_003/nonmatchings/md_MAIN_003", func_800D09A0); +__asm__(".text\n.align 2\n.globl func_800D09A0\n.ent\tfunc_800D09A0\n" +"func_800D09A0:\n.frame $sp,32,$31\n.mask 0xC0010000,-16\n.fmask 0,0\n" +".set\tnoreorder\n" +"addiu $sp, $sp, -32\n" +"sw $ra, 24($sp)\n" +"sw $fp, 20($sp)\n" +"sw $s0, 16($sp)\n" +"addu $fp, $sp, $zero\n" +"lui $s0, %hi(D_800AF630)\n" +"addiu $s0, $s0, %lo(D_800AF630)\n" +"jal func_800D12D0\n" +"nop\n" +"lui $v0, %hi(D_800EC898)\n" +"lhu $v0, %lo(D_800EC898)($v0)\n" +"nop\n" +"addiu $v1, $v0, 1\n" +"addu $v0, $v1, $zero\n" +"lui $at, %hi(D_800EC898)\n" +"sh $v0, %lo(D_800EC898)($at)\n" +"lui $v0, %hi(D_800EC898)\n" +"lhu $v0, %lo(D_800EC898)($v0)\n" +"nop\n" +"andi $v1, $v0, 4\n" +"sll $a0, $v1, 16\n" +"sra $v0, $a0, 16\n" +"beqz $v0, .L800D0A24\n" +"nop\n" +"lui $v0, %hi(D_800EC894)\n" +"lh $v0, %lo(D_800EC894)($v0)\n" +"nop\n" +"addu $a0, $v0, $zero\n" +"addiu $a1, $zero, 1\n" +"jal func_800D1D14\n" +"nop\n" +"j .L800D0A40\n" +"nop\n" +".L800D0A24:\n" +"lui $v0, %hi(D_800EC894)\n" +"lh $v0, %lo(D_800EC894)($v0)\n" +"nop\n" +"addu $a0, $v0, $zero\n" +"addu $a1, $zero, $zero\n" +"jal func_800D1D14\n" +"nop\n" +".L800D0A40:\n" +"lui $v0, %hi(D_800EC898)\n" +"lh $v0, %lo(D_800EC898)($v0)\n" +"nop\n" +"slti $v1, $v0, 33\n" +"bnez $v1, .L800D0A60\n" +"nop\n" +"jal func_800118AC\n" +"nop\n" +".L800D0A60:\n" +"addu $sp, $fp, $zero\n" +"lw $ra, 24($sp)\n" +"lw $fp, 20($sp)\n" +"lw $s0, 16($sp)\n" +"addiu $sp, $sp, 32\n" +"jr $ra\n" +"nop\n" +".set\treorder\n.end\tfunc_800D09A0\n"); + INCLUDE_ASM("asm/md_MAIN_003/nonmatchings/md_MAIN_003", func_800D0A7C); diff --git a/src/ov_SC03_001/ov_SC03_001_jr_80184F64.c b/src/ov_SC03_001/ov_SC03_001_jr_80184F64.c index a03197feb..84b4c3b34 100644 --- a/src/ov_SC03_001/ov_SC03_001_jr_80184F64.c +++ b/src/ov_SC03_001/ov_SC03_001_jr_80184F64.c @@ -3227,9 +3227,36 @@ extern void func_80187778(s32*, s32); } -INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001_jr_80184F64", func_80185474); +extern int func_80178970(void); +extern void func_80178D18(void); +extern void func_8012A828(s32, s32); + +void func_80185474(void *arg0) { + + extern short D_801C36E8; + if (func_80178970() != 0) { + ((void (*)(s32))func_80178D18)((s32)arg0); + *(short *)((char *)arg0 + 0x2) = 2; + ((void (*)(s32, s32))func_8012A828)((int)arg0, (int)&D_801C36E8); + *(short *)((char *)arg0 + 0x34) = 2; + } +} + + +extern int func_80178970(void); +extern void func_80178D18(void); +extern void func_8012A828(s32, s32); + +void func_801854D0(void *arg0) { + extern short D_801C36E8; + if (func_80178970() != 0) { + ((void (*)(s32))func_80178D18)((s32)arg0); + *(short *)((char *)arg0 + 0x2) = 9; + ((void (*)(s32, s32))func_8012A828)((s32)arg0, (s32)&D_801C36E8); + *(short *)((char *)arg0 + 0x34) = 2; + } +} -INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001_jr_80184F64", func_801854D0); extern s32 func_801788B8(s32 arg0, s32 arg1); extern s32 func_801855CC(void *a0); @@ -3694,7 +3721,20 @@ extern void func_80178CBC(s32 *a0, s32 a1); } -INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001_jr_80184F64", func_801860CC); +void func_801860CC(void *arg0) { + extern int func_80178970(void); + extern void func_80178D18(void); + extern void func_8012A828(s32, s32); + extern short D_801C36E8; + + if (func_80178970() != 0) { + ((void (*)(s32))func_80178D18)((s32)arg0); + *(short *)((char *)arg0 + 0x2) = 27; + *(short *)((char *)arg0 + 0x34) = 2; + ((void (*)(s32 *, s32))func_8012A828)((s32 *)arg0, (s32)&D_801C36E8); + } +} + extern void func_8012C1B8(void); extern s32 func_80185C9C(void *a0); diff --git a/src/ov_SC05_017/ov_SC05_017_jr_8017AE2C.c b/src/ov_SC05_017/ov_SC05_017_jr_8017AE2C.c index 3af9caf31..ca114b970 100644 --- a/src/ov_SC05_017/ov_SC05_017_jr_8017AE2C.c +++ b/src/ov_SC05_017/ov_SC05_017_jr_8017AE2C.c @@ -6043,7 +6043,24 @@ extern void func_80178CBC(s32 a0, s32 a1); } -INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017_jr_8017AE2C", func_8017FFE8); +extern int func_80178970(void); +extern void func_80178D18(void); +extern void func_8012A828(s32, s32); + +void func_8017FFE8(void *arg0) { + extern u16 D_801ECE68; + extern u16 D_801ECE6A; + extern short D_801B9A64; + void *s0 = arg0; + + if (func_80178970() != 0) { + ((void (*)(s32))func_80178D18)((s32)s0); + *(short *)((char *)s0 + 0x2) = D_801ECE68; + *(short *)((char *)s0 + 0x34) = D_801ECE6A; + ((void (*)(s32, s32))func_8012A828)((s32)s0, (s32)&D_801B9A64); + } +} + extern void func_8012E88C(s32); diff --git a/src/ov_SC05_017/ov_SC05_017_jr_801808D4.c b/src/ov_SC05_017/ov_SC05_017_jr_801808D4.c index cd04ed01b..46a635639 100644 --- a/src/ov_SC05_017/ov_SC05_017_jr_801808D4.c +++ b/src/ov_SC05_017/ov_SC05_017_jr_801808D4.c @@ -3502,7 +3502,24 @@ extern void func_80178CBC(s32 a0, s32 a1); } -INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017_jr_801808D4", func_80181490); +extern int func_80178970(void); +extern void func_80178D18(void); +extern void func_8012A828(s32, s32); + +void func_80181490(void *arg0) +{ + extern short D_801ECE78; + extern short D_801ECE7A; + extern short D_801B9A64; + + if (func_80178970() != 0) { + ((void (*)(s32))func_80178D18)((s32)arg0); + *(short *)((char *)arg0 + 0x2) = D_801ECE78; + *(short *)((char *)arg0 + 0x34) = D_801ECE7A; + ((void (*)(s32 *, s32))func_8012A828)((s32 *)arg0, (s32)&D_801B9A64); + } +} +