mirror of
https://github.com/zeldaret/mm.git
synced 2026-08-02 00:14:24 -04:00
Audio_Effects OK and Documented (#549)
* Audio_Effects OK * Remove duplicate * PR Suggestion * Small cleanup * Small Touchup
This commit is contained in:
+7
-11
@@ -3562,16 +3562,12 @@ void Audio_WritebackDCache(void* buf, size_t size);
|
||||
// void func_801964F8(void);
|
||||
// void func_801965F0(void);
|
||||
// void func_801968C4(void);
|
||||
// void func_80196A00(void);
|
||||
// void func_80196BC8(void);
|
||||
// void func_80196D20(void);
|
||||
// void func_80196D7C(void);
|
||||
// void func_80196DB4(void);
|
||||
// void func_80196FEC(void);
|
||||
// void func_80197048(void);
|
||||
// void func_80197138(void);
|
||||
// void func_80197164(void);
|
||||
// void func_80197188(void);
|
||||
void AudioEffects_SequencePlayerProcessSound(SequencePlayer* seqPlayer);
|
||||
void AudioEffects_NoteVibratoUpdate(Note* note);
|
||||
void AudioEffects_NoteVibratoInit(Note* note);
|
||||
void AudioEffects_NotePortamentoInit(Note* note);
|
||||
void AudioEffects_AdsrInit(AdsrState* adsr, AdsrEnvelope* envelope, s16* volOut);
|
||||
f32 AudioEffects_AdsrUpdate(AdsrState* adsr);
|
||||
// void func_801974D0(void);
|
||||
// void func_80197538(void);
|
||||
// void func_80197714(void);
|
||||
@@ -3583,7 +3579,7 @@ void Audio_WritebackDCache(void* buf, size_t size);
|
||||
// void func_80197C0C(void);
|
||||
// void func_80197C8C(void);
|
||||
// void func_80197D24(void);
|
||||
// void func_80197D4C(void);
|
||||
void AudioSeq_SequencePlayerDisable(SequencePlayer* seqPlayer);
|
||||
// void func_80197E08(void);
|
||||
// void func_80197E48(void);
|
||||
// void func_80197E88(void);
|
||||
|
||||
+3
-127
@@ -1642,10 +1642,10 @@ extern MtxF gIdentityMtxF;
|
||||
// extern UNK_TYPE1 D_801D4790;
|
||||
// extern UNK_TYPE1 D_801D4990;
|
||||
// extern UNK_TYPE1 D_801D4B90;
|
||||
extern UNK_PTR D_801D4D90;
|
||||
extern s16* gWaveSamples[9];
|
||||
extern UNK_PTR D_801D4D98;
|
||||
extern UNK_PTR D_801D4DB0;
|
||||
// extern UNK_TYPE1 D_801D4DB4;
|
||||
extern f32 gBendPitchOneOctaveFrequencies[256];
|
||||
// extern UNK_TYPE1 D_801D4FB4;
|
||||
// extern UNK_TYPE4 D_801D51B4;
|
||||
// extern UNK_TYPE4 D_801D53B4;
|
||||
@@ -3623,131 +3623,7 @@ extern SoundRequest D_801FE7C0[1];
|
||||
// extern UNK_TYPE1 D_80200BCC;
|
||||
// extern UNK_TYPE1 D_80200BCE;
|
||||
// extern UNK_TYPE1 D_80200BD0;
|
||||
// extern UNK_TYPE1 D_80200C70;
|
||||
// extern UNK_TYPE1 D_80200C71;
|
||||
// extern UNK_TYPE1 D_80200C76;
|
||||
// extern UNK_TYPE1 D_80200C78;
|
||||
// extern UNK_TYPE1 D_80200C7C;
|
||||
// extern UNK_TYPE1 D_80200C80;
|
||||
// extern UNK_TYPE1 D_80200C92;
|
||||
// extern UNK_TYPE1 D_80200C94;
|
||||
// extern UNK_TYPE1 D_80200C98;
|
||||
// extern UNK_TYPE1 D_80200C9A;
|
||||
// extern UNK_TYPE1 D_80200C9E;
|
||||
// extern UNK_TYPE1 D_80200CA0;
|
||||
// extern UNK_TYPE1 D_80200CF0;
|
||||
// extern UNK_TYPE1 D_80200D38;
|
||||
// extern UNK_TYPE1 D_80200D70;
|
||||
// extern UNK_TYPE1 D_802011F0;
|
||||
// extern UNK_TYPE1 D_8020178C;
|
||||
// extern UNK_TYPE1 D_802017B0;
|
||||
// extern UNK_TYPE1 D_80201D68;
|
||||
// extern UNK_TYPE1 D_80201D6C;
|
||||
// extern UNK_TYPE1 D_802023FC;
|
||||
// extern UNK_TYPE1 D_80202878;
|
||||
// extern UNK_TYPE1 D_80202880;
|
||||
// extern UNK_TYPE1 D_802028BC;
|
||||
extern OSMesgQueue D_80202980;
|
||||
// extern UNK_TYPE1 D_802029D8;
|
||||
extern OSMesgQueue D_80202AB0;
|
||||
extern OSMesg D_80202AC8[0x10];
|
||||
extern OSMesgQueue D_80202B08;
|
||||
extern OSMesg D_80202B20[0x10];
|
||||
extern OSMesgQueue D_80202B60;
|
||||
extern OSMesg D_80202B78[0x40];
|
||||
extern OSMesgQueue D_80203278;
|
||||
extern OSMesg D_80203290[1];
|
||||
// extern UNK_TYPE1 D_80203294;
|
||||
// extern UNK_TYPE1 D_802034C0;
|
||||
// extern UNK_TYPE1 D_802034C4;
|
||||
// extern UNK_TYPE1 D_802034C8;
|
||||
// extern UNK_TYPE4 D_802034D0;
|
||||
// extern UNK_TYPE1 D_802034D4;
|
||||
// extern UNK_TYPE1 D_802034D8;
|
||||
// extern UNK_TYPE1 D_802034DC;
|
||||
// extern UNK_TYPE1 D_802034E8;
|
||||
// extern UNK_TYPE2 D_802034F0;
|
||||
// extern UNK_TYPE1 D_802034F8;
|
||||
// extern UNK_TYPE1 D_802034FC;
|
||||
// extern UNK_TYPE1 D_80203500;
|
||||
// extern UNK_TYPE4 D_80203528;
|
||||
// extern UNK_TYPE1 D_8020352C;
|
||||
// extern UNK_TYPE1 D_8020352E;
|
||||
// extern UNK_TYPE1 D_80203530;
|
||||
// extern UNK_TYPE4 D_8020360C;
|
||||
// extern UNK_TYPE1 D_80203618;
|
||||
// extern UNK_TYPE1 D_8020361C;
|
||||
// extern UNK_TYPE1 D_80203620;
|
||||
// extern UNK_TYPE1 D_80203624;
|
||||
// extern UNK_TYPE1 D_80203628;
|
||||
// extern UNK_TYPE1 D_80203630;
|
||||
// extern UNK_TYPE1 D_80203640;
|
||||
// extern UNK_TYPE1 D_80203650;
|
||||
// extern UNK_TYPE1 D_80203660;
|
||||
// extern UNK_TYPE1 D_80203690;
|
||||
// extern UNK_TYPE1 D_802036A0;
|
||||
// extern UNK_TYPE1 D_802036B0;
|
||||
// extern UNK_TYPE1 D_802036C0;
|
||||
// extern UNK_TYPE1 D_802036C4;
|
||||
// extern UNK_TYPE1 D_80203794;
|
||||
// extern UNK_TYPE1 D_80203798;
|
||||
// extern UNK_TYPE1 D_802037D0;
|
||||
// extern UNK_TYPE1 D_802037D4;
|
||||
// extern UNK_TYPE1 D_802038A4;
|
||||
// extern UNK_TYPE1 D_802038A8;
|
||||
// extern UNK_TYPE1 D_802038C2;
|
||||
// extern UNK_TYPE1 D_802038CE;
|
||||
// extern UNK_TYPE1 D_802038E0;
|
||||
// extern UNK_TYPE1 D_802038E4;
|
||||
// extern UNK_TYPE1 D_80203970;
|
||||
// extern UNK_TYPE1 D_802039B4;
|
||||
// extern UNK_TYPE1 D_802039B8;
|
||||
// extern UNK_TYPE1 D_802039D2;
|
||||
// extern UNK_TYPE1 D_802039DE;
|
||||
// extern UNK_TYPE1 D_802039F0;
|
||||
// extern UNK_TYPE1 D_802039FC;
|
||||
// extern UNK_TYPE1 D_80203B80;
|
||||
// extern UNK_TYPE1 D_80203B88;
|
||||
// extern UNK_TYPE1 D_80203B90;
|
||||
// extern UNK_TYPE1 D_80204590;
|
||||
// extern UNK_TYPE1 D_80204594;
|
||||
// extern UNK_TYPE1 D_80204598;
|
||||
// extern UNK_TYPE1 D_802045A4;
|
||||
// extern UNK_TYPE1 D_80204FA4;
|
||||
// extern UNK_TYPE1 D_80204FA8;
|
||||
// extern UNK_TYPE1 D_80204FB4;
|
||||
// extern UNK_TYPE1 D_80204FB8;
|
||||
// extern UNK_TYPE1 D_80204FC0;
|
||||
// extern UNK_TYPE1 D_80204FCC;
|
||||
// extern UNK_TYPE1 D_80204FD8;
|
||||
// extern UNK_TYPE1 D_80205008;
|
||||
// extern UNK_TYPE1 D_80205038;
|
||||
// extern UNK_TYPE1 D_802050B9;
|
||||
// extern UNK_TYPE1 D_802050C0;
|
||||
// extern UNK_TYPE1 D_802050C4;
|
||||
// extern UNK_TYPE4 D_802050CC;
|
||||
// extern UNK_TYPE4 D_802050D0;
|
||||
// extern UNK_TYPE1 D_80205228;
|
||||
// extern UNK_TYPE1 D_8020522B;
|
||||
// extern UNK_TYPE1 D_80205390;
|
||||
// extern UNK_TYPE1 D_802053C8;
|
||||
// extern UNK_TYPE1 D_802057B0;
|
||||
// extern UNK_TYPE1 D_80205830;
|
||||
// extern UNK_TYPE1 D_802084B0;
|
||||
// extern UNK_TYPE1 D_80208530;
|
||||
// extern UNK_TYPE1 D_80208598;
|
||||
// extern UNK_TYPE1 D_802085A8;
|
||||
// extern UNK_TYPE1 D_802085B8;
|
||||
// extern UNK_TYPE1 D_802085C8;
|
||||
// extern UNK_TYPE1 D_802085D8;
|
||||
// extern UNK_TYPE1 D_802085F8;
|
||||
// extern UNK_TYPE1 D_802085FC;
|
||||
// extern UNK_TYPE1 D_80208604;
|
||||
// extern UNK_TYPE1 D_8020861C;
|
||||
// extern UNK_TYPE1 D_80208634;
|
||||
// extern UNK_TYPE1 D_8020864C;
|
||||
// extern UNK_TYPE1 D_80208650;
|
||||
// extern UNK_TYPE1 D_80208654;
|
||||
extern AudioContext gAudioContext; // at 0x80200C70
|
||||
// extern UNK_TYPE4 D_80208E68;
|
||||
// extern UNK_TYPE4 D_80208E6C;
|
||||
// extern UNK_TYPE4 D_80208E70;
|
||||
|
||||
+9
-18
@@ -11,6 +11,8 @@
|
||||
|
||||
#define MAX_CHANNELS_PER_BANK 3
|
||||
|
||||
#define AUDIO_LERPIMP(v0, v1, t) (v0 + ((v1 - v0) * t))
|
||||
|
||||
#define ADSR_DISABLE 0
|
||||
#define ADSR_HANG -1
|
||||
#define ADSR_GOTO -2
|
||||
@@ -154,10 +156,10 @@ typedef struct NotePool {
|
||||
// extrapolates exponentially in the wrong direction in that case, but that
|
||||
// doesn't prevent seqplayer from doing it, AFAICT.
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 mode; // bit 0x80 denotes something; the rest are an index 0-5
|
||||
/* 0x02 */ u16 cur;
|
||||
/* 0x04 */ u16 speed;
|
||||
/* 0x08 */ f32 extent;
|
||||
/* 0x0 */ u8 mode; // bit 0x80 denotes something; the rest are an index 0-5
|
||||
/* 0x2 */ u16 cur;
|
||||
/* 0x4 */ u16 speed;
|
||||
/* 0x8 */ f32 extent;
|
||||
} Portamento; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
@@ -298,7 +300,7 @@ typedef struct {
|
||||
/* 0x000 */ u8 fontDmaInProgress : 1;
|
||||
/* 0x000 */ u8 recalculateVolume : 1;
|
||||
/* 0x000 */ u8 stopScript : 1;
|
||||
/* 0x000 */ u8 unk_0b1 : 1;
|
||||
/* 0x000 */ u8 applyBend : 1;
|
||||
/* 0x001 */ u8 state;
|
||||
/* 0x002 */ u8 noteAllocPolicy;
|
||||
/* 0x003 */ u8 muteBehavior;
|
||||
@@ -324,7 +326,7 @@ typedef struct {
|
||||
/* 0x028 */ f32 muteVolumeScale;
|
||||
/* 0x02C */ f32 fadeVolumeScale;
|
||||
/* 0x030 */ f32 appliedFadeVolume;
|
||||
/* 0x034 */ f32 unk_34;
|
||||
/* 0x034 */ f32 bend;
|
||||
/* 0x038 */ struct SequenceChannel* channels[16];
|
||||
/* 0x078 */ SeqScriptState scriptState;
|
||||
/* 0x094 */ u8* shortNoteVelocityTable;
|
||||
@@ -402,17 +404,6 @@ typedef struct VibratoSubStruct {
|
||||
/* 0xC */ u16 vibratoDelay;
|
||||
} VibratoSubStruct; // size = 0xE
|
||||
|
||||
typedef struct SequenceChannelSubStruct {
|
||||
/* 0x0 */ u8 enabled : 1;
|
||||
/* 0x0 */ u8 finished : 1;
|
||||
/* 0x0 */ u8 stopScript : 1;
|
||||
/* 0x0 */ u8 stopSomething2 : 1; // sets SequenceLayer.stopSomething
|
||||
/* 0x0 */ u8 hasInstrument : 1;
|
||||
/* 0x0 */ u8 stereoHeadsetEffects : 1;
|
||||
/* 0x0 */ u8 largeNotes : 1; // notes specify duration and velocity
|
||||
/* 0x0 */ u8 unused : 1;
|
||||
} SequenceChannelSubStruct; // size = 0x1
|
||||
|
||||
// Also known as a SubTrack, according to sm64 debug strings.
|
||||
typedef struct SequenceChannel {
|
||||
/* 0x00 */ u8 enabled : 1;
|
||||
@@ -530,7 +521,7 @@ typedef struct SequenceLayer {
|
||||
/* 0x30 */ Portamento portamento;
|
||||
/* 0x3C */ struct Note* note;
|
||||
/* 0x40 */ f32 freqScale;
|
||||
/* 0x44 */ f32 unk_34;
|
||||
/* 0x44 */ f32 bend;
|
||||
/* 0x48 */ f32 velocitySquare2;
|
||||
/* 0x4C */ f32 velocitySquare; // not sure which one of those corresponds to the sm64 original
|
||||
/* 0x50 */ f32 noteVelocity;
|
||||
|
||||
Reference in New Issue
Block a user