Decompile __n_mapVoice
This commit is contained in:
parent
2c1f8396b1
commit
b61033cf24
|
@ -206,6 +206,8 @@ typedef struct {
|
|||
ALSeqMarker *loopStart;
|
||||
ALSeqMarker *loopEnd;
|
||||
s32 loopCount; /* -1 = loop forever, 0 = no loop */
|
||||
u8 unk88;
|
||||
u8 unk89;
|
||||
} N_ALSeqPlayer;
|
||||
|
||||
typedef struct {
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
#include "types.h"
|
||||
|
||||
u32 func0003d280(void);
|
||||
u32 func0003d5d8(void);
|
||||
u32 __n_mapVoice(void);
|
||||
u32 __n_lookupSoundQuick(void);
|
||||
u32 func0003d9cc(void);
|
||||
|
||||
|
|
|
@ -1613,7 +1613,7 @@ glabel var70054a74
|
|||
/* 352dc: 8fa400d0 */ lw $a0,0xd0($sp)
|
||||
/* 352e0: 93a500c2 */ lbu $a1,0xc2($sp)
|
||||
/* 352e4: 93a600c1 */ lbu $a2,0xc1($sp)
|
||||
/* 352e8: 0c00f576 */ jal func0003d5d8
|
||||
/* 352e8: 0c00f576 */ jal __n_mapVoice
|
||||
/* 352ec: 93a700c3 */ lbu $a3,0xc3($sp)
|
||||
/* 352f0: afa2009c */ sw $v0,0x9c($sp)
|
||||
/* 352f4: 8fa9009c */ lw $t1,0x9c($sp)
|
||||
|
@ -4131,7 +4131,7 @@ glabel var70054a74
|
|||
/* 352dc: 8fa400d0 */ lw $a0,0xd0($sp)
|
||||
/* 352e0: 93a500c2 */ lbu $a1,0xc2($sp)
|
||||
/* 352e4: 93a600c1 */ lbu $a2,0xc1($sp)
|
||||
/* 352e8: 0c00f576 */ jal func0003d5d8
|
||||
/* 352e8: 0c00f576 */ jal __n_mapVoice
|
||||
/* 352ec: 93a700c3 */ lbu $a3,0xc3($sp)
|
||||
/* 352f0: afa2009c */ sw $v0,0x9c($sp)
|
||||
/* 352f4: 8fa9009c */ lw $t1,0x9c($sp)
|
||||
|
|
|
@ -155,63 +155,36 @@ char __n_voiceNeedsNoteKill(N_ALSeqPlayer *seqp, N_ALVoice *voice, ALMicroTime k
|
|||
return needsNoteKill;
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0003d5d8
|
||||
/* 3d5d8: 27bdfff8 */ addiu $sp,$sp,-8
|
||||
/* 3d5dc: 30a500ff */ andi $a1,$a1,0xff
|
||||
/* 3d5e0: 30c600ff */ andi $a2,$a2,0xff
|
||||
/* 3d5e4: 30e700ff */ andi $a3,$a3,0xff
|
||||
/* 3d5e8: 8c8e006c */ lw $t6,0x6c($a0)
|
||||
/* 3d5ec: afae0004 */ sw $t6,0x4($sp)
|
||||
/* 3d5f0: 908f0089 */ lbu $t7,0x89($a0)
|
||||
/* 3d5f4: 90980088 */ lbu $t8,0x88($a0)
|
||||
/* 3d5f8: 030f082a */ slt $at,$t8,$t7
|
||||
/* 3d5fc: 10200003 */ beqz $at,.L0003d60c
|
||||
/* 3d600: 00000000 */ nop
|
||||
/* 3d604: 10000023 */ b .L0003d694
|
||||
/* 3d608: 00001025 */ or $v0,$zero,$zero
|
||||
.L0003d60c:
|
||||
/* 3d60c: 8fb90004 */ lw $t9,0x4($sp)
|
||||
/* 3d610: 1320001c */ beqz $t9,.L0003d684
|
||||
/* 3d614: 00000000 */ nop
|
||||
/* 3d618: 8fa80004 */ lw $t0,0x4($sp)
|
||||
/* 3d61c: 8d090000 */ lw $t1,0x0($t0)
|
||||
/* 3d620: ac89006c */ sw $t1,0x6c($a0)
|
||||
/* 3d624: 8faa0004 */ lw $t2,0x4($sp)
|
||||
/* 3d628: ad400000 */ sw $zero,0x0($t2)
|
||||
/* 3d62c: 8c8b0064 */ lw $t3,0x64($a0)
|
||||
/* 3d630: 15600004 */ bnez $t3,.L0003d644
|
||||
/* 3d634: 00000000 */ nop
|
||||
/* 3d638: 8fac0004 */ lw $t4,0x4($sp)
|
||||
/* 3d63c: 10000004 */ b .L0003d650
|
||||
/* 3d640: ac8c0064 */ sw $t4,0x64($a0)
|
||||
.L0003d644:
|
||||
/* 3d644: 8fad0004 */ lw $t5,0x4($sp)
|
||||
/* 3d648: 8c8e0068 */ lw $t6,0x68($a0)
|
||||
/* 3d64c: adcd0000 */ sw $t5,0x0($t6)
|
||||
.L0003d650:
|
||||
/* 3d650: 8faf0004 */ lw $t7,0x4($sp)
|
||||
/* 3d654: ac8f0068 */ sw $t7,0x68($a0)
|
||||
/* 3d658: 8fb80004 */ lw $t8,0x4($sp)
|
||||
/* 3d65c: a3070031 */ sb $a3,0x31($t8)
|
||||
/* 3d660: 8fb90004 */ lw $t9,0x4($sp)
|
||||
/* 3d664: a3250032 */ sb $a1,0x32($t9)
|
||||
/* 3d668: 8fa80004 */ lw $t0,0x4($sp)
|
||||
/* 3d66c: a1060033 */ sb $a2,0x33($t0)
|
||||
/* 3d670: 8fa90004 */ lw $t1,0x4($sp)
|
||||
/* 3d674: ad290014 */ sw $t1,0x14($t1)
|
||||
/* 3d678: 908a0089 */ lbu $t2,0x89($a0)
|
||||
/* 3d67c: 254b0001 */ addiu $t3,$t2,0x1
|
||||
/* 3d680: a08b0089 */ sb $t3,0x89($a0)
|
||||
.L0003d684:
|
||||
/* 3d684: 10000003 */ b .L0003d694
|
||||
/* 3d688: 8fa20004 */ lw $v0,0x4($sp)
|
||||
/* 3d68c: 10000001 */ b .L0003d694
|
||||
/* 3d690: 00000000 */ nop
|
||||
.L0003d694:
|
||||
/* 3d694: 03e00008 */ jr $ra
|
||||
/* 3d698: 27bd0008 */ addiu $sp,$sp,0x8
|
||||
);
|
||||
N_ALVoiceState *__n_mapVoice(N_ALSeqPlayer *seqp, u8 key, u8 vel, u8 channel)
|
||||
{
|
||||
N_ALVoiceState *vs = seqp->vFreeList;
|
||||
|
||||
if (seqp->unk89 > seqp->unk88) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (vs) {
|
||||
seqp->vFreeList = vs->next;
|
||||
vs->next = 0;
|
||||
|
||||
if (!seqp->vAllocHead) {
|
||||
seqp->vAllocHead = vs;
|
||||
} else {
|
||||
seqp->vAllocTail->next = vs;
|
||||
}
|
||||
|
||||
seqp->vAllocTail = vs;
|
||||
|
||||
vs->channel = channel;
|
||||
vs->key = key;
|
||||
vs->velocity = vel;
|
||||
vs->voice.clientPrivate = vs;
|
||||
|
||||
seqp->unk89++;
|
||||
}
|
||||
|
||||
return vs;
|
||||
}
|
||||
|
||||
N_ALVoiceState *__n_lookupVoice(N_ALSeqPlayer *seqp, u8 key, u8 channel)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue