Loading [MathJax]/extensions/tex2jax.js
Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
axfx.h
Go to the documentation of this file.
1#ifndef _DOLPHIN_AXFX_H_
2#define _DOLPHIN_AXFX_H_
3
4#include <dolphin/types.h>
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10typedef struct AXFX_REVSTD_DELAYLINE {
11 /* 0x00 */ s32 inPoint;
12 /* 0x04 */ s32 outPoint;
13 /* 0x08 */ s32 length;
14 /* 0x0C */ f32* inputs;
15 /* 0x10 */ f32 lastOutput;
17
18typedef struct AXFX_REVSTD_WORK {
19 /* 0x000 */ AXFX_REVSTD_DELAYLINE AP[6];
20 /* 0x078 */ AXFX_REVSTD_DELAYLINE C[6];
21 /* 0x0F0 */ f32 allPassCoeff;
22 /* 0x0F4 */ f32 combCoef[6];
23 /* 0x10C */ f32 lpLastout[3];
24 /* 0x118 */ f32 level;
25 /* 0x11C */ f32 damping;
26 /* 0x120 */ s32 preDelayTime;
27 /* 0x124 */ f32* preDelayLine[3];
28 /* 0x130 */ f32* preDelayPtr[3];
30
31typedef struct AXFX_REVERBSTD {
32 /* 0x000 */ AXFX_REVSTD_WORK rv;
33 /* 0x13C */ u8 tempDisableFX;
34 /* 0x140 */ f32 coloration;
35 /* 0x144 */ f32 mix;
36 /* 0x148 */ f32 time;
37 /* 0x14C */ f32 damping;
38 /* 0x150 */ f32 preDelay;
40
41typedef struct AXFX_BUFFERUPDATE {
42 /* 0x00 */ s32* left;
43 /* 0x04 */ s32* right;
44 /* 0x08 */ s32* surround;
46
47typedef struct AXFX_BUFFERUPDATE_DPL2 {
48 /* 0x00 */ s32* L;
49 /* 0x04 */ s32* R;
50 /* 0x08 */ s32* Ls;
51 /* 0x0C */ s32* Rs;
53
54// REVHI Structs
55
56typedef struct AXFX_REVHI_DELAYLINE {
57 /* 0x00 */ s32 inPoint;
58 /* 0x04 */ s32 outPoint;
59 /* 0x08 */ s32 length;
60 /* 0x0C */ f32* inputs;
61 /* 0x10 */ f32 lastOutput;
63
64typedef struct AXFX_REVHI_WORK {
65 /* 0x000 */ AXFX_REVHI_DELAYLINE AP[9];
66 /* 0x0B4 */ AXFX_REVHI_DELAYLINE C[9];
67 /* 0x168 */ f32 allPassCoeff;
68 /* 0x16C */ f32 combCoef[9];
69 /* 0x190 */ f32 lpLastout[3];
70 /* 0x19C */ f32 level;
71 /* 0x1A0 */ f32 damping;
72 /* 0x1A4 */ s32 preDelayTime;
73 /* 0x1A8 */ f32 crosstalk;
74 /* 0x1AC */ f32* preDelayLine[3];
75 /* 0x1B8 */ f32* preDelayPtr[3];
77
78typedef struct AXFX_REVHI_WORK_DPL2 {
79 /* 0x000 */ AXFX_REVHI_DELAYLINE AP[12];
80 /* 0x0F0 */ AXFX_REVHI_DELAYLINE C[12];
81 /* 0x1E0 */ f32 allPassCoeff;
82 /* 0x1E4 */ f32 combCoef[12];
83 /* 0x214 */ f32 lpLastout[4];
84 /* 0x224 */ f32 level;
85 /* 0x228 */ f32 damping;
86 /* 0x22C */ s32 preDelayTime;
87 /* 0x230 */ f32 crosstalk;
88 /* 0x234 */ f32* preDelayLine[4];
89 /* 0x244 */ f32* preDelayPtr[4];
91
92typedef struct AXFX_REVERBHI {
93 /* 0x000 */ AXFX_REVHI_WORK rv;
94 /* 0x1C4 */ u8 tempDisableFX;
95 /* 0x1C8 */ f32 coloration;
96 /* 0x1CC */ f32 mix;
97 /* 0x1D0 */ f32 time;
98 /* 0x1D4 */ f32 damping;
99 /* 0x1D8 */ f32 preDelay;
100 /* 0x1DC */ f32 crosstalk;
102
103typedef struct AXFX_REVERBHI_DPL2 {
105 /* 0x254 */ u8 tempDisableFX;
106 /* 0x258 */ f32 coloration;
107 /* 0x25C */ f32 mix;
108 /* 0x260 */ f32 time;
109 /* 0x264 */ f32 damping;
110 /* 0x268 */ f32 preDelay;
112
113typedef struct AXFX_DELAY {
114 /* 0x00 */ u32 currentSize[3];
115 /* 0x0C */ u32 currentPos[3];
116 /* 0x18 */ u32 currentFeedback[3];
117 /* 0x24 */ u32 currentOutput[3];
118 /* 0x30 */ s32* left;
119 /* 0x34 */ s32* right;
120 /* 0x38 */ s32* sur;
121 /* 0x3C */ u32 delay[3];
122 /* 0x48 */ u32 feedback[3];
123 /* 0x54 */ u32 output[3];
125
126typedef struct AXFX_CHORUS_SRCINFO {
127 /* 0x00 */ s32* dest;
128 /* 0x04 */ s32* smpBase;
129 /* 0x08 */ s32* old;
130 /* 0x0C */ u32 posLo;
131 /* 0x10 */ u32 posHi;
132 /* 0x14 */ u32 pitchLo;
133 /* 0x18 */ u32 pitchHi;
134 /* 0x1C */ u32 trigger;
135 /* 0x20 */ u32 target;
137
138typedef struct AXFX_CHORUS_WORK {
139 /* 0x00 */ s32* lastLeft[3];
140 /* 0x0C */ s32* lastRight[3];
141 /* 0x18 */ s32* lastSur[3];
142 /* 0x24 */ u8 currentLast;
143 /* 0x28 */ s32 oldLeft[4];
144 /* 0x38 */ s32 oldRight[4];
145 /* 0x48 */ s32 oldSur[4];
146 /* 0x58 */ u32 currentPosLo;
147 /* 0x5C */ u32 currentPosHi;
148 /* 0x60 */ s32 pitchOffset;
153
154typedef struct AXFX_CHORUS {
156 /* 0x90 */ u32 baseDelay;
157 /* 0x94 */ u32 variation;
158 /* 0x98 */ u32 period;
160
161// chorus
165void AXFXChorusCallback(AXFX_BUFFERUPDATE* bufferUpdate, AXFX_CHORUS* chorus);
166
167// delay
168void AXFXDelayCallback(AXFX_BUFFERUPDATE* bufferUpdate, AXFX_DELAY* delay);
169int AXFXDelaySettings(AXFX_DELAY* delay);
170int AXFXDelayInit(AXFX_DELAY* delay);
171int AXFXDelayShutdown(AXFX_DELAY* delay);
172
173// reverb_hi
174void DoCrossTalk(s32* l, s32* r, f32 cross, f32 invcross);
178void AXFXReverbHiCallback(AXFX_BUFFERUPDATE* bufferUpdate, AXFX_REVERBHI* reverb);
179
180// reverb_hi_4ch
185
186// reverb_std
190void AXFXReverbStdCallback(AXFX_BUFFERUPDATE* bufferUpdate, AXFX_REVERBSTD* reverb);
191
192#ifdef __cplusplus
193}
194#endif
195
196#endif // _DOLPHIN_AXFX_H_
struct AXFX_BUFFERUPDATE_DPL2 AXFX_BUFFERUPDATE_DPL2
int AXFXReverbStdSettings(AXFX_REVERBSTD *rev)
Definition reverb_std.c:485
int AXFXChorusSettings(AXFX_CHORUS *c)
Definition chorus.c:423
int AXFXDelayShutdown(AXFX_DELAY *delay)
Definition delay.c:126
void AXFXReverbStdCallback(AXFX_BUFFERUPDATE *bufferUpdate, AXFX_REVERBSTD *reverb)
Definition reverb_std.c:497
void AXFXReverbHiCallbackDpl2(AXFX_BUFFERUPDATE_DPL2 *bufferUpdate, AXFX_REVERBHI_DPL2 *reverb)
Definition reverb_hi_4ch.c:602
int AXFXReverbHiSettingsDpl2(AXFX_REVERBHI_DPL2 *rev)
Definition reverb_hi_4ch.c:590
int AXFXReverbHiInitDpl2(AXFX_REVERBHI_DPL2 *reverb)
Definition reverb_hi_4ch.c:570
struct AXFX_REVHI_WORK AXFX_REVHI_WORK
int AXFXReverbHiShutdownDpl2(AXFX_REVERBHI_DPL2 *reverb)
Definition reverb_hi_4ch.c:581
struct AXFX_REVSTD_WORK AXFX_REVSTD_WORK
struct AXFX_CHORUS_WORK AXFX_CHORUS_WORK
struct AXFX_DELAY AXFX_DELAY
void AXFXReverbHiCallback(AXFX_BUFFERUPDATE *bufferUpdate, AXFX_REVERBHI *reverb)
Definition reverb_hi.c:731
void AXFXDelayCallback(AXFX_BUFFERUPDATE *bufferUpdate, AXFX_DELAY *delay)
Definition delay.c:7
struct AXFX_REVERBHI AXFX_REVERBHI
struct AXFX_REVERBSTD AXFX_REVERBSTD
struct AXFX_REVHI_DELAYLINE AXFX_REVHI_DELAYLINE
int AXFXDelaySettings(AXFX_DELAY *delay)
Definition delay.c:43
int AXFXReverbHiSettings(AXFX_REVERBHI *rev)
Definition reverb_hi.c:719
struct AXFX_REVSTD_DELAYLINE AXFX_REVSTD_DELAYLINE
void DoCrossTalk(s32 *l, s32 *r, f32 cross, f32 invcross)
struct AXFX_REVERBHI_DPL2 AXFX_REVERBHI_DPL2
int AXFXReverbStdShutdown(AXFX_REVERBSTD *rev)
Definition reverb_std.c:476
int AXFXReverbHiShutdown(AXFX_REVERBHI *rev)
Definition reverb_hi.c:710
struct AXFX_REVHI_WORK_DPL2 AXFX_REVHI_WORK_DPL2
int AXFXReverbHiInit(AXFX_REVERBHI *rev)
Definition reverb_hi.c:699
int AXFXReverbStdInit(AXFX_REVERBSTD *rev)
Definition reverb_std.c:465
struct AXFX_CHORUS_SRCINFO AXFX_CHORUS_SRCINFO
int AXFXChorusShutdown(AXFX_CHORUS *c)
Definition chorus.c:414
int AXFXDelayInit(AXFX_DELAY *delay)
Definition delay.c:115
int AXFXChorusInit(AXFX_CHORUS *c)
Definition chorus.c:363
struct AXFX_CHORUS AXFX_CHORUS
struct AXFX_BUFFERUPDATE AXFX_BUFFERUPDATE
void AXFXChorusCallback(AXFX_BUFFERUPDATE *bufferUpdate, AXFX_CHORUS *chorus)
Definition chorus.c:442
Ordon Goat.
r
Definition e_acos.c:100
Definition axfx.h:47
s32 * R
Definition axfx.h:49
s32 * Rs
Definition axfx.h:51
s32 * L
Definition axfx.h:48
s32 * Ls
Definition axfx.h:50
Definition axfx.h:41
s32 * surround
Definition axfx.h:44
s32 * left
Definition axfx.h:42
s32 * right
Definition axfx.h:43
Definition axfx.h:126
s32 * old
Definition axfx.h:129
u32 trigger
Definition axfx.h:134
u32 pitchHi
Definition axfx.h:133
s32 * dest
Definition axfx.h:127
s32 * smpBase
Definition axfx.h:128
u32 pitchLo
Definition axfx.h:132
u32 posLo
Definition axfx.h:130
u32 posHi
Definition axfx.h:131
u32 target
Definition axfx.h:135
Definition axfx.h:138
s32 oldLeft[4]
Definition axfx.h:143
AXFX_CHORUS_SRCINFO src
Definition axfx.h:151
u32 currentPosLo
Definition axfx.h:146
u32 pitchOffsetPeriod
Definition axfx.h:150
s32 oldSur[4]
Definition axfx.h:145
s32 * lastSur[3]
Definition axfx.h:141
u32 currentPosHi
Definition axfx.h:147
s32 oldRight[4]
Definition axfx.h:144
s32 pitchOffset
Definition axfx.h:148
u8 currentLast
Definition axfx.h:142
u32 pitchOffsetPeriodCount
Definition axfx.h:149
s32 * lastRight[3]
Definition axfx.h:140
s32 * lastLeft[3]
Definition axfx.h:139
Definition axfx.h:154
u32 period
Definition axfx.h:158
AXFX_CHORUS_WORK work
Definition axfx.h:155
u32 variation
Definition axfx.h:157
u32 baseDelay
Definition axfx.h:156
Definition axfx.h:113
s32 * right
Definition axfx.h:119
u32 currentOutput[3]
Definition axfx.h:117
s32 * left
Definition axfx.h:118
u32 feedback[3]
Definition axfx.h:122
s32 * sur
Definition axfx.h:120
u32 currentPos[3]
Definition axfx.h:115
u32 currentFeedback[3]
Definition axfx.h:116
u32 currentSize[3]
Definition axfx.h:114
u32 output[3]
Definition axfx.h:123
u32 delay[3]
Definition axfx.h:121
Definition axfx.h:103
u8 tempDisableFX
Definition axfx.h:105
f32 mix
Definition axfx.h:107
f32 time
Definition axfx.h:108
AXFX_REVHI_WORK_DPL2 rv
Definition axfx.h:104
f32 coloration
Definition axfx.h:106
f32 damping
Definition axfx.h:109
f32 preDelay
Definition axfx.h:110
Definition axfx.h:92
f32 time
Definition axfx.h:97
f32 damping
Definition axfx.h:98
f32 crosstalk
Definition axfx.h:100
f32 preDelay
Definition axfx.h:99
f32 coloration
Definition axfx.h:95
AXFX_REVHI_WORK rv
Definition axfx.h:93
f32 mix
Definition axfx.h:96
u8 tempDisableFX
Definition axfx.h:94
Definition axfx.h:31
f32 mix
Definition axfx.h:35
f32 coloration
Definition axfx.h:34
u8 tempDisableFX
Definition axfx.h:33
f32 preDelay
Definition axfx.h:38
f32 time
Definition axfx.h:36
f32 damping
Definition axfx.h:37
AXFX_REVSTD_WORK rv
Definition axfx.h:32
Definition axfx.h:56
f32 * inputs
Definition axfx.h:60
s32 outPoint
Definition axfx.h:58
f32 lastOutput
Definition axfx.h:61
s32 length
Definition axfx.h:59
s32 inPoint
Definition axfx.h:57
Definition axfx.h:78
s32 preDelayTime
Definition axfx.h:86
f32 combCoef[12]
Definition axfx.h:82
f32 * preDelayLine[4]
Definition axfx.h:88
f32 level
Definition axfx.h:84
f32 allPassCoeff
Definition axfx.h:81
f32 damping
Definition axfx.h:85
f32 * preDelayPtr[4]
Definition axfx.h:89
f32 crosstalk
Definition axfx.h:87
f32 lpLastout[4]
Definition axfx.h:83
AXFX_REVHI_DELAYLINE C[12]
Definition axfx.h:80
AXFX_REVHI_DELAYLINE AP[12]
Definition axfx.h:79
Definition axfx.h:64
f32 level
Definition axfx.h:70
f32 * preDelayLine[3]
Definition axfx.h:74
f32 combCoef[9]
Definition axfx.h:68
f32 crosstalk
Definition axfx.h:73
f32 damping
Definition axfx.h:71
AXFX_REVHI_DELAYLINE AP[9]
Definition axfx.h:65
AXFX_REVHI_DELAYLINE C[9]
Definition axfx.h:66
f32 allPassCoeff
Definition axfx.h:67
f32 lpLastout[3]
Definition axfx.h:69
s32 preDelayTime
Definition axfx.h:72
f32 * preDelayPtr[3]
Definition axfx.h:75
Definition axfx.h:10
s32 inPoint
Definition axfx.h:11
f32 * inputs
Definition axfx.h:14
s32 length
Definition axfx.h:13
s32 outPoint
Definition axfx.h:12
f32 lastOutput
Definition axfx.h:15
Definition axfx.h:18
f32 level
Definition axfx.h:24
f32 * preDelayPtr[3]
Definition axfx.h:28
AXFX_REVSTD_DELAYLINE AP[6]
Definition axfx.h:19
f32 combCoef[6]
Definition axfx.h:22
f32 allPassCoeff
Definition axfx.h:21
f32 lpLastout[3]
Definition axfx.h:23
f32 damping
Definition axfx.h:25
f32 * preDelayLine[3]
Definition axfx.h:27
s32 preDelayTime
Definition axfx.h:26
AXFX_REVSTD_DELAYLINE C[6]
Definition axfx.h:20
unsigned long u32
Definition types.h:9
float f32
Definition types.h:22
signed long s32
Definition types.h:8
unsigned char u8
Definition types.h:5