mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
matched thread4_audio
This commit is contained in:
@@ -246,8 +246,8 @@ glabel audioNewThread
|
||||
/* 003604 80002A04 3C188012 */ lui $t8, %hi(dmaState) # $t8, 0x8012
|
||||
/* 003608 80002A08 27189230 */ addiu $t8, %lo(dmaState) # addiu $t8, $t8, -0x6dd0
|
||||
/* 00360C 80002A0C 3C048011 */ lui $a0, %hi(audioThread) # $a0, 0x8011
|
||||
/* 003610 80002A10 3C068000 */ lui $a2, %hi(func_80002A98) # $a2, 0x8000
|
||||
/* 003614 80002A14 24C62A98 */ addiu $a2, %lo(func_80002A98) # addiu $a2, $a2, 0x2a98
|
||||
/* 003610 80002A10 3C068000 */ lui $a2, %hi(thread4_audio) # $a2, 0x8000
|
||||
/* 003614 80002A14 24C62A98 */ addiu $a2, %lo(thread4_audio) # addiu $a2, $a2, 0x2a98
|
||||
/* 003618 80002A18 24845FB0 */ addiu $a0, %lo(audioThread) # addiu $a0, $a0, 0x5fb0
|
||||
/* 00361C 80002A1C AFB80010 */ sw $t8, 0x10($sp)
|
||||
/* 003620 80002A20 24050004 */ li $a1, 4
|
||||
|
||||
@@ -1,97 +0,0 @@
|
||||
glabel func_80002A98
|
||||
/* 003698 80002A98 27BDFFB0 */ addiu $sp, $sp, -0x50
|
||||
/* 00369C 80002A9C AFA40050 */ sw $a0, 0x50($sp)
|
||||
/* 0036A0 80002AA0 3C048011 */ lui $a0, %hi(D_80115F90) # $a0, 0x8011
|
||||
/* 0036A4 80002AA4 AFBF003C */ sw $ra, 0x3c($sp)
|
||||
/* 0036A8 80002AA8 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 0036AC 80002AAC 8C845F90 */ lw $a0, %lo(D_80115F90)($a0)
|
||||
/* 0036B0 80002AB0 3C058011 */ lui $a1, %hi(audioStack) # $a1, 0x8011
|
||||
/* 0036B4 80002AB4 3C068011 */ lui $a2, %hi(OSMesgQueue_80116160) # $a2, 0x8011
|
||||
/* 0036B8 80002AB8 AFBE0038 */ sw $fp, 0x38($sp)
|
||||
/* 0036BC 80002ABC AFB70034 */ sw $s7, 0x34($sp)
|
||||
/* 0036C0 80002AC0 AFB60030 */ sw $s6, 0x30($sp)
|
||||
/* 0036C4 80002AC4 AFB5002C */ sw $s5, 0x2c($sp)
|
||||
/* 0036C8 80002AC8 AFB40028 */ sw $s4, 0x28($sp)
|
||||
/* 0036CC 80002ACC AFB30024 */ sw $s3, 0x24($sp)
|
||||
/* 0036D0 80002AD0 AFB20020 */ sw $s2, 0x20($sp)
|
||||
/* 0036D4 80002AD4 AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* 0036D8 80002AD8 00008025 */ move $s0, $zero
|
||||
/* 0036DC 80002ADC AFA00048 */ sw $zero, 0x48($sp)
|
||||
/* 0036E0 80002AE0 AFA00044 */ sw $zero, 0x44($sp)
|
||||
/* 0036E4 80002AE4 24C66160 */ addiu $a2, %lo(OSMesgQueue_80116160) # addiu $a2, $a2, 0x6160
|
||||
/* 0036E8 80002AE8 24A56220 */ addiu $a1, %lo(audioStack) # addiu $a1, $a1, 0x6220
|
||||
/* 0036EC 80002AEC 0C01E520 */ jal osScAddClient
|
||||
/* 0036F0 80002AF0 24070001 */ li $a3, 1
|
||||
/* 0036F4 80002AF4 3C1E8011 */ lui $fp, %hi(D_80116198) # $fp, 0x8011
|
||||
/* 0036F8 80002AF8 3C16800E */ lui $s6, %hi(audFrameCt) # $s6, 0x800e
|
||||
/* 0036FC 80002AFC 3C158011 */ lui $s5, %hi(D_80115F98) # $s5, 0x8011
|
||||
/* 003700 80002B00 26B55F98 */ addiu $s5, %lo(D_80115F98) # addiu $s5, $s5, 0x5f98
|
||||
/* 003704 80002B04 26D6C680 */ addiu $s6, %lo(audFrameCt) # addiu $s6, $s6, -0x3980
|
||||
/* 003708 80002B08 27DE6198 */ addiu $fp, %lo(D_80116198) # addiu $fp, $fp, 0x6198
|
||||
/* 00370C 80002B0C 24170003 */ li $s7, 3
|
||||
/* 003710 80002B10 2414000A */ li $s4, 10
|
||||
/* 003714 80002B14 24130004 */ li $s3, 4
|
||||
/* 003718 80002B18 24120001 */ li $s2, 1
|
||||
/* 00371C 80002B1C 27B10048 */ addiu $s1, $sp, 0x48
|
||||
.L80002B20:
|
||||
/* 003720 80002B20 3C048011 */ lui $a0, %hi(OSMesgQueue_80116160) # $a0, 0x8011
|
||||
/* 003724 80002B24 24846160 */ addiu $a0, %lo(OSMesgQueue_80116160) # addiu $a0, $a0, 0x6160
|
||||
/* 003728 80002B28 02202825 */ move $a1, $s1
|
||||
/* 00372C 80002B2C 0C0322EC */ jal osRecvMesg
|
||||
/* 003730 80002B30 02403025 */ move $a2, $s2
|
||||
/* 003734 80002B34 8FAE0048 */ lw $t6, 0x48($sp)
|
||||
/* 003738 80002B38 00000000 */ nop
|
||||
/* 00373C 80002B3C 85C20000 */ lh $v0, ($t6)
|
||||
/* 003740 80002B40 00000000 */ nop
|
||||
/* 003744 80002B44 10520007 */ beq $v0, $s2, .L80002B64
|
||||
/* 003748 80002B48 00000000 */ nop
|
||||
/* 00374C 80002B4C 1053001B */ beq $v0, $s3, .L80002BBC
|
||||
/* 003750 80002B50 00000000 */ nop
|
||||
/* 003754 80002B54 10540018 */ beq $v0, $s4, .L80002BB8
|
||||
/* 003758 80002B58 00000000 */ nop
|
||||
/* 00375C 80002B5C 10000017 */ b .L80002BBC
|
||||
/* 003760 80002B60 00000000 */ nop
|
||||
.L80002B64:
|
||||
/* 003764 80002B64 8ECF0000 */ lw $t7, ($s6)
|
||||
/* 003768 80002B68 8FA50044 */ lw $a1, 0x44($sp)
|
||||
/* 00376C 80002B6C 01F7001B */ divu $zero, $t7, $s7
|
||||
/* 003770 80002B70 16E00002 */ bnez $s7, .L80002B7C
|
||||
/* 003774 80002B74 00000000 */ nop
|
||||
/* 003778 80002B78 0007000D */ break 7
|
||||
.L80002B7C:
|
||||
/* 00377C 80002B7C 0000C010 */ mfhi $t8
|
||||
/* 003780 80002B80 0018C880 */ sll $t9, $t8, 2
|
||||
/* 003784 80002B84 02B94021 */ addu $t0, $s5, $t9
|
||||
/* 003788 80002B88 8D040008 */ lw $a0, 8($t0)
|
||||
/* 00378C 80002B8C 0C000B00 */ jal func_80002C00
|
||||
/* 003790 80002B90 00000000 */ nop
|
||||
/* 003794 80002B94 03C02025 */ move $a0, $fp
|
||||
/* 003798 80002B98 27A50044 */ addiu $a1, $sp, 0x44
|
||||
/* 00379C 80002B9C 0C0322EC */ jal osRecvMesg
|
||||
/* 0037A0 80002BA0 02403025 */ move $a2, $s2
|
||||
/* 0037A4 80002BA4 8FA40044 */ lw $a0, 0x44($sp)
|
||||
/* 0037A8 80002BA8 0C000B7E */ jal func_80002DF8
|
||||
/* 0037AC 80002BAC 00000000 */ nop
|
||||
/* 0037B0 80002BB0 10000002 */ b .L80002BBC
|
||||
/* 0037B4 80002BB4 00000000 */ nop
|
||||
.L80002BB8:
|
||||
/* 0037B8 80002BB8 02408025 */ move $s0, $s2
|
||||
.L80002BBC:
|
||||
/* 0037BC 80002BBC 1200FFD8 */ beqz $s0, .L80002B20
|
||||
/* 0037C0 80002BC0 00000000 */ nop
|
||||
/* 0037C4 80002BC4 3C048011 */ lui $a0, %hi(ALGlobals_801161D0) # $a0, 0x8011
|
||||
/* 0037C8 80002BC8 0C0321ED */ jal alClose
|
||||
/* 0037CC 80002BCC 248461D0 */ addiu $a0, %lo(ALGlobals_801161D0) # addiu $a0, $a0, 0x61d0
|
||||
/* 0037D0 80002BD0 8FBF003C */ lw $ra, 0x3c($sp)
|
||||
/* 0037D4 80002BD4 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 0037D8 80002BD8 8FB1001C */ lw $s1, 0x1c($sp)
|
||||
/* 0037DC 80002BDC 8FB20020 */ lw $s2, 0x20($sp)
|
||||
/* 0037E0 80002BE0 8FB30024 */ lw $s3, 0x24($sp)
|
||||
/* 0037E4 80002BE4 8FB40028 */ lw $s4, 0x28($sp)
|
||||
/* 0037E8 80002BE8 8FB5002C */ lw $s5, 0x2c($sp)
|
||||
/* 0037EC 80002BEC 8FB60030 */ lw $s6, 0x30($sp)
|
||||
/* 0037F0 80002BF0 8FB70034 */ lw $s7, 0x34($sp)
|
||||
/* 0037F4 80002BF4 8FBE0038 */ lw $fp, 0x38($sp)
|
||||
/* 0037F8 80002BF8 03E00008 */ jr $ra
|
||||
/* 0037FC 80002BFC 27BD0050 */ addiu $sp, $sp, 0x50
|
||||
|
||||
+33
-2
@@ -123,7 +123,7 @@ void audioNewThread(ALSynConfig *c, OSPri p, OSSched *arg2) {
|
||||
osCreateMesgQueue(&OSMesgQueue_80116160, &D_80116178, 8);
|
||||
osCreateMesgQueue(&audDMAMessageQ, &audDMAMessageBuf, 50);
|
||||
|
||||
osCreateThread(&audioThread, 4, &func_80002A98, NULL, &dmaState, p);
|
||||
osCreateThread(&audioThread, 4, &thread4_audio, NULL, &dmaState, p);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_003260/audioNewThread.s")
|
||||
@@ -137,7 +137,38 @@ void audioStopThread(void) {
|
||||
osStopThread(&audioThread);
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_003260/func_80002A98.s")
|
||||
/**
|
||||
* Main function for handling ingame audio. Loops continuously as long as the scheduler feeds it updates.
|
||||
*/
|
||||
void thread4_audio(UNUSED void *arg) {
|
||||
s32 audioThreadMarkExit;
|
||||
s16* audioThreadRetraceMesg;
|
||||
s16* audioThreadUpdateMesg;
|
||||
|
||||
audioThreadMarkExit = FALSE;
|
||||
audioThreadRetraceMesg = NULL;
|
||||
audioThreadUpdateMesg = NULL;
|
||||
|
||||
osScAddClient(D_80115F90, &audioStack, &OSMesgQueue_80116160, 1);
|
||||
while (!audioThreadMarkExit) {
|
||||
osRecvMesg(&OSMesgQueue_80116160, &audioThreadRetraceMesg, 1);
|
||||
switch (*audioThreadRetraceMesg) {
|
||||
case 1:
|
||||
func_80002C00(D_80115F98[(((u32) audFrameCt % 3))+2], audioThreadUpdateMesg);
|
||||
osRecvMesg(&D_80116198, &audioThreadUpdateMesg, 1);
|
||||
func_80002DF8(audioThreadUpdateMesg);
|
||||
break;
|
||||
case 4:
|
||||
// Mysterious void.
|
||||
break;
|
||||
case 10:
|
||||
audioThreadMarkExit = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
alClose(&ALGlobals_801161D0);
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_003260/func_80002C00.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_003260/func_80002DF8.s")
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@ extern unk800DC6BC* gAlSndPlayer;
|
||||
extern s32 sfxVolumeSlider;
|
||||
extern s32 D_800DC6C4;
|
||||
|
||||
extern void func_80002A98(void*);
|
||||
extern void thread4_audio(void*);
|
||||
void *alHeapDBAlloc(u8 *file, s32 line, ALHeap *hp, s32 num, s32 size); //lib/src/al
|
||||
void alEvtqNew(ALEventQueue *evtq, ALEventListItem *items, s32 itemCount); //lib/src/unknown_0C9C90.c
|
||||
ALMicroTime alEvtqNextEvent(ALEventQueue *evtq, ALEvent *evt); //lib/src/unknown_0C9C90.c
|
||||
|
||||
Reference in New Issue
Block a user