mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
c: alSndPNew
This commit is contained in:
@@ -1,136 +0,0 @@
|
||||
glabel alSndPNew
|
||||
/* 003DC0 800031C0 27BDFFB0 */ addiu $sp, $sp, -0x50
|
||||
/* 003DC4 800031C4 AFB20028 */ sw $s2, 0x28($sp)
|
||||
/* 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)
|
||||
/* 003DDC 800031DC 8C8E0008 */ lw $t6, 8($a0)
|
||||
/* 003DE0 800031E0 8E4F0000 */ lw $t7, ($s2)
|
||||
/* 003DE4 800031E4 340980E8 */ li $t1, 33000
|
||||
/* 003DE8 800031E8 ADEE0044 */ sw $t6, 0x44($t7)
|
||||
/* 003DEC 800031EC 8E590000 */ lw $t9, ($s2)
|
||||
/* 003DF0 800031F0 8C980008 */ lw $t8, 8($a0)
|
||||
/* 003DF4 800031F4 00808825 */ move $s1, $a0
|
||||
/* 003DF8 800031F8 AF380048 */ sw $t8, 0x48($t9)
|
||||
/* 003DFC 800031FC 8E480000 */ lw $t0, ($s2)
|
||||
/* 003E00 80003200 00002025 */ move $a0, $zero
|
||||
/* 003E04 80003204 AD00003C */ sw $zero, 0x3c($t0)
|
||||
/* 003E08 80003208 8E4A0000 */ lw $t2, ($s2)
|
||||
/* 003E0C 8000320C 00002825 */ move $a1, $zero
|
||||
/* 003E10 80003210 AD49004C */ sw $t1, 0x4c($t2)
|
||||
/* 003E14 80003214 8E2B0000 */ lw $t3, ($s1)
|
||||
/* 003E18 80003218 8E26000C */ lw $a2, 0xc($s1)
|
||||
/* 003E1C 8000321C 000B6180 */ sll $t4, $t3, 6
|
||||
/* 003E20 80003220 AFAC0010 */ sw $t4, 0x10($sp)
|
||||
/* 003E24 80003224 0C031DFC */ jal alHeapDBAlloc
|
||||
/* 003E28 80003228 24070001 */ li $a3, 1
|
||||
/* 003E2C 8000322C 8E4D0000 */ lw $t5, ($s2)
|
||||
/* 003E30 80003230 00002025 */ move $a0, $zero
|
||||
/* 003E34 80003234 ADA20040 */ sw $v0, 0x40($t5)
|
||||
/* 003E38 80003238 8E2E0004 */ lw $t6, 4($s1)
|
||||
/* 003E3C 8000323C 8E26000C */ lw $a2, 0xc($s1)
|
||||
/* 003E40 80003240 000E78C0 */ sll $t7, $t6, 3
|
||||
/* 003E44 80003244 01EE7823 */ subu $t7, $t7, $t6
|
||||
/* 003E48 80003248 000F7880 */ sll $t7, $t7, 2
|
||||
/* 003E4C 8000324C AFAF0010 */ sw $t7, 0x10($sp)
|
||||
/* 003E50 80003250 00002825 */ move $a1, $zero
|
||||
/* 003E54 80003254 0C031DFC */ jal alHeapDBAlloc
|
||||
/* 003E58 80003258 24070001 */ li $a3, 1
|
||||
/* 003E5C 8000325C 8E440000 */ lw $a0, ($s2)
|
||||
/* 003E60 80003260 8E260004 */ lw $a2, 4($s1)
|
||||
/* 003E64 80003264 00402825 */ move $a1, $v0
|
||||
/* 003E68 80003268 0C0324D7 */ jal alEvtqNew
|
||||
/* 003E6C 8000326C 24840014 */ addiu $a0, $a0, 0x14
|
||||
/* 003E70 80003270 8E580000 */ lw $t8, ($s2)
|
||||
/* 003E74 80003274 3C01800E */ lui $at, %hi(D_800DC6B8) # $at, 0x800e
|
||||
/* 003E78 80003278 8F190040 */ lw $t9, 0x40($t8)
|
||||
/* 003E7C 8000327C 24100001 */ li $s0, 1
|
||||
/* 003E80 80003280 AC39C6B8 */ sw $t9, %lo(D_800DC6B8)($at)
|
||||
/* 003E84 80003284 8E280000 */ lw $t0, ($s1)
|
||||
/* 003E88 80003288 00000000 */ nop
|
||||
/* 003E8C 8000328C 2D010002 */ sltiu $at, $t0, 2
|
||||
/* 003E90 80003290 1420000D */ bnez $at, .L800032C8
|
||||
/* 003E94 80003294 00000000 */ nop
|
||||
.L80003298:
|
||||
/* 003E98 80003298 8E490000 */ lw $t1, ($s2)
|
||||
/* 003E9C 8000329C 00105180 */ sll $t2, $s0, 6
|
||||
/* 003EA0 800032A0 8D220040 */ lw $v0, 0x40($t1)
|
||||
/* 003EA4 800032A4 00000000 */ nop
|
||||
/* 003EA8 800032A8 01422021 */ addu $a0, $t2, $v0
|
||||
/* 003EAC 800032AC 0C0321E4 */ jal alLink
|
||||
/* 003EB0 800032B0 2485FFC0 */ addiu $a1, $a0, -0x40
|
||||
/* 003EB4 800032B4 8E2B0000 */ lw $t3, ($s1)
|
||||
/* 003EB8 800032B8 26100001 */ addiu $s0, $s0, 1
|
||||
/* 003EBC 800032BC 020B082B */ sltu $at, $s0, $t3
|
||||
/* 003EC0 800032C0 1420FFF5 */ bnez $at, .L80003298
|
||||
/* 003EC4 800032C4 00000000 */ nop
|
||||
.L800032C8:
|
||||
/* 003EC8 800032C8 962C0010 */ lhu $t4, 0x10($s1)
|
||||
/* 003ECC 800032CC 8E26000C */ lw $a2, 0xc($s1)
|
||||
/* 003ED0 800032D0 00002025 */ move $a0, $zero
|
||||
/* 003ED4 800032D4 00002825 */ move $a1, $zero
|
||||
/* 003ED8 800032D8 24070002 */ li $a3, 2
|
||||
/* 003EDC 800032DC 0C031DFC */ jal alHeapDBAlloc
|
||||
/* 003EE0 800032E0 AFAC0010 */ sw $t4, 0x10($sp)
|
||||
/* 003EE4 800032E4 3C048012 */ lui $a0, %hi(D_80119C28) # $a0, 0x8012
|
||||
/* 003EE8 800032E8 24849C28 */ addiu $a0, %lo(D_80119C28) # addiu $a0, $a0, -0x63d8
|
||||
/* 003EEC 800032EC AC820000 */ sw $v0, ($a0)
|
||||
/* 003EF0 800032F0 962D0010 */ lhu $t5, 0x10($s1)
|
||||
/* 003EF4 800032F4 00008025 */ move $s0, $zero
|
||||
/* 003EF8 800032F8 11A0000C */ beqz $t5, .L8000332C
|
||||
/* 003EFC 800032FC 3C19800E */ lui $t9, %hi(alGlobals) # $t9, 0x800e
|
||||
/* 003F00 80003300 00001025 */ move $v0, $zero
|
||||
/* 003F04 80003304 24037FFF */ li $v1, 32767
|
||||
.L80003308:
|
||||
/* 003F08 80003308 8C8E0000 */ lw $t6, ($a0)
|
||||
/* 003F0C 8000330C 26100001 */ addiu $s0, $s0, 1
|
||||
/* 003F10 80003310 01C27821 */ addu $t7, $t6, $v0
|
||||
/* 003F14 80003314 A5E30000 */ sh $v1, ($t7)
|
||||
/* 003F18 80003318 96380010 */ lhu $t8, 0x10($s1)
|
||||
/* 003F1C 8000331C 24420002 */ addiu $v0, $v0, 2
|
||||
/* 003F20 80003320 0218082B */ sltu $at, $s0, $t8
|
||||
/* 003F24 80003324 1420FFF8 */ bnez $at, .L80003308
|
||||
/* 003F28 80003328 00000000 */ nop
|
||||
.L8000332C:
|
||||
/* 003F2C 8000332C 8F393780 */ lw $t9, %lo(alGlobals)($t9)
|
||||
/* 003F30 80003330 8E480000 */ lw $t0, ($s2)
|
||||
/* 003F34 80003334 3C0A8000 */ lui $t2, %hi(_sndpVoiceHandler) # $t2, 0x8000
|
||||
/* 003F38 80003338 AD190038 */ sw $t9, 0x38($t0)
|
||||
/* 003F3C 8000333C 8E490000 */ lw $t1, ($s2)
|
||||
/* 003F40 80003340 254A33C8 */ addiu $t2, %lo(_sndpVoiceHandler) # addiu $t2, $t2, 0x33c8
|
||||
/* 003F44 80003344 AD200000 */ sw $zero, ($t1)
|
||||
/* 003F48 80003348 8E4B0000 */ lw $t3, ($s2)
|
||||
/* 003F4C 8000334C 00000000 */ nop
|
||||
/* 003F50 80003350 AD6A0008 */ sw $t2, 8($t3)
|
||||
/* 003F54 80003354 8E500000 */ lw $s0, ($s2)
|
||||
/* 003F58 80003358 00000000 */ nop
|
||||
/* 003F5C 8000335C AE100004 */ sw $s0, 4($s0)
|
||||
/* 003F60 80003360 8E500000 */ lw $s0, ($s2)
|
||||
/* 003F64 80003364 00000000 */ nop
|
||||
/* 003F68 80003368 8E040038 */ lw $a0, 0x38($s0)
|
||||
/* 003F6C 8000336C 0C0324F4 */ jal alSynAddPlayer
|
||||
/* 003F70 80003370 02002825 */ move $a1, $s0
|
||||
/* 003F74 80003374 8E500000 */ lw $s0, ($s2)
|
||||
/* 003F78 80003378 240C0020 */ li $t4, 32
|
||||
/* 003F7C 8000337C A7AC0038 */ sh $t4, 0x38($sp)
|
||||
/* 003F80 80003380 8E06004C */ lw $a2, 0x4c($s0)
|
||||
/* 003F84 80003384 27A50038 */ addiu $a1, $sp, 0x38
|
||||
/* 003F88 80003388 0C03246B */ jal alEvtqPostEvent
|
||||
/* 003F8C 8000338C 26040014 */ addiu $a0, $s0, 0x14
|
||||
/* 003F90 80003390 8E500000 */ lw $s0, ($s2)
|
||||
/* 003F94 80003394 00000000 */ nop
|
||||
/* 003F98 80003398 26040014 */ addiu $a0, $s0, 0x14
|
||||
/* 003F9C 8000339C 0C0324B4 */ jal alEvtqNextEvent
|
||||
/* 003FA0 800033A0 26050028 */ addiu $a1, $s0, 0x28
|
||||
/* 003FA4 800033A4 8E4D0000 */ lw $t5, ($s2)
|
||||
/* 003FA8 800033A8 00000000 */ nop
|
||||
/* 003FAC 800033AC ADA20050 */ sw $v0, 0x50($t5)
|
||||
/* 003FB0 800033B0 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
/* 003FB4 800033B4 8FB20028 */ lw $s2, 0x28($sp)
|
||||
/* 003FB8 800033B8 8FB10024 */ lw $s1, 0x24($sp)
|
||||
/* 003FBC 800033BC 8FB00020 */ lw $s0, 0x20($sp)
|
||||
/* 003FC0 800033C0 03E00008 */ jr $ra
|
||||
/* 003FC4 800033C4 27BD0050 */ addiu $sp, $sp, 0x50
|
||||
|
||||
+23
-22
@@ -53,8 +53,21 @@ typedef struct unk80119240
|
||||
ALLink_s * unk08;
|
||||
} unk800DC6B0;
|
||||
*/
|
||||
|
||||
|
||||
typedef struct audioMgrConfig_s{
|
||||
u32 unk00;
|
||||
u32 unk04;
|
||||
u32 maxChannels;
|
||||
ALHeap* hp;
|
||||
u16 unk10;
|
||||
} audioMgrConfig;
|
||||
|
||||
|
||||
|
||||
extern u32 D_800DC6A0;
|
||||
//extern unk800DC6B0* D_800DC6B0;
|
||||
extern unk800DC6BC_40* D_800DC6B8;
|
||||
extern unk800DC6BC* gAlSndPlayer;
|
||||
extern s32 sfxVolumeSlider;
|
||||
extern s32 D_80115F90;
|
||||
@@ -159,23 +172,12 @@ void func_8000318C(s32 arg0) {
|
||||
}
|
||||
}
|
||||
|
||||
#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;
|
||||
u32 i;
|
||||
unk800DC6BC_40* tmp1;
|
||||
ALEvent sp_38;
|
||||
|
||||
@@ -186,10 +188,10 @@ void alSndPNew(audioMgrConfig* c){
|
||||
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);
|
||||
i=1;
|
||||
for(i=1; i < c->unk00; i++){
|
||||
tmp1 = gAlSndPlayer->unk40;
|
||||
alLink( i + tmp1, i + tmp1 - 1);
|
||||
}
|
||||
|
||||
D_80119C28 = alHeapDBAlloc(0,0,c->hp, 2, c->unk10);
|
||||
@@ -262,14 +264,13 @@ void func_800049D8(void) {
|
||||
func_800048D8(3);
|
||||
}
|
||||
|
||||
|
||||
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;
|
||||
ALSndpEvent sndEvt;
|
||||
sndEvt.snd_event.type = type;
|
||||
sndEvt.snd_event.state = sndState;
|
||||
sndEvt.snd_event.unk04 = arg2;
|
||||
if(sndState){
|
||||
alEvtqPostEvent(&(gAlSndPlayer->evtq), &sp_18,0);
|
||||
alEvtqPostEvent(&(gAlSndPlayer->evtq), &sndEvt,0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user