mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
c: func_800049F8
This commit is contained in:
+3
-3
@@ -1,8 +1,8 @@
|
||||
glabel func_800031C0
|
||||
glabel alSndPNew
|
||||
/* 003DC0 800031C0 27BDFFB0 */ addiu $sp, $sp, -0x50
|
||||
/* 003DC4 800031C4 AFB20028 */ sw $s2, 0x28($sp)
|
||||
/* 003DC8 800031C8 3C12800E */ lui $s2, %hi(D_800DC6BC) # $s2, 0x800e
|
||||
/* 003DCC 800031CC 2652C6BC */ addiu $s2, %lo(D_800DC6BC) # addiu $s2, $s2, -0x3944
|
||||
/* 003DC8 800031C8 3C12800E */ lui $s2, %hi(gAlSndPlayer) # $s2, 0x800e
|
||||
/* 003DCC 800031CC 2652C6BC */ addiu $s2, %lo(gAlSndPlayer) # addiu $s2, $s2, -0x3944
|
||||
/* 003DD0 800031D0 AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* 003DD4 800031D4 AFB10024 */ sw $s1, 0x24($sp)
|
||||
/* 003DD8 800031D8 AFB00020 */ sw $s0, 0x20($sp)
|
||||
@@ -6,14 +6,14 @@ glabel func_8000410C
|
||||
/* 004D1C 8000411C 00807025 */ move $t6, $a0
|
||||
/* 004D20 80004120 31F80004 */ andi $t8, $t7, 4
|
||||
/* 004D24 80004124 1300000C */ beqz $t8, .L80004158
|
||||
/* 004D28 80004128 3C19800E */ lui $t9, %hi(D_800DC6BC) # $t9, 0x800e
|
||||
/* 004D2C 8000412C 8F39C6BC */ lw $t9, %lo(D_800DC6BC)($t9)
|
||||
/* 004D28 80004128 3C19800E */ lui $t9, %hi(gAlSndPlayer) # $t9, 0x800e
|
||||
/* 004D2C 8000412C 8F39C6BC */ lw $t9, %lo(gAlSndPlayer)($t9)
|
||||
/* 004D30 80004130 25C5000C */ addiu $a1, $t6, 0xc
|
||||
/* 004D34 80004134 8F240038 */ lw $a0, 0x38($t9)
|
||||
/* 004D38 80004138 0C03262C */ jal alSynStopVoice
|
||||
/* 004D3C 8000413C AFA5001C */ sw $a1, 0x1c($sp)
|
||||
/* 004D40 80004140 3C08800E */ lui $t0, %hi(D_800DC6BC) # $t0, 0x800e
|
||||
/* 004D44 80004144 8D08C6BC */ lw $t0, %lo(D_800DC6BC)($t0)
|
||||
/* 004D40 80004140 3C08800E */ lui $t0, %hi(gAlSndPlayer) # $t0, 0x800e
|
||||
/* 004D44 80004144 8D08C6BC */ lw $t0, %lo(gAlSndPlayer)($t0)
|
||||
/* 004D48 80004148 8FA5001C */ lw $a1, 0x1c($sp)
|
||||
/* 004D4C 8000414C 8D040038 */ lw $a0, 0x38($t0)
|
||||
/* 004D50 80004150 0C03264C */ jal alSynFreeVoice
|
||||
@@ -22,8 +22,8 @@ glabel func_8000410C
|
||||
/* 004D58 80004158 8FA40020 */ lw $a0, 0x20($sp)
|
||||
/* 004D5C 8000415C 0C001148 */ jal func_80004520
|
||||
/* 004D60 80004160 00000000 */ nop
|
||||
/* 004D64 80004164 3C04800E */ lui $a0, %hi(D_800DC6BC) # $a0, 0x800e
|
||||
/* 004D68 80004168 8C84C6BC */ lw $a0, %lo(D_800DC6BC)($a0)
|
||||
/* 004D64 80004164 3C04800E */ lui $a0, %hi(gAlSndPlayer) # $a0, 0x800e
|
||||
/* 004D68 80004168 8C84C6BC */ lw $a0, %lo(gAlSndPlayer)($a0)
|
||||
/* 004D6C 8000416C 8FA50020 */ lw $a1, 0x20($sp)
|
||||
/* 004D70 80004170 3406FFFF */ li $a2, 65535
|
||||
/* 004D74 80004174 0C00107F */ jal func_800041FC
|
||||
|
||||
@@ -9,9 +9,9 @@ glabel func_8000418C
|
||||
/* 004DA8 800041A8 0C032678 */ jal alCents2Ratio
|
||||
/* 004DAC 800041AC AFA70030 */ sw $a3, 0x30($sp)
|
||||
/* 004DB0 800041B0 8FA70030 */ lw $a3, 0x30($sp)
|
||||
/* 004DB4 800041B4 3C04800E */ lui $a0, %hi(D_800DC6BC) # $a0, 0x800e
|
||||
/* 004DB4 800041B4 3C04800E */ lui $a0, %hi(gAlSndPlayer) # $a0, 0x800e
|
||||
/* 004DB8 800041B8 C4E4002C */ lwc1 $f4, 0x2c($a3)
|
||||
/* 004DBC 800041BC 8C84C6BC */ lw $a0, %lo(D_800DC6BC)($a0)
|
||||
/* 004DBC 800041BC 8C84C6BC */ lw $a0, %lo(gAlSndPlayer)($a0)
|
||||
/* 004DC0 800041C0 46040182 */ mul.s $f6, $f0, $f4
|
||||
/* 004DC4 800041C4 24180010 */ li $t8, 16
|
||||
/* 004DC8 800041C8 A7B80020 */ sh $t8, 0x20($sp)
|
||||
|
||||
@@ -24,9 +24,9 @@ glabel func_80004668
|
||||
/* 0052C0 800046C0 10000066 */ b .L8000485C
|
||||
/* 0052C4 800046C4 00001025 */ move $v0, $zero
|
||||
.L800046C8:
|
||||
/* 0052C8 800046C8 3C15800E */ lui $s5, %hi(D_800DC6BC) # $s5, 0x800e
|
||||
/* 0052C8 800046C8 3C15800E */ lui $s5, %hi(gAlSndPlayer) # $s5, 0x800e
|
||||
/* 0052CC 800046CC 8FB30064 */ lw $s3, 0x64($sp)
|
||||
/* 0052D0 800046D0 26B5C6BC */ addiu $s5, %lo(D_800DC6BC) # addiu $s5, $s5, -0x3944
|
||||
/* 0052D0 800046D0 26B5C6BC */ addiu $s5, %lo(gAlSndPlayer) # addiu $s5, $s5, -0x3944
|
||||
/* 0052D4 800046D4 AFA40080 */ sw $a0, 0x80($sp)
|
||||
/* 0052D8 800046D8 27B60050 */ addiu $s6, $sp, 0x50
|
||||
/* 0052DC 800046DC 8FA40080 */ lw $a0, 0x80($sp)
|
||||
|
||||
@@ -15,8 +15,8 @@ glabel func_800048D8
|
||||
/* 00550C 8000490C AFA2004C */ sw $v0, 0x4c($sp)
|
||||
/* 005510 80004910 12000016 */ beqz $s0, .L8000496C
|
||||
/* 005514 80004914 02408825 */ move $s1, $s2
|
||||
/* 005518 80004918 3C13800E */ lui $s3, %hi(D_800DC6BC) # $s3, 0x800e
|
||||
/* 00551C 8000491C 2673C6BC */ addiu $s3, %lo(D_800DC6BC) # addiu $s3, $s3, -0x3944
|
||||
/* 005518 80004918 3C13800E */ lui $s3, %hi(gAlSndPlayer) # $s3, 0x800e
|
||||
/* 00551C 8000491C 2673C6BC */ addiu $s3, %lo(gAlSndPlayer) # addiu $s3, $s3, -0x3944
|
||||
/* 005520 80004920 27B4003C */ addiu $s4, $sp, 0x3c
|
||||
/* 005524 80004924 2412FFEF */ li $s2, -17
|
||||
/* 005528 80004928 240E0400 */ li $t6, 1024
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
glabel func_800049F8
|
||||
/* 0055F8 800049F8 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 0055FC 800049FC AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 005600 80004A00 AFA5002C */ sw $a1, 0x2c($sp)
|
||||
/* 005604 80004A04 A7A50018 */ sh $a1, 0x18($sp)
|
||||
/* 005608 80004A08 AFA4001C */ sw $a0, 0x1c($sp)
|
||||
/* 00560C 80004A0C 10800007 */ beqz $a0, .L80004A2C
|
||||
/* 005610 80004A10 AFA60020 */ sw $a2, 0x20($sp)
|
||||
/* 005614 80004A14 3C04800E */ lui $a0, %hi(D_800DC6BC) # $a0, 0x800e
|
||||
/* 005618 80004A18 8C84C6BC */ lw $a0, %lo(D_800DC6BC)($a0)
|
||||
/* 00561C 80004A1C 27A50018 */ addiu $a1, $sp, 0x18
|
||||
/* 005620 80004A20 00003025 */ move $a2, $zero
|
||||
/* 005624 80004A24 0C03246B */ jal alEvtqPostEvent
|
||||
/* 005628 80004A28 24840014 */ addiu $a0, $a0, 0x14
|
||||
.L80004A2C:
|
||||
/* 00562C 80004A2C 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 005630 80004A30 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
/* 005634 80004A34 03E00008 */ jr $ra
|
||||
/* 005638 80004A38 00000000 */ nop
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@ glabel func_80004A60
|
||||
/* 0056AC 80004AAC 12000017 */ beqz $s0, .L80004B0C
|
||||
/* 0056B0 80004AB0 A7110000 */ sh $s1, ($t8)
|
||||
/* 0056B4 80004AB4 02408825 */ move $s1, $s2
|
||||
/* 0056B8 80004AB8 3C12800E */ lui $s2, %hi(D_800DC6BC) # $s2, 0x800e
|
||||
/* 0056BC 80004ABC 2652C6BC */ addiu $s2, %lo(D_800DC6BC) # addiu $s2, $s2, -0x3944
|
||||
/* 0056B8 80004AB8 3C12800E */ lui $s2, %hi(gAlSndPlayer) # $s2, 0x800e
|
||||
/* 0056BC 80004ABC 2652C6BC */ addiu $s2, %lo(gAlSndPlayer) # addiu $s2, $s2, -0x3944
|
||||
/* 0056C0 80004AC0 27B3002C */ addiu $s3, $sp, 0x2c
|
||||
.L80004AC4:
|
||||
/* 0056C4 80004AC4 8E190008 */ lw $t9, 8($s0)
|
||||
|
||||
+1
-1
@@ -95,7 +95,7 @@ glabel D_800DC6B4
|
||||
glabel D_800DC6B8
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800DC6BC
|
||||
glabel gAlSndPlayer
|
||||
.word 0x80119BD0
|
||||
|
||||
glabel sfxVolumeSlider
|
||||
|
||||
@@ -178,7 +178,7 @@ void audio_init(u32 arg0){
|
||||
audConfig.maxChannels = 16;
|
||||
audConfig.unk10 = 1;
|
||||
audConfig.hp = &gALHeap;
|
||||
func_800031C0(&audConfig);
|
||||
alSndPNew(&audConfig);
|
||||
audioStartThread();
|
||||
func_80000968(0);
|
||||
func_80071140(reg_s2);
|
||||
|
||||
+92
-13
@@ -9,14 +9,35 @@
|
||||
extern void func_80002A98(void*);
|
||||
extern u32 D_80003008;
|
||||
|
||||
typedef struct unk800DC6BC_40 {
|
||||
ALLink node;
|
||||
u8 pad0C[0x38];
|
||||
} unk800DC6BC_40; //ALSoundState
|
||||
|
||||
typedef union {
|
||||
ALEvent msg;
|
||||
|
||||
struct{
|
||||
s16 type;
|
||||
void* state;
|
||||
u32 unk04;
|
||||
}snd_event;
|
||||
|
||||
}ALSndpEvent;
|
||||
|
||||
/* Unknown Size */
|
||||
typedef struct unk800DC6BC {
|
||||
ALPlayer node;
|
||||
ALEventQueue evtq;
|
||||
u8 pad18[0x1C];
|
||||
s32 unk44;
|
||||
s32 unk48;
|
||||
} unk800DC6BC;
|
||||
ALPlayer node;
|
||||
ALEventQueue evtq;
|
||||
ALEvent nextEvent;
|
||||
ALSynth *drvr;
|
||||
u32 unk3C;
|
||||
unk800DC6BC_40 *unk40;
|
||||
s32 unk44;
|
||||
s32 unk48;
|
||||
s32 frameTime;
|
||||
ALMicroTime nextDelta;
|
||||
} unk800DC6BC; //ALSndPlayer
|
||||
|
||||
typedef struct unk80119240
|
||||
{
|
||||
@@ -34,7 +55,7 @@ typedef struct unk80119240
|
||||
*/
|
||||
extern u32 D_800DC6A0;
|
||||
//extern unk800DC6B0* D_800DC6B0;
|
||||
extern unk800DC6BC* D_800DC6BC;
|
||||
extern unk800DC6BC* gAlSndPlayer;
|
||||
extern s32 sfxVolumeSlider;
|
||||
extern s32 D_80115F90;
|
||||
extern ALHeap* D_80115F94;
|
||||
@@ -131,14 +152,64 @@ s32 sfxGetVolumeSlider(void) {
|
||||
}
|
||||
|
||||
void func_8000318C(s32 arg0) {
|
||||
if (D_800DC6BC->unk44 >= arg0) {
|
||||
D_800DC6BC->unk48 = arg0;
|
||||
if (gAlSndPlayer->unk44 >= arg0) {
|
||||
gAlSndPlayer->unk48 = arg0;
|
||||
} else {
|
||||
D_800DC6BC->unk48 = D_800DC6BC->unk44;
|
||||
gAlSndPlayer->unk48 = gAlSndPlayer->unk44;
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_003260/func_800031C0.s")
|
||||
#if 1 //BAD Regalloc in first for loop
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_003260/alSndPNew.s")
|
||||
#else
|
||||
typedef struct audioMgrConfig_s{
|
||||
u32 unk00;
|
||||
u32 unk04;
|
||||
u32 maxChannels;
|
||||
ALHeap* hp;
|
||||
u16 unk10;
|
||||
} audioMgrConfig;
|
||||
|
||||
extern unk800DC6BC_40* D_800DC6B8;
|
||||
|
||||
ALMicroTime _sndpVoiceHandler(void *node);
|
||||
|
||||
void alSndPNew(audioMgrConfig* c){
|
||||
s32 i;
|
||||
unk800DC6BC_40* tmp1;
|
||||
ALEvent sp_38;
|
||||
|
||||
gAlSndPlayer->unk44 = c->maxChannels;
|
||||
gAlSndPlayer->unk48 = c->maxChannels;
|
||||
gAlSndPlayer->unk3C = 0;
|
||||
gAlSndPlayer->frameTime = 33000;
|
||||
gAlSndPlayer->unk40 = (unk800DC6BC_40 *) alHeapDBAlloc(0, 0, c->hp, 1, (c->unk00) << 6);
|
||||
alEvtqNew(&(gAlSndPlayer->evtq), alHeapDBAlloc(0,0,c->hp,1, (c->unk04)*28), c->unk04);
|
||||
D_800DC6B8 = gAlSndPlayer->unk40;
|
||||
for (i=1; i < c->unk00; i++){
|
||||
//bad regalloc
|
||||
tmp1 = &(gAlSndPlayer->unk40[i]);
|
||||
alLink(tmp1, tmp1 - 1);
|
||||
}
|
||||
|
||||
D_80119C28 = alHeapDBAlloc(0,0,c->hp, 2, c->unk10);
|
||||
for (i=0; i < c->unk10; i++){
|
||||
D_80119C28[i] = 32767;
|
||||
}
|
||||
|
||||
|
||||
gAlSndPlayer->drvr = alGlobals;
|
||||
gAlSndPlayer->node.next = NULL;
|
||||
gAlSndPlayer->node.handler = &_sndpVoiceHandler;
|
||||
gAlSndPlayer->node.clientData = gAlSndPlayer;
|
||||
|
||||
alSynAddPlayer(gAlSndPlayer->drvr, gAlSndPlayer);
|
||||
sp_38.type = 32;
|
||||
alEvtqPostEvent(&(gAlSndPlayer->evtq), &sp_38, gAlSndPlayer->frameTime);
|
||||
gAlSndPlayer->nextDelta = alEvtqNextEvent(&(gAlSndPlayer->evtq), &(gAlSndPlayer->nextEvent));
|
||||
}
|
||||
#endif
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_003260/_sndpVoiceHandler.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_003260/_handleEvent.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_003260/func_8000410C.s")
|
||||
@@ -182,7 +253,7 @@ void func_8000488C(u8* arg0){
|
||||
((u32*)(&sp_18))[1] = (u32) arg0;
|
||||
if(arg0){
|
||||
arg0[0x3e] &= ~(1<<4);
|
||||
alEvtqPostEvent(&(D_800DC6BC->evtq), &sp_18, 0);
|
||||
alEvtqPostEvent(&(gAlSndPlayer->evtq), &sp_18, 0);
|
||||
}
|
||||
}
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_003260/func_800048D8.s")
|
||||
@@ -192,8 +263,16 @@ void func_800049D8(void) {
|
||||
}
|
||||
|
||||
|
||||
void func_800049F8(void * sndState,s16 type, u32 arg2){
|
||||
ALSndpEvent sp_18;
|
||||
sp_18.snd_event.type = type;
|
||||
sp_18.snd_event.state = sndState;
|
||||
sp_18.snd_event.unk04 = arg2;
|
||||
if(sndState){
|
||||
alEvtqPostEvent(&(gAlSndPlayer->evtq), &sp_18,0);
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_003260/func_800049F8.s")
|
||||
}
|
||||
|
||||
u16 func_80004A3C(u8 arg0){
|
||||
return D_80119C28[arg0];
|
||||
|
||||
+1
-1
@@ -98,7 +98,7 @@ D_800DC6A0 = 0x800DC6A0;
|
||||
D_800DC6B0 = 0x800DC6B0;
|
||||
D_800DC6B4 = 0x800DC6B4;
|
||||
D_800DC6B8 = 0x800DC6B8;
|
||||
D_800DC6BC = 0x800DC6BC;
|
||||
gAlSndPlayer = 0x800DC6BC;
|
||||
sfxVolumeSlider = 0x800DC6C0;
|
||||
D_800DC6C4 = 0x800DC6C4;
|
||||
D_800DC6D0 = 0x800DC6D0;
|
||||
|
||||
Reference in New Issue
Block a user