Match send_display_list and symbol renames (#12)

This commit is contained in:
Duncan 2021-03-02 23:52:52 +00:00 committed by GitHub
parent 5183f9cd02
commit 0a22e5a87e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 30 additions and 59 deletions

View File

@ -1,29 +0,0 @@
glabel func_80000C40
/* 001840 80000C40 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 001844 80000C44 AFBF0014 */ sw $ra, 0x14($sp)
/* 001848 80000C48 0C033624 */ jal osWritebackDCacheAll
/* 00184C 80000C4C AFA40018 */ sw $a0, 0x18($sp)
/* 001850 80000C50 8FA70018 */ lw $a3, 0x18($sp)
/* 001854 80000C54 3C02800E */ lui $v0, %hi(sCurrentDisplaySPTask) # $v0, 0x800e
/* 001858 80000C58 2442C4B0 */ addiu $v0, %lo(sCurrentDisplaySPTask) # addiu $v0, $v0, -0x3b50
/* 00185C 80000C5C ACE00048 */ sw $zero, 0x48($a3)
/* 001860 80000C60 8C4E0000 */ lw $t6, ($v0)
/* 001864 80000C64 3C048015 */ lui $a0, %hi(D_8014EFB8) # $a0, 0x8015
/* 001868 80000C68 2484EFB8 */ addiu $a0, %lo(D_8014EFB8) # addiu $a0, $a0, -0x1048
/* 00186C 80000C6C 15C00009 */ bnez $t6, .L80000C94
/* 001870 80000C70 3C01800E */ lui $at, %hi(D_800DC4B8) # 0x800e
/* 001874 80000C74 AC470000 */ sw $a3, ($v0)
/* 001878 80000C78 3C01800E */ lui $at, %hi(D_800DC4B8) # $at, 0x800e
/* 00187C 80000C7C AC20C4B8 */ sw $zero, %lo(D_800DC4B8)($at)
/* 001880 80000C80 24050067 */ li $a1, 103
/* 001884 80000C84 0C033630 */ jal osSendMesg
/* 001888 80000C88 00003025 */ move $a2, $zero
/* 00188C 80000C8C 10000003 */ b .L80000C9C
/* 001890 80000C90 8FBF0014 */ lw $ra, 0x14($sp)
.L80000C94:
/* 001894 80000C94 AC27C4B8 */ sw $a3, %lo(D_800DC4B8)($at)
/* 001898 80000C98 8FBF0014 */ lw $ra, 0x14($sp)
.L80000C9C:
/* 00189C 80000C9C 27BD0018 */ addiu $sp, $sp, 0x18
/* 0018A0 80000CA0 03E00008 */ jr $ra
/* 0018A4 80000CA4 00000000 */ nop

View File

@ -29,7 +29,7 @@ glabel func_80000E00
/* 001A6C 80000E6C 8C84EF40 */ lw $a0, %lo(gGfxPool)($a0)
/* 001A70 80000E70 3C010002 */ lui $at, (0x00028B20 >> 16) # lui $at, 2
/* 001A74 80000E74 34218B20 */ ori $at, (0x00028B20 & 0xFFFF) # ori $at, $at, 0x8b20
/* 001A78 80000E78 0C000310 */ jal func_80000C40
/* 001A78 80000E78 0C000310 */ jal send_display_list
/* 001A7C 80000E7C 00812021 */ addu $a0, $a0, $at
/* 001A80 80000E80 3C02800E */ lui $v0, %hi(D_800DC560) # $v0, 0x800e
/* 001A84 80000E84 3C03800E */ lui $v1, %hi(D_800DC54C) # $v1, 0x800e

View File

@ -14,7 +14,7 @@ glabel func_80000F34
/* 001B64 80000F64 8C84EF40 */ lw $a0, %lo(gGfxPool)($a0)
/* 001B68 80000F68 3C010002 */ lui $at, (0x00028B20 >> 16) # lui $at, 2
/* 001B6C 80000F6C 34218B20 */ ori $at, (0x00028B20 & 0xFFFF) # ori $at, $at, 0x8b20
/* 001B70 80000F70 0C000310 */ jal func_80000C40
/* 001B70 80000F70 0C000310 */ jal send_display_list
/* 001B74 80000F74 00812021 */ addu $a0, $a0, $at
/* 001B78 80000F78 0C000D54 */ jal profiler_log_thread5_time
/* 001B7C 80000F7C 24040003 */ li $a0, 3

View File

@ -17,10 +17,10 @@ glabel func_80001FAC
/* 002BE8 80001FE8 00003025 */ move $a2, $zero
/* 002BEC 80001FEC 2410FFFF */ li $s0, -1
/* 002BF0 80001FF0 10500018 */ beq $v0, $s0, .L80002054
/* 002BF4 80001FF4 3C16800E */ lui $s6, %hi(D_800DC4B8) # $s6, 0x800e
/* 002BF4 80001FF4 3C16800E */ lui $s6, %hi(sNextDisplaySPTask) # $s6, 0x800e
/* 002BF8 80001FF8 3C13800E */ lui $s3, %hi(D_800DC4B4) # $s3, 0x800e
/* 002BFC 80001FFC 2673C4B4 */ addiu $s3, %lo(D_800DC4B4) # addiu $s3, $s3, -0x3b4c
/* 002C00 80002000 26D6C4B8 */ addiu $s6, %lo(D_800DC4B8) # addiu $s6, $s6, -0x3b48
/* 002C00 80002000 26D6C4B8 */ addiu $s6, %lo(sNextDisplaySPTask) # addiu $s6, $s6, -0x3b48
/* 002C04 80002004 24120002 */ li $s2, 2
/* 002C08 80002008 24110001 */ li $s1, 1
/* 002C0C 8000200C 8FAE0040 */ lw $t6, 0x40($sp)
@ -48,8 +48,8 @@ glabel func_80001FAC
/* 002C58 80002058 2463C4AC */ addiu $v1, %lo(sCurrentAudioSPTask) # addiu $v1, $v1, -0x3b54
/* 002C5C 8000205C 8C680000 */ lw $t0, ($v1)
/* 002C60 80002060 3C13800E */ lui $s3, %hi(D_800DC4B4) # $s3, 0x800e
/* 002C64 80002064 3C16800E */ lui $s6, %hi(D_800DC4B8) # $s6, 0x800e
/* 002C68 80002068 26D6C4B8 */ addiu $s6, %lo(D_800DC4B8) # addiu $s6, $s6, -0x3b48
/* 002C64 80002064 3C16800E */ lui $s6, %hi(sNextDisplaySPTask) # $s6, 0x800e
/* 002C68 80002068 26D6C4B8 */ addiu $s6, %lo(sNextDisplaySPTask) # addiu $s6, $s6, -0x3b48
/* 002C6C 8000206C 15000006 */ bnez $t0, .L80002088
/* 002C70 80002070 2673C4B4 */ addiu $s3, %lo(D_800DC4B4) # addiu $s3, $s3, -0x3b4c
/* 002C74 80002074 8E620000 */ lw $v0, ($s3)

View File

@ -76,8 +76,8 @@ glabel thread3_video
/* 003108 80002508 00003825 */ move $a3, $zero
/* 00310C 8000250C 0C0330D8 */ jal osStartThread
/* 003110 80002510 02002025 */ move $a0, $s0
/* 003114 80002514 3C108015 */ lui $s0, %hi(D_8014EFB8) # $s0, 0x8015
/* 003118 80002518 2610EFB8 */ addiu $s0, %lo(D_8014EFB8) # addiu $s0, $s0, -0x1048
/* 003114 80002514 3C108015 */ lui $s0, %hi(gIntrMesgQueue) # $s0, 0x8015
/* 003118 80002518 2610EFB8 */ addiu $s0, %lo(gIntrMesgQueue) # addiu $s0, $s0, -0x1048
/* 00311C 8000251C 24150067 */ li $s5, 103
/* 003120 80002520 24140066 */ li $s4, 102
/* 003124 80002524 24130065 */ li $s3, 101

View File

@ -23,7 +23,7 @@ glabel sCurrentDisplaySPTask
glabel D_800DC4B4
.word 0x00000000
glabel D_800DC4B8
glabel sNextDisplaySPTask
.word 0x00000000
glabel D_800DC4BC

View File

@ -45,7 +45,7 @@ extern struct VblankHandler *gVblankHandler2;
extern const f64 D_800EB640;
extern struct VblankHandler sSoundVblankHandler;
extern struct SPTask *D_8015029C;
extern OSMesgQueue D_8014EF58, D_8014EF88, D_8014EFD0, D_8014EFB8;
extern OSMesgQueue D_8014EF58, D_8014EF88, D_8014EFD0, gIntrMesgQueue;
extern OSMesgQueue sSoundMesgQueue;
extern OSMesg sSoundMesgBuf;
extern OSMesg D_8014F004, D_8014F058, D_8014F018;
@ -86,6 +86,8 @@ extern u16 sController1Unplugged;
extern u32 D_801502B4;
extern u32 D_802F9F80;
extern struct SPTask* sNextDisplaySPTask;
// Declarations (in this file)
void thread1_idle(void *arg0);
void thread3_video(void *arg0);
@ -135,10 +137,10 @@ void thread1_idle(void *arg0) {
void setup_mesg_queues(void) {
osCreateMesgQueue(&D_8014EF58, &D_8014F004, 1);
osCreateMesgQueue(&D_8014EFD0, &D_8014F058, 0x10);
osCreateMesgQueue(&D_8014EFB8, &D_8014F018, 0x10);
osViSetEvent(&D_8014EFB8, (OSMesg) 0x66, 1);
osSetEventMesg(4, &D_8014EFB8, (OSMesg) 0x64);
osSetEventMesg(9, &D_8014EFB8, (OSMesg) 0x65);
osCreateMesgQueue(&gIntrMesgQueue, &D_8014F018, 0x10);
osViSetEvent(&gIntrMesgQueue, (OSMesg) 0x66, 1);
osSetEventMesg(4, &gIntrMesgQueue, (OSMesg) 0x64);
osSetEventMesg(9, &gIntrMesgQueue, (OSMesg) 0x65);
}
void start_sptask(s32 taskType) {
@ -291,20 +293,18 @@ void func_80000C0C(OSMesg arg0) {
}
// similar to send_display_list from SM64
#ifdef MIPS_TO_C
void func_80000C40(struct SPTask *spTask) {
void send_display_list(struct SPTask *spTask) {
osWritebackDCacheAll();
spTask->state = 0;
spTask->state = SPTASK_STATE_NOT_STARTED;
if (sCurrentDisplaySPTask == NULL) {
sCurrentDisplaySPTask = spTask;
D_800DC4B8 = NULL;
osSendMesg(&D_8014EFB8, 0x67, 0, spTask);
sNextDisplaySPTask = NULL;
osSendMesg(&gIntrMesgQueue, MESG_START_GFX_SPTASK, OS_MESG_NOBLOCK);
}
else{
sNextDisplaySPTask = spTask;
}
*(void *)0x800E0000 = spTask;
}
#else
GLOBAL_ASM("asm/non_matchings/main/func_80000C40.s")
#endif
void func_80000CA8(void) {
func_802A7C08();
@ -353,7 +353,7 @@ void *func_80000E00(void) {
func_80000CA8();
func_80000D3C(0);
func_80000CE8();
func_80000C40(gGfxPool + 0x28B20);
send_display_list(gGfxPool + 0x28B20);
D_800DC560 = (u16) (D_800DC560 + 1);
D_800DC54C = (s32) (D_800DC54C + 1);
return &D_800DC560;
@ -388,7 +388,7 @@ void *func_80000F34(void) {
profiler_log_thread5_time(2);
osRecvMesg(&D_8014EF88, &D_8014F098, 1);
func_80000C40(gGfxPool + 0x28B20);
send_display_list(gGfxPool + 0x28B20);
profiler_log_thread5_time(3);
osRecvMesg(&D_8014EF70, &D_8014F098, 1);
osViSwapBuffer(((D_800DC55C * 4) + 0x80150000)->unk2A8 | 0x80000000);
@ -912,7 +912,7 @@ loop_2:
D_800DC4B4 = sp40;
}
} else {
D_800DC4B8 = sp40;
sNextDisplaySPTask = sp40;
}
temp_ret_2 = osRecvMesg(&D_8014EFD0, &sp40, 0);
phi_return = temp_ret_2;
@ -930,11 +930,11 @@ loop_2:
}
}
if (sCurrentDisplaySPTask == 0) {
temp_v0_2 = D_800DC4B8;
temp_v0_2 = sNextDisplaySPTask;
phi_return = temp_v0_2;
if (temp_v0_2 != 0) {
sCurrentDisplaySPTask = temp_v0_2;
D_800DC4B8 = 0;
sNextDisplaySPTask = 0;
phi_return = temp_v0_2;
}
}
@ -1096,7 +1096,7 @@ loop_1:
// manual work
while (1) {
OSMesg msg;
osRecvMesg(&D_8014EFB8, &msg, OS_MESG_BLOCK);
osRecvMesg(&gIntrMesgQueue, &msg, OS_MESG_BLOCK);
switch (msg) {
case MESG_SP_COMPLETE:
func_800022DC();

View File

@ -678,7 +678,7 @@ sSoundVblankHandler = 0x8014EF50;
D_8014EF58 = 0x8014EF58;
D_8014EF70 = 0x8014EF70;
D_8014EF88 = 0x8014EF88;
D_8014EFB8 = 0x8014EFB8;
gIntrMesgQueue = 0x8014EFB8;
D_8014EFD0 = 0x8014EFD0;
sSoundMesgQueue = 0x8014EFE8;
sSoundMesgBuf = 0x8014F000;