From 18151a92992045731f01010bec5f43db45541227 Mon Sep 17 00:00:00 2001 From: Mittenz Date: Tue, 18 Aug 2020 19:25:49 -0500 Subject: [PATCH] c: alSndPNew --- asm/non_matchings/unknown_003260/alSndPNew.s | 136 ------------------- src/unknown_003260.c | 45 +++--- 2 files changed, 23 insertions(+), 158 deletions(-) delete mode 100644 asm/non_matchings/unknown_003260/alSndPNew.s diff --git a/asm/non_matchings/unknown_003260/alSndPNew.s b/asm/non_matchings/unknown_003260/alSndPNew.s deleted file mode 100644 index f1599cad..00000000 --- a/asm/non_matchings/unknown_003260/alSndPNew.s +++ /dev/null @@ -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 - diff --git a/src/unknown_003260.c b/src/unknown_003260.c index 75d40d5a..c5519bf5 100644 --- a/src/unknown_003260.c +++ b/src/unknown_003260.c @@ -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); } }