Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
syn.h
Go to the documentation of this file.
1
#ifndef _DOLPHIN_SYN_H_
2
#define _DOLPHIN_SYN_H_
3
4
#ifdef __REVOLUTION_SDK__
5
#include <
revolution/syn.h
>
6
#else
7
#include <
dolphin/types.h
>
8
#include <
dolphin/ax.h
>
9
10
#ifdef __cplusplus
11
extern
"C"
{
12
#endif
13
14
#define SYN_INPUT_BUFFER_SIZE 0x100
15
16
typedef
struct
WTINST
{
17
/* 0x00 */
u16
keyRegion
[128];
18
}
WTINST
;
19
20
typedef
struct
WTREGION
{
21
/* 0x00 */
u8
unityNote
;
22
/* 0x01 */
u8
keyGroup
;
23
/* 0x02 */
s16
fineTune
;
24
/* 0x04 */
s32
attn
;
25
/* 0x08 */
u32
loopStart
;
26
/* 0x0C */
u32
loopLength
;
27
/* 0x10 */
u32
articulationIndex
;
28
/* 0x14 */
u32
sampleIndex
;
29
}
WTREGION
;
30
31
typedef
struct
WTART
{
32
/* 0x00 */
s32
lfoFreq
;
33
/* 0x04 */
s32
lfoDelay
;
34
/* 0x08 */
s32
lfoAtten
;
35
/* 0x0C */
s32
lfoPitch
;
36
/* 0x10 */
s32
lfoMod2Atten
;
37
/* 0x14 */
s32
lfoMod2Pitch
;
38
/* 0x18 */
s32
eg1Attack
;
39
/* 0x1C */
s32
eg1Decay
;
40
/* 0x20 */
s32
eg1Sustain
;
41
/* 0x24 */
s32
eg1Release
;
42
/* 0x28 */
s32
eg1Vel2Attack
;
43
/* 0x2C */
s32
eg1Key2Decay
;
44
/* 0x30 */
s32
eg2Attack
;
45
/* 0x34 */
s32
eg2Decay
;
46
/* 0x38 */
s32
eg2Sustain
;
47
/* 0x3C */
s32
eg2Release
;
48
/* 0x40 */
s32
eg2Vel2Attack
;
49
/* 0x44 */
s32
eg2Key2Decay
;
50
/* 0x48 */
s32
eg2Pitch
;
51
/* 0x4C */
s32
pan
;
52
}
WTART
;
53
54
typedef
struct
WTSAMPLE
{
55
/* 0x00 */
u16
format
;
56
/* 0x02 */
u16
sampleRate
;
57
/* 0x04 */
u32
offset
;
58
/* 0x08 */
u32
length
;
59
/* 0x0C */
u16
adpcmIndex
;
60
}
WTSAMPLE
;
61
62
typedef
struct
WTADPCM
{
63
/* 0x00 */
u16
a
[8][2];
64
/* 0x20 */
u16
gain
;
65
/* 0x22 */
u16
pred_scale
;
66
/* 0x24 */
u16
yn1
;
67
/* 0x26 */
u16
yn2
;
68
/* 0x28 */
u16
loop_pred_scale
;
69
/* 0x2A */
u16
loop_yn1
;
70
/* 0x2C */
u16
loop_yn2
;
71
}
WTADPCM
;
72
73
typedef
struct
SYNSYNTH
{
74
/* 0x0000 */
void
*
next
;
75
/* 0x0004 */
WTINST
*
percussiveInst
;
76
/* 0x0008 */
WTINST
*
melodicInst
;
77
/* 0x000C */
WTREGION
*
region
;
78
/* 0x0010 */
WTART
*
art
;
79
/* 0x0014 */
WTSAMPLE
*
sample
;
80
/* 0x0018 */
WTADPCM
*
adpcm
;
81
/* 0x001C */
u32
aramBaseWord
;
82
/* 0x0020 */
u32
aramBaseByte
;
83
/* 0x0024 */
u32
aramBaseNibble
;
84
/* 0x0028 */
u32
zeroBaseWord
;
85
/* 0x002C */
u32
zeroBaseByte
;
86
/* 0x0030 */
u32
zeroBaseNibble
;
87
/* 0x0034 */
u32
priorityVoiceAlloc
;
88
/* 0x0038 */
u32
priorityNoteOn
;
89
/* 0x003C */
u32
priorityNoteRelease
;
90
/* 0x0040 */
WTINST
*
inst
[16];
91
/* 0x0080 */
s32
masterVolume
;
92
/* 0x0084 */
u8
controller
[16][128];
93
/* 0x0844 */
u8
rpn
[16];
94
/* 0x0894 */
s16
dataEntry
[16];
95
/* 0x08B4 */
s32
pwMaxCents
[16];
96
/* 0x08F4 */
s32
pwCents
[16];
97
/* 0x0934 */
s32
volAttn
[16];
98
/* 0x0974 */
s32
expAttn
[16];
99
/* 0x09B4 */
s32
auxAAttn
[16];
100
/* 0x09F4 */
s32
auxBAttn
[16];
101
/* 0x0A34 */
u8
input
[SYN_INPUT_BUFFER_SIZE][3];
102
/* 0x0D34 */
u8
*
inputPosition
;
103
/* 0x0D38 */
u32
inputCounter
;
104
/* 0x0D3C */
u32
notes
;
105
/* 0x0D40 */
void
*
keyGroup
[16][16];
106
/* 0x1140 */
void
*
voice
[16][128];
107
}
SYNSYNTH
;
108
109
typedef
struct
SYNVOICE
{
110
/* 0x00 */
void
*
next
;
111
/* 0x04 */
AXVPB
*
axvpb
;
112
/* 0x08 */
SYNSYNTH
*
synth
;
113
/* 0x0C */
u8
midiChannel
;
114
/* 0x0D */
u8
keyNum
;
115
/* 0x0E */
u8
keyVel
;
116
/* 0x0F */
u8
pan
;
117
/* 0x10 */
u8
keyGroup
;
118
/* 0x14 */
WTREGION
*
region
;
119
/* 0x18 */
WTART
*
art
;
120
/* 0x1C */
WTSAMPLE
*
sample
;
121
/* 0x20 */
WTADPCM
*
adpcm
;
122
/* 0x24 */
u32
hold
;
123
/* 0x28 */
u32
type
;
124
/* 0x2C */
f32
srcRatio
;
125
/* 0x30 */
s32
cents
;
126
/* 0x34 */
s32
attn
;
127
/* 0x38 */
s32
lfoState
;
128
/* 0x3C */
s32
lfoAttn
;
129
/* 0x40 */
s32
lfoCents
;
130
/* 0x44 */
s32
lfoFreq
;
131
/* 0x48 */
s32
lfoDelay
;
132
/* 0x4C */
s32
lfoAttn_
;
133
/* 0x50 */
s32
lfoCents_
;
134
/* 0x54 */
s32
lfoModAttn
;
135
/* 0x58 */
s32
lfoModCents
;
136
/* 0x5C */
u32
veState
;
137
/* 0x60 */
s32
veAttn
;
138
/* 0x64 */
s32
veAttack
;
139
/* 0x68 */
s32
veAttackDelta
;
140
/* 0x6C */
s32
veDecay
;
141
/* 0x70 */
s32
veSustain
;
142
/* 0x74 */
s32
veRelease
;
143
/* 0x78 */
u32
peState
;
144
/* 0x7C */
s32
peCents
;
145
/* 0x80 */
s32
peAttack
;
146
/* 0x84 */
s32
peDecay
;
147
/* 0x88 */
s32
peSustain
;
148
/* 0x8C */
s32
peRelease
;
149
/* 0x90 */
s32
pePitch
;
150
}
SYNVOICE
;
151
152
// sample formats
153
#define SYN_SAMPLE_FORMAT_ADPCM 0
154
#define SYN_SAMPLE_FORMAT_PCM16 1
155
#define SYN_SAMPLE_FORMAT_PCM8 2
156
157
// SYN
158
void
SYNInit
(
void
);
159
void
SYNQuit
(
void
);
160
void
SYNRunAudioFrame
(
void
);
161
void
SYNInitSynth
(
SYNSYNTH
* synth,
void
* wavetable,
u32
aramBase,
u32
zeroBase,
u32
priorityVoiceAlloc,
u32
priorityNoteOn,
u32
priorityNoteRelease);
162
void
SYNQuitSynth
(
SYNSYNTH
* synth);
163
void
SYNMidiInput
(
SYNSYNTH
* synth,
u8
* input);
164
void
SYNSetMasterVolume
(
SYNSYNTH
* synth,
s32
dB);
165
s32
SYNGetMasterVolume
(
SYNSYNTH
* synth);
166
u32
SYNGetActiveNotes
(
SYNSYNTH
* synth);
167
168
// SYNCTRL
169
u8
SYNGetMidiController
(
SYNSYNTH
* synth,
u8
midiChannel,
u8
function);
170
171
#ifdef __cplusplus
172
}
173
#endif
174
175
#endif
176
#endif
// _DOLPHIN_SYN_H_
ax.h
SYNGetMasterVolume
s32 SYNGetMasterVolume(SYNSYNTH *synth)
Definition
syn.c:172
WTSAMPLE
struct WTSAMPLE WTSAMPLE
SYNGetActiveNotes
u32 SYNGetActiveNotes(SYNSYNTH *synth)
Definition
syn.c:177
SYNSetMasterVolume
void SYNSetMasterVolume(SYNSYNTH *synth, s32 dB)
Definition
syn.c:167
SYNGetMidiController
u8 SYNGetMidiController(SYNSYNTH *synth, u8 midiChannel, u8 function)
Definition
synctrl.c:505
WTART
struct WTART WTART
WTREGION
struct WTREGION WTREGION
WTADPCM
struct WTADPCM WTADPCM
SYNVOICE
struct SYNVOICE SYNVOICE
SYNRunAudioFrame
void SYNRunAudioFrame(void)
Definition
syn.c:70
SYNInitSynth
void SYNInitSynth(SYNSYNTH *synth, void *wavetable, u32 aramBase, u32 zeroBase, u32 priorityVoiceAlloc, u32 priorityNoteOn, u32 priorityNoteRelease)
Definition
syn.c:83
SYNQuit
void SYNQuit(void)
Definition
syn.c:66
SYNMidiInput
void SYNMidiInput(SYNSYNTH *synth, u8 *input)
Definition
syn.c:150
SYNInit
void SYNInit(void)
Definition
syn.c:57
WTINST
struct WTINST WTINST
SYNQuitSynth
void SYNQuitSynth(SYNSYNTH *synth)
Definition
syn.c:129
types.h
u32
unsigned long u32
Definition
types.h:12
s16
signed short int s16
Definition
types.h:9
f32
float f32
Definition
types.h:25
u16
unsigned short int u16
Definition
types.h:10
s32
signed long s32
Definition
types.h:11
u8
unsigned char u8
Definition
types.h:8
syn.h
SYNSYNTH
struct SYNSYNTH SYNSYNTH
SYNSYNTH
Definition
syn.h:73
SYNSYNTH::expAttn
s32 expAttn[16]
Definition
syn.h:98
SYNSYNTH::percussiveInst
WTINST * percussiveInst
Definition
syn.h:75
SYNSYNTH::next
void * next
Definition
syn.h:74
SYNSYNTH::volAttn
s32 volAttn[16]
Definition
syn.h:97
SYNSYNTH::voice
void * voice[16][128]
Definition
syn.h:106
SYNSYNTH::pwCents
s32 pwCents[16]
Definition
syn.h:96
SYNSYNTH::inputCounter
u32 inputCounter
Definition
syn.h:103
SYNSYNTH::controller
u8 controller[16][128]
Definition
syn.h:92
SYNSYNTH::zeroBaseByte
u32 zeroBaseByte
Definition
syn.h:85
SYNSYNTH::zeroBaseNibble
u32 zeroBaseNibble
Definition
syn.h:86
SYNSYNTH::sample
WTSAMPLE * sample
Definition
syn.h:79
SYNSYNTH::region
WTREGION * region
Definition
syn.h:77
SYNSYNTH::melodicInst
WTINST * melodicInst
Definition
syn.h:76
SYNSYNTH::aramBaseNibble
u32 aramBaseNibble
Definition
syn.h:83
SYNSYNTH::priorityVoiceAlloc
u32 priorityVoiceAlloc
Definition
syn.h:87
SYNSYNTH::pwMaxCents
s32 pwMaxCents[16]
Definition
syn.h:95
SYNSYNTH::aramBaseByte
u32 aramBaseByte
Definition
syn.h:82
SYNSYNTH::priorityNoteOn
u32 priorityNoteOn
Definition
syn.h:88
SYNSYNTH::input
u8 input[SYN_INPUT_BUFFER_SIZE][3]
Definition
syn.h:101
SYNSYNTH::notes
u32 notes
Definition
syn.h:104
SYNSYNTH::art
WTART * art
Definition
syn.h:78
SYNSYNTH::inst
WTINST * inst[16]
Definition
syn.h:90
SYNSYNTH::inputPosition
u8 * inputPosition
Definition
syn.h:102
SYNSYNTH::adpcm
WTADPCM * adpcm
Definition
syn.h:80
SYNSYNTH::zeroBaseWord
u32 zeroBaseWord
Definition
syn.h:84
SYNSYNTH::dataEntry
s16 dataEntry[16]
Definition
syn.h:94
SYNSYNTH::keyGroup
void * keyGroup[16][16]
Definition
syn.h:105
SYNSYNTH::auxAAttn
s32 auxAAttn[16]
Definition
syn.h:99
SYNSYNTH::priorityNoteRelease
u32 priorityNoteRelease
Definition
syn.h:89
SYNSYNTH::masterVolume
s32 masterVolume
Definition
syn.h:91
SYNSYNTH::rpn
u8 rpn[16]
Definition
syn.h:93
SYNSYNTH::auxBAttn
s32 auxBAttn[16]
Definition
syn.h:100
SYNSYNTH::aramBaseWord
u32 aramBaseWord
Definition
syn.h:81
SYNVOICE
Definition
syn.h:109
SYNVOICE::srcRatio
f32 srcRatio
Definition
syn.h:124
SYNVOICE::peDecay
s32 peDecay
Definition
syn.h:146
SYNVOICE::lfoModCents
s32 lfoModCents
Definition
syn.h:135
SYNVOICE::peSustain
s32 peSustain
Definition
syn.h:147
SYNVOICE::type
u32 type
Definition
syn.h:123
SYNVOICE::veDecay
s32 veDecay
Definition
syn.h:140
SYNVOICE::keyGroup
u8 keyGroup
Definition
syn.h:117
SYNVOICE::art
WTART * art
Definition
syn.h:119
SYNVOICE::lfoAttn
s32 lfoAttn
Definition
syn.h:128
SYNVOICE::lfoCents
s32 lfoCents
Definition
syn.h:129
SYNVOICE::veAttackDelta
s32 veAttackDelta
Definition
syn.h:139
SYNVOICE::synth
SYNSYNTH * synth
Definition
syn.h:112
SYNVOICE::pePitch
s32 pePitch
Definition
syn.h:149
SYNVOICE::peAttack
s32 peAttack
Definition
syn.h:145
SYNVOICE::next
void * next
Definition
syn.h:110
SYNVOICE::attn
s32 attn
Definition
syn.h:126
SYNVOICE::midiChannel
u8 midiChannel
Definition
syn.h:113
SYNVOICE::axvpb
AXVPB * axvpb
Definition
syn.h:111
SYNVOICE::cents
s32 cents
Definition
syn.h:125
SYNVOICE::lfoModAttn
s32 lfoModAttn
Definition
syn.h:134
SYNVOICE::peRelease
s32 peRelease
Definition
syn.h:148
SYNVOICE::lfoAttn_
s32 lfoAttn_
Definition
syn.h:132
SYNVOICE::region
WTREGION * region
Definition
syn.h:118
SYNVOICE::veAttack
s32 veAttack
Definition
syn.h:138
SYNVOICE::veRelease
s32 veRelease
Definition
syn.h:142
SYNVOICE::veSustain
s32 veSustain
Definition
syn.h:141
SYNVOICE::lfoState
s32 lfoState
Definition
syn.h:127
SYNVOICE::lfoDelay
s32 lfoDelay
Definition
syn.h:131
SYNVOICE::lfoCents_
s32 lfoCents_
Definition
syn.h:133
SYNVOICE::adpcm
WTADPCM * adpcm
Definition
syn.h:121
SYNVOICE::lfoFreq
s32 lfoFreq
Definition
syn.h:130
SYNVOICE::keyVel
u8 keyVel
Definition
syn.h:115
SYNVOICE::peState
u32 peState
Definition
syn.h:143
SYNVOICE::hold
u32 hold
Definition
syn.h:122
SYNVOICE::keyNum
u8 keyNum
Definition
syn.h:114
SYNVOICE::veAttn
s32 veAttn
Definition
syn.h:137
SYNVOICE::pan
u8 pan
Definition
syn.h:116
SYNVOICE::peCents
s32 peCents
Definition
syn.h:144
SYNVOICE::sample
WTSAMPLE * sample
Definition
syn.h:120
SYNVOICE::veState
u32 veState
Definition
syn.h:136
WTADPCM
Definition
syn.h:62
WTADPCM::yn2
u16 yn2
Definition
syn.h:67
WTADPCM::pred_scale
u16 pred_scale
Definition
syn.h:65
WTADPCM::loop_yn1
u16 loop_yn1
Definition
syn.h:69
WTADPCM::yn1
u16 yn1
Definition
syn.h:66
WTADPCM::a
u16 a[8][2]
Definition
syn.h:63
WTADPCM::loop_pred_scale
u16 loop_pred_scale
Definition
syn.h:68
WTADPCM::gain
u16 gain
Definition
syn.h:64
WTADPCM::loop_yn2
u16 loop_yn2
Definition
syn.h:70
WTART
Definition
syn.h:31
WTART::lfoMod2Pitch
s32 lfoMod2Pitch
Definition
syn.h:37
WTART::eg1Release
s32 eg1Release
Definition
syn.h:41
WTART::eg2Decay
s32 eg2Decay
Definition
syn.h:45
WTART::lfoAtten
s32 lfoAtten
Definition
syn.h:34
WTART::eg1Vel2Attack
s32 eg1Vel2Attack
Definition
syn.h:42
WTART::lfoDelay
s32 lfoDelay
Definition
syn.h:33
WTART::eg2Release
s32 eg2Release
Definition
syn.h:47
WTART::eg2Pitch
s32 eg2Pitch
Definition
syn.h:50
WTART::pan
s32 pan
Definition
syn.h:51
WTART::eg1Sustain
s32 eg1Sustain
Definition
syn.h:40
WTART::lfoMod2Atten
s32 lfoMod2Atten
Definition
syn.h:36
WTART::eg2Vel2Attack
s32 eg2Vel2Attack
Definition
syn.h:48
WTART::eg2Sustain
s32 eg2Sustain
Definition
syn.h:46
WTART::eg2Attack
s32 eg2Attack
Definition
syn.h:44
WTART::lfoPitch
s32 lfoPitch
Definition
syn.h:35
WTART::eg1Decay
s32 eg1Decay
Definition
syn.h:39
WTART::lfoFreq
s32 lfoFreq
Definition
syn.h:32
WTART::eg1Key2Decay
s32 eg1Key2Decay
Definition
syn.h:43
WTART::eg2Key2Decay
s32 eg2Key2Decay
Definition
syn.h:49
WTART::eg1Attack
s32 eg1Attack
Definition
syn.h:38
WTINST
Definition
syn.h:16
WTINST::keyRegion
u16 keyRegion[128]
Definition
syn.h:17
WTREGION
Definition
syn.h:20
WTREGION::fineTune
s16 fineTune
Definition
syn.h:23
WTREGION::sampleIndex
u32 sampleIndex
Definition
syn.h:28
WTREGION::keyGroup
u8 keyGroup
Definition
syn.h:22
WTREGION::attn
s32 attn
Definition
syn.h:24
WTREGION::loopStart
u32 loopStart
Definition
syn.h:25
WTREGION::loopLength
u32 loopLength
Definition
syn.h:26
WTREGION::articulationIndex
u32 articulationIndex
Definition
syn.h:27
WTREGION::unityNote
u8 unityNote
Definition
syn.h:21
WTSAMPLE
Definition
syn.h:54
WTSAMPLE::sampleRate
u16 sampleRate
Definition
syn.h:56
WTSAMPLE::length
u32 length
Definition
syn.h:58
WTSAMPLE::format
u16 format
Definition
syn.h:55
WTSAMPLE::adpcmIndex
u16 adpcmIndex
Definition
syn.h:59
WTSAMPLE::offset
u32 offset
Definition
syn.h:57
_AXVPB
Definition
ax.h:136
include
dolphin
syn.h
Generated by
1.12.0