mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
__scExec
This commit is contained in:
@@ -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
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user