mirror of https://github.com/n64decomp/mk64.git
Match send_display_list and symbol renames (#12)
This commit is contained in:
parent
5183f9cd02
commit
0a22e5a87e
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ glabel sCurrentDisplaySPTask
|
|||
glabel D_800DC4B4
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800DC4B8
|
||||
glabel sNextDisplaySPTask
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800DC4BC
|
||||
|
|
|
|||
40
src/main.c
40
src/main.c
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue