Rename some vars, and get __scHandleRetrace even closer to a match

This commit is contained in:
Ryan Myers
2021-10-15 09:30:50 -04:00
parent 14e11bd6a2
commit 26fa276e2e
3 changed files with 35 additions and 34 deletions
+4 -4
View File
@@ -17,8 +17,8 @@ glabel __scHandleRSP
/* 07A76C 80079B6C 00808025 */ move $s0, $a0
/* 07A770 80079B70 0C031E34 */ jal osGetCount
/* 07A774 80079B74 AFA50034 */ sw $a1, 0x34($sp)
/* 07A778 80079B78 3C038012 */ lui $v1, %hi(D_80126124) # $v1, 0x8012
/* 07A77C 80079B7C 24636124 */ addiu $v1, %lo(D_80126124) # addiu $v1, $v1, 0x6124
/* 07A778 80079B78 3C038012 */ lui $v1, %hi(gRSPAudTaskCount) # $v1, 0x8012
/* 07A77C 80079B7C 24636124 */ addiu $v1, %lo(gRSPAudTaskCount) # addiu $v1, $v1, 0x6124
/* 07A780 80079B80 AC620000 */ sw $v0, ($v1)
/* 07A784 80079B84 3C188012 */ lui $t8, %hi(D_80126120) # $t8, 0x8012
/* 07A788 80079B88 8F186120 */ lw $t8, %lo(D_80126120)($t8)
@@ -46,7 +46,7 @@ glabel __scHandleRSP
/* 07A7DC 80079BDC C4EA0000 */ lwc1 $f10, ($a3)
/* 07A7E0 80079BE0 C4C80000 */ lwc1 $f8, ($a2)
/* 07A7E4 80079BE4 46128103 */ div.s $f4, $f16, $f18
/* 07A7E8 80079BE8 3C02800E */ lui $v0, %hi(D_800DE750) # $v0, 0x800e
/* 07A7E8 80079BE8 3C02800E */ lui $v0, %hi(gRetraceCounter32) # $v0, 0x800e
/* 07A7EC 80079BEC E4840000 */ swc1 $f4, ($a0)
/* 07A7F0 80079BF0 C4800000 */ lwc1 $f0, ($a0)
/* 07A7F4 80079BF4 00000000 */ nop
@@ -56,7 +56,7 @@ glabel __scHandleRSP
/* 07A804 80079C04 E4C60000 */ swc1 $f6, ($a2)
/* 07A808 80079C08 E4E00000 */ swc1 $f0, ($a3)
.L80079C0C:
/* 07A80C 80079C0C 8C42E750 */ lw $v0, %lo(D_800DE750)($v0)
/* 07A80C 80079C0C 8C42E750 */ lw $v0, %lo(gRetraceCounter32)($v0)
/* 07A810 80079C10 240103E8 */ li $at, 1000
/* 07A814 80079C14 0041001A */ div $zero, $v0, $at
/* 07A818 80079C18 24010001 */ li $at, 1
+13 -13
View File
@@ -125,18 +125,18 @@ glabel __scHandleRetrace
/* 07A5D8 800799D8 0C01E7EA */ jal __scExec
/* 07A5DC 800799DC 02202025 */ move $a0, $s1
.L800799E0:
/* 07A5E0 800799E0 3C0D800E */ lui $t5, %hi(gRetraceCount) # $t5, 0x800e
/* 07A5E4 800799E4 8DADE764 */ lw $t5, %lo(gRetraceCount+4)($t5)
/* 07A5E8 800799E8 3C0C800E */ lui $t4, %hi(gRetraceCount) # $t4, 0x800e
/* 07A5EC 800799EC 8D8CE760 */ lw $t4, %lo(gRetraceCount)($t4)
/* 07A5E0 800799E0 3C0D800E */ lui $t5, %hi(gRetraceCounter64) # $t5, 0x800e
/* 07A5E4 800799E4 8DADE764 */ lw $t5, %lo(gRetraceCounter64+4)($t5)
/* 07A5E8 800799E8 3C0C800E */ lui $t4, %hi(gRetraceCounter64) # $t4, 0x800e
/* 07A5EC 800799EC 8D8CE760 */ lw $t4, %lo(gRetraceCounter64)($t4)
/* 07A5F0 800799F0 25AF0001 */ addiu $t7, $t5, 1
/* 07A5F4 800799F4 2DE10001 */ sltiu $at, $t7, 1
/* 07A5F8 800799F8 01817021 */ addu $t6, $t4, $at
/* 07A5FC 800799FC 3C01800E */ lui $at, %hi(gRetraceCount) # $at, 0x800e
/* 07A600 80079A00 3C02800E */ lui $v0, %hi(D_800DE750) # $v0, 0x800e
/* 07A604 80079A04 2442E750 */ addiu $v0, %lo(D_800DE750) # addiu $v0, $v0, -0x18b0
/* 07A608 80079A08 AC2EE760 */ sw $t6, %lo(gRetraceCount)($at)
/* 07A60C 80079A0C AC2FE764 */ sw $t7, %lo(gRetraceCount+4)($at)
/* 07A5FC 800799FC 3C01800E */ lui $at, %hi(gRetraceCounter64) # $at, 0x800e
/* 07A600 80079A00 3C02800E */ lui $v0, %hi(gRetraceCounter32) # $v0, 0x800e
/* 07A604 80079A04 2442E750 */ addiu $v0, %lo(gRetraceCounter32) # addiu $v0, $v0, -0x18b0
/* 07A608 80079A08 AC2EE760 */ sw $t6, %lo(gRetraceCounter64)($at)
/* 07A60C 80079A0C AC2FE764 */ sw $t7, %lo(gRetraceCounter64+4)($at)
/* 07A610 80079A10 8C580000 */ lw $t8, ($v0)
/* 07A614 80079A14 00000000 */ nop
/* 07A618 80079A18 27190001 */ addiu $t9, $t8, 1
@@ -183,10 +183,10 @@ glabel __scHandleRetrace
/* 07A6A4 80079AA4 92020000 */ lbu $v0, ($s0)
/* 07A6A8 80079AA8 24010001 */ li $at, 1
/* 07A6AC 80079AAC 14410016 */ bne $v0, $at, .L80079B08
/* 07A6B0 80079AB0 3C04800E */ lui $a0, %hi(gRetraceCount) # $a0, 0x800e
/* 07A6B4 80079AB4 3C05800E */ lui $a1, %hi(gRetraceCount) # $a1, 0x800e
/* 07A6B8 80079AB8 8CA5E764 */ lw $a1, %lo(gRetraceCount+4)($a1)
/* 07A6BC 80079ABC 8C84E760 */ lw $a0, %lo(gRetraceCount)($a0)
/* 07A6B0 80079AB0 3C04800E */ lui $a0, %hi(gRetraceCounter64) # $a0, 0x800e
/* 07A6B4 80079AB4 3C05800E */ lui $a1, %hi(gRetraceCounter64) # $a1, 0x800e
/* 07A6B8 80079AB8 8CA5E764 */ lw $a1, %lo(gRetraceCounter64+4)($a1)
/* 07A6BC 80079ABC 8C84E760 */ lw $a0, %lo(gRetraceCounter64)($a0)
/* 07A6C0 80079AC0 24060000 */ li $a2, 0
/* 07A6C4 80079AC4 0C033AA3 */ jal __ull_rem
/* 07A6C8 80079AC8 24070002 */ li $a3, 2
+18 -17
View File
@@ -27,12 +27,11 @@ f32 D_800DE744 = 0;
f32 D_800DE748 = 0;
f32 D_800DE74C = 0;
s32 D_800DE750 = 0; // Currently unknown, might be a different type.
u32 gRetraceCounter32 = 0;
s32 gCurRSPTaskCounter = 0;
s32 gCurRDPTaskCounter = 0;
s32 D_800DE75C = 0;
u64 gRetraceCount = 0;
static u32 gUnusedVar = 0;
u64 gRetraceCounter64 = 0;
/*******************************/
@@ -64,7 +63,7 @@ s32 gCurRSPTaskIsSet;
s32 gCurRDPTaskIsSet;
OSTime gYieldTime;
s32 D_80126120;
u32 D_80126124;
u32 gRSPAudTaskCount;
s32 D_80126128[18];
/*******************************/
@@ -221,7 +220,7 @@ void dummy_80079808() {}
void dummy_80079810() {}
#ifdef NON_MATCHING
//Down to a single regalloc
//Down to single stack pointer value being 0x24 instead of 0x28
void __scHandleRetrace(OSSched *sc) {
OSScTask *rspTask = NULL;
OSScClient *client;
@@ -231,6 +230,7 @@ void __scHandleRetrace(OSSched *sc) {
u8 set_curRSPTask_NULL = FALSE;
u8 set_curRDPTask_NULL = FALSE;
s32 i;
OSScTask *unkTask;
if (sc->curRSPTask) {
gCurRSPTaskCounter++;
@@ -284,16 +284,17 @@ void __scHandleRetrace(OSSched *sc) {
if (__scSchedule(sc, &sp, &dp, state) != state)
__scExec(sc, sp, dp);
gRetraceCount++;
D_800DE750++;
gRetraceCounter64++;
gRetraceCounter32++;
sc->frameCount++;
if ((sc->unkTask) && (sc->frameCount >= 2)) {
if (sc->unkTask->msgQ) {
if ((sc->unkTask->unk68) || (sc->unkTask->msg)) {
osSendMesg(sc->unkTask->msgQ, sc->unkTask->msg, OS_MESG_BLOCK);
unkTask = sc->unkTask;
if (unkTask->msgQ) {
if ((unkTask->unk68) || (unkTask->msg)) {
osSendMesg(unkTask->msgQ, unkTask->msg, OS_MESG_BLOCK);
} else {
osSendMesg(sc->unkTask->msgQ, &D_800DE730, OS_MESG_BLOCK);
osSendMesg(unkTask->msgQ, &D_800DE730, OS_MESG_BLOCK);
}
}
sc->frameCount = 0;
@@ -303,7 +304,7 @@ void __scHandleRetrace(OSSched *sc) {
for (client = sc->clientList; client != 0; client = client->next) {
if (client->unk0 == 1) {
//Only run this on even calls to this function
if (gRetraceCount % 2 == 0) {
if (gRetraceCounter64 % 2 == 0) {
osSendMesg(client->msgQ, sc, OS_MESG_NOBLOCK);
if (sc->audioListHead) {
func_80079760(sc);
@@ -332,13 +333,13 @@ void __scHandleRSP(OSSched *sc) {
//Rare seems to have edited this function, most specifically here.
//Still need to do better for a match, but this does work
if (t->list.t.type == M_AUDTASK) {
D_80126124 = osGetCount();
D_800DE74C = (f32) (((f32) (D_80126124 - D_80126120) * 60.0f) / OS_CPU_COUNTER_F);
gRSPAudTaskCount = osGetCount();
D_800DE74C = (f32) (((f32) (gRSPAudTaskCount - D_80126120) * 60.0f) / OS_CPU_COUNTER_F);
D_800DE744 = (f32) (D_800DE744 + D_800DE74C);
if (D_800DE740 < D_800DE74C) {
D_800DE740 = D_800DE74C;
}
temp_hi = (s32) D_800DE750 % 1000;
temp_hi = (s32) gRetraceCounter32 % 1000;
if ((temp_hi == 1) || (temp_hi == 2)) {
D_800DE748 = (f32) (D_800DE744 / 500.0f);
D_800DE744 = 0.0f;
@@ -480,7 +481,7 @@ void __scExec(OSSched *sc, OSScTask *sp, OSScTask *dp) {
}
if (dp && (dp != sp)) {
osDpSetNextBuffer(dp->list.t.output_buff, *dp->list.t.output_buff_size);
osDpSetNextBuffer(dp->list.t.output_buff, *dp->list.t.output_buff_size);
sc->curRDPTask = dp;
}
}