This commit is contained in:
Mittenz
2020-08-19 01:38:14 -05:00
parent fe6b942d61
commit 999f9809f9
7 changed files with 38 additions and 66 deletions
+1 -1
View File
@@ -94,7 +94,7 @@ glabel __scMain
/* 07A2FC 800796FC 02602025 */ move $a0, $s3
/* 07A300 80079700 8FA50054 */ lw $a1, 0x54($sp)
/* 07A304 80079704 8FA60050 */ lw $a2, 0x50($sp)
/* 07A308 80079708 0C01E7EA */ jal func_80079FA8
/* 07A308 80079708 0C01E7EA */ jal __scExec
/* 07A30C 8007970C 02402025 */ move $a0, $s2
/* 07A310 80079710 1000FFBC */ b .L80079604
/* 07A314 80079714 02602025 */ move $a0, $s3
@@ -37,7 +37,7 @@ glabel func_80079760
/* 07A3E4 800797E4 8FBF0014 */ lw $ra, 0x14($sp)
/* 07A3E8 800797E8 8FA50020 */ lw $a1, 0x20($sp)
/* 07A3EC 800797EC 8FA6001C */ lw $a2, 0x1c($sp)
/* 07A3F0 800797F0 0C01E7EA */ jal func_80079FA8
/* 07A3F0 800797F0 0C01E7EA */ jal __scExec
/* 07A3F4 800797F4 00000000 */ nop
/* 07A3F8 800797F8 8FBF0014 */ lw $ra, 0x14($sp)
.L800797FC:
@@ -122,7 +122,7 @@ glabel func_80079818
/* 07A5CC 800799CC 00000000 */ nop
/* 07A5D0 800799D0 8FA50038 */ lw $a1, 0x38($sp)
/* 07A5D4 800799D4 8FA60034 */ lw $a2, 0x34($sp)
/* 07A5D8 800799D8 0C01E7EA */ jal func_80079FA8
/* 07A5D8 800799D8 0C01E7EA */ jal __scExec
/* 07A5DC 800799DC 02202025 */ move $a0, $s1
.L800799E0:
/* 07A5E0 800799E0 3C0D800E */ lui $t5, %hi(D_800DE764) # $t5, 0x800e
@@ -137,7 +137,7 @@ glabel func_80079B44
/* 07A938 80079D38 10470005 */ beq $v0, $a3, .L80079D50
/* 07A93C 80079D3C 8FBF001C */ lw $ra, 0x1c($sp)
/* 07A940 80079D40 8FA6002C */ lw $a2, 0x2c($sp)
/* 07A944 80079D44 0C01E7EA */ jal func_80079FA8
/* 07A944 80079D44 0C01E7EA */ jal __scExec
/* 07A948 80079D48 02002025 */ move $a0, $s0
/* 07A94C 80079D4C 8FBF001C */ lw $ra, 0x1c($sp)
.L80079D50:
@@ -28,7 +28,7 @@ glabel func_80079D5C
/* 07A9C4 80079DC4 8FBF0014 */ lw $ra, 0x14($sp)
/* 07A9C8 80079DC8 8FA50020 */ lw $a1, 0x20($sp)
/* 07A9CC 80079DCC 8FA6001C */ lw $a2, 0x1c($sp)
/* 07A9D0 80079DD0 0C01E7EA */ jal func_80079FA8
/* 07A9D0 80079DD0 0C01E7EA */ jal __scExec
/* 07A9D4 80079DD4 00000000 */ nop
/* 07A9D8 80079DD8 8FBF0014 */ lw $ra, 0x14($sp)
.L80079DDC:
@@ -1,59 +0,0 @@
glabel func_80079FA8
/* 07ABA8 80079FA8 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 07ABAC 80079FAC AFB10018 */ sw $s1, 0x18($sp)
/* 07ABB0 80079FB0 AFB00014 */ sw $s0, 0x14($sp)
/* 07ABB4 80079FB4 00A08025 */ move $s0, $a1
/* 07ABB8 80079FB8 00C08825 */ move $s1, $a2
/* 07ABBC 80079FBC AFBF001C */ sw $ra, 0x1c($sp)
/* 07ABC0 80079FC0 10A0001D */ beqz $a1, .L8007A038
/* 07ABC4 80079FC4 AFA40028 */ sw $a0, 0x28($sp)
/* 07ABC8 80079FC8 8CAE0010 */ lw $t6, 0x10($a1)
/* 07ABCC 80079FCC 24010002 */ li $at, 2
/* 07ABD0 80079FD0 15C10007 */ bne $t6, $at, .L80079FF0
/* 07ABD4 80079FD4 00000000 */ nop
/* 07ABD8 80079FD8 0C034628 */ jal osWritebackDCacheAll
/* 07ABDC 80079FDC 00000000 */ nop
/* 07ABE0 80079FE0 0C031E34 */ jal osGetCount
/* 07ABE4 80079FE4 00000000 */ nop
/* 07ABE8 80079FE8 3C018012 */ lui $at, %hi(D_80126120) # $at, 0x8012
/* 07ABEC 80079FEC AC226120 */ sw $v0, %lo(D_80126120)($at)
.L80079FF0:
/* 07ABF0 80079FF0 8E0F0004 */ lw $t7, 4($s0)
/* 07ABF4 80079FF4 2401FFCF */ li $at, -49
/* 07ABF8 80079FF8 01E1C024 */ and $t8, $t7, $at
/* 07ABFC 80079FFC AE180004 */ sw $t8, 4($s0)
/* 07AC00 8007A000 26040010 */ addiu $a0, $s0, 0x10
/* 07AC04 8007A004 0C034803 */ jal osSpTaskLoad
/* 07AC08 8007A008 AFA40024 */ sw $a0, 0x24($sp)
/* 07AC0C 8007A00C 8FA40024 */ lw $a0, 0x24($sp)
/* 07AC10 8007A010 0C03485B */ jal osSpTaskStartGo
/* 07AC14 8007A014 00000000 */ nop
/* 07AC18 8007A018 3C01800E */ lui $at, %hi(D_800DE754) # $at, 0x800e
/* 07AC1C 8007A01C AC20E754 */ sw $zero, %lo(D_800DE754)($at)
/* 07AC20 8007A020 8FB90028 */ lw $t9, 0x28($sp)
/* 07AC24 8007A024 3C01800E */ lui $at, %hi(D_800DE758) # $at, 0x800e
/* 07AC28 8007A028 AC20E758 */ sw $zero, %lo(D_800DE758)($at)
/* 07AC2C 8007A02C 16110002 */ bne $s0, $s1, .L8007A038
/* 07AC30 8007A030 AF300274 */ sw $s0, 0x274($t9)
/* 07AC34 8007A034 AF310278 */ sw $s1, 0x278($t9)
.L8007A038:
/* 07AC38 8007A038 1220000D */ beqz $s1, .L8007A070
/* 07AC3C 8007A03C 8FBF001C */ lw $ra, 0x1c($sp)
/* 07AC40 8007A040 1230000B */ beq $s1, $s0, .L8007A070
/* 07AC44 8007A044 8FBF001C */ lw $ra, 0x1c($sp)
/* 07AC48 8007A048 8E28003C */ lw $t0, 0x3c($s1)
/* 07AC4C 8007A04C 8E240038 */ lw $a0, 0x38($s1)
/* 07AC50 8007A050 8D060000 */ lw $a2, ($t0)
/* 07AC54 8007A054 8D070004 */ lw $a3, 4($t0)
/* 07AC58 8007A058 0C034638 */ jal osDpSetNextBuffer
/* 07AC5C 8007A05C 00000000 */ nop
/* 07AC60 8007A060 8FA90028 */ lw $t1, 0x28($sp)
/* 07AC64 8007A064 00000000 */ nop
/* 07AC68 8007A068 AD310278 */ sw $s1, 0x278($t1)
/* 07AC6C 8007A06C 8FBF001C */ lw $ra, 0x1c($sp)
.L8007A070:
/* 07AC70 8007A070 8FB00014 */ lw $s0, 0x14($sp)
/* 07AC74 8007A074 8FB10018 */ lw $s1, 0x18($sp)
/* 07AC78 8007A078 03E00008 */ jr $ra
/* 07AC7C 8007A07C 27BD0028 */ addiu $sp, $sp, 0x28
+33 -2
View File
@@ -59,8 +59,12 @@ typedef struct{
u8 pad00[0x50];
}unk800E3900;
extern u32 D_800DE754;
extern u32 D_800DE758;
extern OSViMode D_800E3900[];//osViModeTable;
extern s32 D_80126120;
void __scMain(void);
void osCreateScheduler(OSSched *sc, void *stack, OSPri priority, u8 mode, u8 numFields){
@@ -111,7 +115,6 @@ void osScAddClient(OSSched *sc, OSScClient *c, OSMesgQueue *msgQ, u8 arg3){
osSetIntMask(mask);
}
void osScRemoveClient(OSSched *sc, OSScClient *c)
{
OSScClient *client = sc->clientList;
@@ -148,7 +151,35 @@ GLOBAL_ASM("asm/non_matchings/unknown_079F50/func_80079D5C.s")
GLOBAL_ASM("asm/non_matchings/unknown_079F50/func_80079DE8.s")
GLOBAL_ASM("asm/non_matchings/unknown_079F50/func_80079E40.s")
GLOBAL_ASM("asm/non_matchings/unknown_079F50/func_80079F40.s")
GLOBAL_ASM("asm/non_matchings/unknown_079F50/func_80079FA8.s")
void __scExec(OSSched *sc, OSScTask *sp, OSScTask *dp)
{
if (sp) {
if (sp->list.t.type == M_AUDTASK) {
osWritebackDCacheAll(); /* flush the cache */
D_80126120 = osGetCount();
}
//sp->state &= ~(OS_SC_YIELD | OS_SC_YIELDED);
sp->state &= -49;
osSpTaskLoad(&sp->list);
osSpTaskStartGo(&sp->list);
D_800DE754 = 0;
D_800DE758 = 0;
sc->curRSPTask = sp;
if (sp == dp)
sc->curRDPTask = dp;
}
if (dp && (dp != sp)) {
osDpSetNextBuffer(dp->list.t.output_buff,
*dp->list.t.output_buff_size);
sc->curRDPTask = dp;
}
}
GLOBAL_ASM("asm/non_matchings/unknown_079F50/func_8007A080.s")
GLOBAL_ASM("asm/non_matchings/unknown_079F50/func_8007A0D4.s")
GLOBAL_ASM("asm/non_matchings/unknown_079F50/func_8007A2D0.s")