c: alSndPNew

This commit is contained in:
Mittenz
2020-08-18 19:25:49 -05:00
parent c3eae75971
commit 18151a9299
2 changed files with 23 additions and 158 deletions
@@ -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
View File
@@ -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);
}
}