diff --git a/asm/non_matchings/unknown_079F50/__scMain.s b/asm/non_matchings/unknown_079F50/__scMain.s index e5407ca5..8f2d7e25 100644 --- a/asm/non_matchings/unknown_079F50/__scMain.s +++ b/asm/non_matchings/unknown_079F50/__scMain.s @@ -77,7 +77,7 @@ glabel __scMain /* 07A2BC 800796BC 02602025 */ move $a0, $s3 /* 07A2C0 800796C0 8FA50064 */ lw $a1, 0x64($sp) .L800796C4: -/* 07A2C4 800796C4 0C01E7D0 */ jal func_80079F40 +/* 07A2C4 800796C4 0C01E7D0 */ jal __scAppendList /* 07A2C8 800796C8 02402025 */ move $a0, $s2 /* 07A2CC 800796CC 8E4F0274 */ lw $t7, 0x274($s2) /* 07A2D0 800796D0 8E480278 */ lw $t0, 0x278($s2) diff --git a/asm/non_matchings/unknown_079F50/func_80079818.s b/asm/non_matchings/unknown_079F50/func_80079818.s index 2d1108b3..8d903d52 100644 --- a/asm/non_matchings/unknown_079F50/func_80079818.s +++ b/asm/non_matchings/unknown_079F50/func_80079818.s @@ -98,7 +98,7 @@ glabel func_80079818 /* 07A574 80079974 00000000 */ nop /* 07A578 80079978 8FA50044 */ lw $a1, 0x44($sp) .L8007997C: -/* 07A57C 8007997C 0C01E7D0 */ jal func_80079F40 +/* 07A57C 8007997C 0C01E7D0 */ jal __scAppendList /* 07A580 80079980 02202025 */ move $a0, $s1 /* 07A584 80079984 8FA40028 */ lw $a0, 0x28($sp) /* 07A588 80079988 27A50044 */ addiu $a1, $sp, 0x44 diff --git a/asm/non_matchings/unknown_079F50/func_80079F40.s b/asm/non_matchings/unknown_079F50/func_80079F40.s deleted file mode 100644 index 9e2c0c3c..00000000 --- a/asm/non_matchings/unknown_079F50/func_80079F40.s +++ /dev/null @@ -1,34 +0,0 @@ -glabel func_80079F40 -/* 07AB40 80079F40 8CA20010 */ lw $v0, 0x10($a1) -/* 07AB44 80079F44 24010002 */ li $at, 2 -/* 07AB48 80079F48 1441000A */ bne $v0, $at, .L80079F74 -/* 07AB4C 80079F4C 00000000 */ nop -/* 07AB50 80079F50 8C82026C */ lw $v0, 0x26c($a0) -/* 07AB54 80079F54 00000000 */ nop -/* 07AB58 80079F58 10400003 */ beqz $v0, .L80079F68 -/* 07AB5C 80079F5C 00000000 */ nop -/* 07AB60 80079F60 10000002 */ b .L80079F6C -/* 07AB64 80079F64 AC450000 */ sw $a1, ($v0) -.L80079F68: -/* 07AB68 80079F68 AC850264 */ sw $a1, 0x264($a0) -.L80079F6C: -/* 07AB6C 80079F6C 10000009 */ b .L80079F94 -/* 07AB70 80079F70 AC85026C */ sw $a1, 0x26c($a0) -.L80079F74: -/* 07AB74 80079F74 8C820270 */ lw $v0, 0x270($a0) -/* 07AB78 80079F78 00000000 */ nop -/* 07AB7C 80079F7C 10400003 */ beqz $v0, .L80079F8C -/* 07AB80 80079F80 00000000 */ nop -/* 07AB84 80079F84 10000002 */ b .L80079F90 -/* 07AB88 80079F88 AC450000 */ sw $a1, ($v0) -.L80079F8C: -/* 07AB8C 80079F8C AC850268 */ sw $a1, 0x268($a0) -.L80079F90: -/* 07AB90 80079F90 AC850270 */ sw $a1, 0x270($a0) -.L80079F94: -/* 07AB94 80079F94 8CAE0008 */ lw $t6, 8($a1) -/* 07AB98 80079F98 ACA00000 */ sw $zero, ($a1) -/* 07AB9C 80079F9C 31CF0003 */ andi $t7, $t6, 3 -/* 07ABA0 80079FA0 03E00008 */ jr $ra -/* 07ABA4 80079FA4 ACAF0004 */ sw $t7, 4($a1) - diff --git a/src/unknown_079F50.c b/src/unknown_079F50.c index 981de577..06132bd1 100644 --- a/src/unknown_079F50.c +++ b/src/unknown_079F50.c @@ -150,7 +150,30 @@ GLOBAL_ASM("asm/non_matchings/unknown_079F50/func_80079B44.s") 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") + + +void __scAppendList(OSSched *sc, OSScTask *t) +{ + u32 tmp = t->list.t.type; + if (tmp == 2){ + if(sc->audioListTail) + sc->audioListTail->next = t; + else + sc->audioListHead = t; + + sc->audioListTail = t; + } + else{ + if(sc->gfxListTail) + sc->gfxListTail->next = t; + else + sc->gfxListHead = t; + + sc->gfxListTail = t; + } + t->next = NULL; + t->state = t->flags & 0x03; +} void __scExec(OSSched *sc, OSScTask *sp, OSScTask *dp) {