Merge pull request #69 from DavidSM64/davids-branch

(7.29%) Decompiled unknown_0C7F40 & unknown_0C7F50
This commit is contained in:
David Benepe
2020-08-09 00:33:30 -05:00
committed by GitHub
11 changed files with 72 additions and 168 deletions
@@ -1,7 +0,0 @@
glabel D_800C7340
/* 0C7F40 800C7340 03E00008 */ jr $ra
/* 0C7F44 800C7344 00001025 */ move $v0, $zero
/* 0C7F48 800C7348 00000000 */ nop
/* 0C7F4C 800C734C 00000000 */ nop
@@ -1,53 +0,0 @@
glabel D_800C74A0
/* 0C80A0 800C74A0 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 0C80A4 800C74A4 AFB50028 */ sw $s5, 0x28($sp)
/* 0C80A8 800C74A8 AFB40024 */ sw $s4, 0x24($sp)
/* 0C80AC 800C74AC AFB30020 */ sw $s3, 0x20($sp)
/* 0C80B0 800C74B0 AFB00014 */ sw $s0, 0x14($sp)
/* 0C80B4 800C74B4 AFB2001C */ sw $s2, 0x1c($sp)
/* 0C80B8 800C74B8 AFB10018 */ sw $s1, 0x18($sp)
/* 0C80BC 800C74BC 3C108013 */ lui $s0, %hi(D_8012ACA0) # $s0, 0x8013
/* 0C80C0 800C74C0 3C13800E */ lui $s3, %hi(D_800E3774) # $s3, 0x800e
/* 0C80C4 800C74C4 3C14800E */ lui $s4, %hi(D_800E3778) # $s4, 0x800e
/* 0C80C8 800C74C8 3C15800E */ lui $s5, %hi(D_800E3770) # $s5, 0x800e
/* 0C80CC 800C74CC AFBF002C */ sw $ra, 0x2c($sp)
/* 0C80D0 800C74D0 AFA40038 */ sw $a0, 0x38($sp)
/* 0C80D4 800C74D4 AFA00034 */ sw $zero, 0x34($sp)
/* 0C80D8 800C74D8 26B53770 */ addiu $s5, %lo(D_800E3770) # addiu $s5, $s5, 0x3770
/* 0C80DC 800C74DC 26943778 */ addiu $s4, %lo(D_800E3778) # addiu $s4, $s4, 0x3778
/* 0C80E0 800C74E0 26733774 */ addiu $s3, %lo(D_800E3774) # addiu $s3, $s3, 0x3774
/* 0C80E4 800C74E4 2610ACA0 */ addiu $s0, %lo(D_8012ACA0) # addiu $s0, $s0, -0x5360
/* 0C80E8 800C74E8 27B10034 */ addiu $s1, $sp, 0x34
/* 0C80EC 800C74EC 2412000A */ li $s2, 10
.L800C74F0:
/* 0C80F0 800C74F0 02002025 */ move $a0, $s0
.L800C74F4:
/* 0C80F4 800C74F4 02202825 */ move $a1, $s1
/* 0C80F8 800C74F8 0C0322EC */ jal osRecvMesg
/* 0C80FC 800C74FC 24060001 */ li $a2, 1
/* 0C8100 800C7500 8FAE0034 */ lw $t6, 0x34($sp)
/* 0C8104 800C7504 00000000 */ nop
/* 0C8108 800C7508 15D2FFFA */ bne $t6, $s2, .L800C74F4
/* 0C810C 800C750C 02002025 */ move $a0, $s0
/* 0C8110 800C7510 8E640000 */ lw $a0, ($s3)
/* 0C8114 800C7514 8E860000 */ lw $a2, ($s4)
/* 0C8118 800C7518 0C01B8BA */ jal func_8006E2E8
/* 0C811C 800C751C 2405FFFF */ li $a1, -1
/* 0C8120 800C7520 1000FFF3 */ b .L800C74F0
/* 0C8124 800C7524 AEA00000 */ sw $zero, ($s5)
/* 0C8128 800C7528 00000000 */ nop
/* 0C812C 800C752C 00000000 */ nop
/* 0C8130 800C7530 8FBF002C */ lw $ra, 0x2c($sp)
/* 0C8134 800C7534 8FB00014 */ lw $s0, 0x14($sp)
/* 0C8138 800C7538 8FB10018 */ lw $s1, 0x18($sp)
/* 0C813C 800C753C 8FB2001C */ lw $s2, 0x1c($sp)
/* 0C8140 800C7540 8FB30020 */ lw $s3, 0x20($sp)
/* 0C8144 800C7544 8FB40024 */ lw $s4, 0x24($sp)
/* 0C8148 800C7548 8FB50028 */ lw $s5, 0x28($sp)
/* 0C814C 800C754C 03E00008 */ jr $ra
/* 0C8150 800C7550 27BD0038 */ addiu $sp, $sp, 0x38
/* 0C8154 800C7554 00000000 */ nop
/* 0C8158 800C7558 00000000 */ nop
/* 0C815C 800C755C 00000000 */ nop
@@ -1,29 +0,0 @@
glabel func_800C7350
/* 0C7F50 800C7350 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 0C7F54 800C7354 AFBF001C */ sw $ra, 0x1c($sp)
/* 0C7F58 800C7358 3C048013 */ lui $a0, %hi(D_8012ACA0) # $a0, 0x8013
/* 0C7F5C 800C735C 3C058013 */ lui $a1, %hi(D_8012ACB8) # $a1, 0x8013
/* 0C7F60 800C7360 24A5ACB8 */ addiu $a1, %lo(D_8012ACB8) # addiu $a1, $a1, -0x5348
/* 0C7F64 800C7364 2484ACA0 */ addiu $a0, %lo(D_8012ACA0) # addiu $a0, $a0, -0x5360
/* 0C7F68 800C7368 0C032208 */ jal osCreateMesgQueue
/* 0C7F6C 800C736C 24060002 */ li $a2, 2
/* 0C7F70 800C7370 3C0E8013 */ lui $t6, %hi(D_8012CCC0) # $t6, 0x8013
/* 0C7F74 800C7374 25CECCC0 */ addiu $t6, %lo(D_8012CCC0) # addiu $t6, $t6, -0x3340
/* 0C7F78 800C7378 3C048013 */ lui $a0, %hi(D_8012AAF0) # $a0, 0x8013
/* 0C7F7C 800C737C 3C06800C */ lui $a2, %hi(D_800C74A0) # $a2, 0x800c
/* 0C7F80 800C7380 240F0008 */ li $t7, 8
/* 0C7F84 800C7384 AFAF0014 */ sw $t7, 0x14($sp)
/* 0C7F88 800C7388 24C674A0 */ addiu $a2, %lo(D_800C74A0) # addiu $a2, $a2, 0x74a0
/* 0C7F8C 800C738C 2484AAF0 */ addiu $a0, %lo(D_8012AAF0) # addiu $a0, $a0, -0x5510
/* 0C7F90 800C7390 AFAE0010 */ sw $t6, 0x10($sp)
/* 0C7F94 800C7394 2405001E */ li $a1, 30
/* 0C7F98 800C7398 0C032214 */ jal osCreateThread
/* 0C7F9C 800C739C 00003825 */ move $a3, $zero
/* 0C7FA0 800C73A0 3C048013 */ lui $a0, %hi(D_8012AAF0) # $a0, 0x8013
/* 0C7FA4 800C73A4 0C032268 */ jal osStartThread
/* 0C7FA8 800C73A8 2484AAF0 */ addiu $a0, %lo(D_8012AAF0) # addiu $a0, $a0, -0x5510
/* 0C7FAC 800C73AC 8FBF001C */ lw $ra, 0x1c($sp)
/* 0C7FB0 800C73B0 27BD0020 */ addiu $sp, $sp, 0x20
/* 0C7FB4 800C73B4 03E00008 */ jr $ra
/* 0C7FB8 800C73B8 00000000 */ nop
@@ -1,11 +0,0 @@
glabel func_800C73BC
/* 0C7FBC 800C73BC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0C7FC0 800C73C0 AFBF0014 */ sw $ra, 0x14($sp)
/* 0C7FC4 800C73C4 3C048013 */ lui $a0, %hi(D_8012AAF0) # $a0, 0x8013
/* 0C7FC8 800C73C8 0C0322BC */ jal osStopThread
/* 0C7FCC 800C73CC 2484AAF0 */ addiu $a0, %lo(D_8012AAF0) # addiu $a0, $a0, -0x5510
/* 0C7FD0 800C73D0 8FBF0014 */ lw $ra, 0x14($sp)
/* 0C7FD4 800C73D4 27BD0018 */ addiu $sp, $sp, 0x18
/* 0C7FD8 800C73D8 03E00008 */ jr $ra
/* 0C7FDC 800C73DC 00000000 */ nop
@@ -1,6 +0,0 @@
glabel func_800C73E0
/* 0C7FE0 800C73E0 3C02800E */ lui $v0, %hi(D_800E3770) # $v0, 0x800e
/* 0C7FE4 800C73E4 8C423770 */ lw $v0, %lo(D_800E3770)($v0)
/* 0C7FE8 800C73E8 03E00008 */ jr $ra
/* 0C7FEC 800C73EC 00000000 */ nop
@@ -1,30 +0,0 @@
glabel func_800C73F0
/* 0C7FF0 800C73F0 3C0E800E */ lui $t6, %hi(D_800E3770) # $t6, 0x800e
/* 0C7FF4 800C73F4 8DCE3770 */ lw $t6, %lo(D_800E3770)($t6)
/* 0C7FF8 800C73F8 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0C7FFC 800C73FC 11C0000E */ beqz $t6, .L800C7438
/* 0C8000 800C7400 AFBF0014 */ sw $ra, 0x14($sp)
/* 0C8004 800C7404 3C03800E */ lui $v1, %hi(D_800E377C) # $v1, 0x800e
/* 0C8008 800C7408 2463377C */ addiu $v1, %lo(D_800E377C) # addiu $v1, $v1, 0x377c
/* 0C800C 800C740C 8C620000 */ lw $v0, ($v1)
/* 0C8010 800C7410 00000000 */ nop
/* 0C8014 800C7414 18400008 */ blez $v0, .L800C7438
/* 0C8018 800C7418 244FFFFF */ addiu $t7, $v0, -1
/* 0C801C 800C741C 15E00006 */ bnez $t7, .L800C7438
/* 0C8020 800C7420 AC6F0000 */ sw $t7, ($v1)
/* 0C8024 800C7424 3C048013 */ lui $a0, %hi(D_8012ACA0) # $a0, 0x8013
/* 0C8028 800C7428 2484ACA0 */ addiu $a0, %lo(D_8012ACA0) # addiu $a0, $a0, -0x5360
/* 0C802C 800C742C 2405000A */ li $a1, 10
/* 0C8030 800C7430 0C03238C */ jal osSendMesg
/* 0C8034 800C7434 00003025 */ move $a2, $zero
.L800C7438:
/* 0C8038 800C7438 8FBF0014 */ lw $ra, 0x14($sp)
/* 0C803C 800C743C 27BD0018 */ addiu $sp, $sp, 0x18
/* 0C8040 800C7440 03E00008 */ jr $ra
/* 0C8044 800C7444 00000000 */ nop
/* 0C8048 800C7448 3C02800E */ lui $v0, %hi(D_800E377C) # $v0, 0x800e
/* 0C804C 800C744C 8C42377C */ lw $v0, %lo(D_800E377C)($v0)
/* 0C8050 800C7450 03E00008 */ jr $ra
/* 0C8054 800C7454 00000000 */ nop
@@ -1,22 +0,0 @@
glabel func_800C7458
/* 0C8058 800C7458 3C03800E */ lui $v1, %hi(D_800E3770) # $v1, 0x800e
/* 0C805C 800C745C 24633770 */ addiu $v1, %lo(D_800E3770) # addiu $v1, $v1, 0x3770
/* 0C8060 800C7460 8C6E0000 */ lw $t6, ($v1)
/* 0C8064 800C7464 240F0004 */ li $t7, 4
/* 0C8068 800C7468 15C0000A */ bnez $t6, .L800C7494
/* 0C806C 800C746C 3C01800E */ lui $at, %hi(D_800E377C) # $at, 0x800e
/* 0C8070 800C7470 AC2F377C */ sw $t7, %lo(D_800E377C)($at)
/* 0C8074 800C7474 3C01800E */ lui $at, %hi(D_800E3774) # $at, 0x800e
/* 0C8078 800C7478 AC243774 */ sw $a0, %lo(D_800E3774)($at)
/* 0C807C 800C747C 3C01800E */ lui $at, %hi(D_800E3778) # $at, 0x800e
/* 0C8080 800C7480 AC253778 */ sw $a1, %lo(D_800E3778)($at)
/* 0C8084 800C7484 24180001 */ li $t8, 1
/* 0C8088 800C7488 AC780000 */ sw $t8, ($v1)
/* 0C808C 800C748C 03E00008 */ jr $ra
/* 0C8090 800C7490 24020001 */ li $v0, 1
.L800C7494:
/* 0C8094 800C7494 00001025 */ move $v0, $zero
/* 0C8098 800C7498 03E00008 */ jr $ra
/* 0C809C 800C749C 00000000 */ nop
@@ -161,9 +161,9 @@ glabel osInitialize
/* 0CD3FC 800CC7FC AFAB0034 */ sw $t3, 0x34($sp)
/* 0CD400 800CC800 240D0001 */ li $t5, 1
/* 0CD404 800CC804 3C01800E */ lui $at, %hi(D_800E38B0) # $at, 0x800e
/* 0CD408 800CC808 3C05800C */ lui $a1, %hi(D_800C7340) # $a1, 0x800c
/* 0CD408 800CC808 3C05800C */ lui $a1, %hi(func_800C7340) # $a1, 0x800c
/* 0CD40C 800CC80C AC2D38B0 */ sw $t5, %lo(D_800E38B0)($at)
/* 0CD410 800CC810 24A57340 */ addiu $a1, %lo(D_800C7340) # addiu $a1, $a1, 0x7340
/* 0CD410 800CC810 24A57340 */ addiu $a1, %lo(func_800C7340) # addiu $a1, $a1, 0x7340
/* 0CD414 800CC814 0C0351FC */ jal func_800D47F0
/* 0CD418 800CC818 24040001 */ li $a0, 1
/* 0CD41C 800CC81C 10000003 */ b .L800CC82C
+3 -1
View File
@@ -4,4 +4,6 @@
#include "types.h"
#include "macros.h"
GLOBAL_ASM("asm/non_matchings/unknown_0C7F40/D_800C7340.s")
s32 func_800C7340(void) {
return 0;
}
+66 -6
View File
@@ -3,10 +3,70 @@
#include "types.h"
#include "macros.h"
#include "libultra_internal.h"
GLOBAL_ASM("asm/non_matchings/unknown_0C7F50/func_800C7350.s")
GLOBAL_ASM("asm/non_matchings/unknown_0C7F50/func_800C73BC.s")
GLOBAL_ASM("asm/non_matchings/unknown_0C7F50/func_800C73E0.s")
GLOBAL_ASM("asm/non_matchings/unknown_0C7F50/func_800C73F0.s")
GLOBAL_ASM("asm/non_matchings/unknown_0C7F50/func_800C7458.s")
GLOBAL_ASM("asm/non_matchings/unknown_0C7F50/D_800C74A0.s")
extern s32 D_800E3770; // boolean
extern s32 D_800E3774;
extern s32 D_800E3778;
extern s32 D_800E377C;
extern OSMesgQueue D_8012ACA0;
extern OSMesg D_8012ACB8;
extern OSThread D_8012AAF0;
extern void *D_8012CCC0;
void func_800C74A0(void *arg);
void func_800C7350(void) {
osCreateMesgQueue(&D_8012ACA0, &D_8012ACB8, 2);
osCreateThread(&D_8012AAF0, 0x1E, &func_800C74A0, 0, &D_8012CCC0, 8);
osStartThread(&D_8012AAF0);
}
void func_800C73BC(void) {
osStopThread(&D_8012AAF0);
}
s32 func_800C73E0(void) {
return D_800E3770;
}
void func_800C73F0(void) {
s32 temp_t7;
if (D_800E3770) {
if (D_800E377C > 0) {
D_800E377C--;
if (D_800E377C == 0) {
osSendMesg(&D_8012ACA0, (OSMesg)10, 0);
}
}
}
}
// Unused?
s32 func_800C7448(void) {
return D_800E377C;
}
s32 func_800C7458(s32 arg0, s32 arg1) {
if (!D_800E3770) {
D_800E377C = 4;
D_800E3774 = arg0;
D_800E3778 = arg1;
D_800E3770 = 1;
return 1;
}
return 0;
}
void func_800C74A0(void *arg) {
OSMesg sp34 = 0;
while(1){
do {
osRecvMesg(&D_8012ACA0, &sp34, 1);
} while(sp34 != (OSMesg)10);
func_8006E2E8(D_800E3774, -1, D_800E3778);
D_800E3770 = 0;
}
}
+1 -1
View File
@@ -45,7 +45,7 @@ D_8006C330 = 0x8006C330;
D_800795AC = 0x800795AC;
D_8008F618 = 0x8008F618;
D_800B6FC4 = 0x800B6FC4;
D_800C7340 = 0x800C7340;
func_800C7340 = 0x800C7340;
D_800C74A0 = 0x800C74A0;
D_800C9D40 = 0x800C9D40;
alEnvMixerPull = 0x800CA0D0;