forked from pret/pokecrystal
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaudio.asm
265 lines (220 loc) · 3.87 KB
/
audio.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
musicheader: MACRO
; number of tracks, track idx, address
dbw ((\1 - 1) << 6) + (\2 - 1), \3
ENDM
note: MACRO
dn (\1), (\2) - 1
ENDM
sound: MACRO
note \1, \2
db \3 ; intensity
dw \4 ; frequency
ENDM
noise: MACRO
note \1, \2 ; duration
db \3 ; intensity
db \4 ; frequency
ENDM
; MusicCommands indexes (see audio/engine.asm)
enum_start $d8
enum notetype_cmd ; $d8
octave: MACRO
db notetype_cmd - (\1)
ENDM
notetype: MACRO
db notetype_cmd
db \1 ; note_length
if _NARG >= 2
db \2 ; intensity
endc
ENDM
enum pitchoffset_cmd ; $d9
pitchoffset: MACRO
db pitchoffset_cmd
dn \1, \2 - 1 ; octave, key
ENDM
enum tempo_cmd ; $da
tempo: MACRO
db tempo_cmd
bigdw \1 ; tempo
ENDM
enum dutycycle_cmd ; $db
dutycycle: MACRO
db dutycycle_cmd
db \1 ; duty_cycle
ENDM
enum intensity_cmd ; $dc
intensity: MACRO
db intensity_cmd
db \1 ; intensity
ENDM
enum soundinput_cmd ; $dd
soundinput: MACRO
db soundinput_cmd
db \1 ; input
ENDM
enum sound_duty_cmd ; $de
sound_duty: MACRO
db sound_duty_cmd
if _NARG == 4
db \1 | (\2 << 2) | (\3 << 4) | (\4 << 6) ; duty sequence
else
db \1 ; one-byte duty value for legacy support
endc
ENDM
enum togglesfx_cmd ; $df
togglesfx: MACRO
db togglesfx_cmd
ENDM
enum slidepitchto_cmd ; $e0
slidepitchto: MACRO
db slidepitchto_cmd
db \1 - 1 ; duration
dn \2, \3 ; octave, pitch
ENDM
enum vibrato_cmd ; $e1
vibrato: MACRO
db vibrato_cmd
db \1 ; delay
db \2 ; extent
ENDM
enum unknownmusic0xe2_cmd ; $e2
unknownmusic0xe2: MACRO
db unknownmusic0xe2_cmd
db \1 ; unknown
ENDM
enum togglenoise_cmd ; $e3
togglenoise: MACRO
db togglenoise_cmd
db \1 ; id
ENDM
enum panning_cmd ; $e4
panning: MACRO
db panning_cmd
db \1 ; tracks
ENDM
enum volume_cmd ; $e5
volume: MACRO
db volume_cmd
db \1 ; volume
ENDM
enum tone_cmd ; $e6
tone: MACRO
db tone_cmd
bigdw \1 ; tone
ENDM
enum unknownmusic0xe7_cmd ; $e7
unknownmusic0xe7: MACRO
db unknownmusic0xe7_cmd
db \1 ; unknown
ENDM
enum unknownmusic0xe8_cmd ; $e8
unknownmusic0xe8: MACRO
db unknownmusic0xe8_cmd
db \1 ; unknown
ENDM
enum tempo_relative_cmd ; $e9
tempo_relative: MACRO
db tempo_relative_cmd
bigdw \1 ; value
ENDM
enum restartchannel_cmd ; $ea
restartchannel: MACRO
db restartchannel_cmd
dw \1 ; address
ENDM
enum newsong_cmd ; $eb
newsong: MACRO
db newsong_cmd
bigdw \1 ; id
ENDM
enum sfxpriorityon_cmd ; $ec
sfxpriorityon: MACRO
db sfxpriorityon_cmd
ENDM
enum sfxpriorityoff_cmd ; $ed
sfxpriorityoff: MACRO
db sfxpriorityoff_cmd
ENDM
enum unknownmusic0xee_cmd ; $ee
unknownmusic0xee: MACRO
db unknownmusic0xee_cmd
dw \1 ; address
ENDM
enum stereopanning_cmd ; $ef
stereopanning: MACRO
db stereopanning_cmd
db \1 ; tracks
ENDM
enum sfxtogglenoise_cmd ; $f0
sfxtogglenoise: MACRO
db sfxtogglenoise_cmd
db \1 ; id
ENDM
enum music0xf1_cmd ; $f1
music0xf1: MACRO
db music0xf1_cmd
ENDM
enum music0xf2_cmd ; $f2
music0xf2: MACRO
db music0xf2_cmd
ENDM
enum music0xf3_cmd ; $f3
music0xf3: MACRO
db music0xf3_cmd
ENDM
enum music0xf4_cmd ; $f4
music0xf4: MACRO
db music0xf4_cmd
ENDM
enum music0xf5_cmd ; $f5
music0xf5: MACRO
db music0xf5_cmd
ENDM
enum music0xf6_cmd ; $f6
music0xf6: MACRO
db music0xf6_cmd
ENDM
enum music0xf7_cmd ; $f7
music0xf7: MACRO
db music0xf7_cmd
ENDM
enum music0xf8_cmd ; $f8
music0xf8: MACRO
db music0xf8_cmd
ENDM
enum unknownmusic0xf9_cmd ; $f9
unknownmusic0xf9: MACRO
db unknownmusic0xf9_cmd
ENDM
enum setcondition_cmd ; $fa
setcondition: MACRO
db setcondition_cmd
db \1 ; condition
ENDM
enum jumpif_cmd ; $fb
jumpif: MACRO
db jumpif_cmd
db \1 ; condition
dw \2 ; address
ENDM
enum jumpchannel_cmd ; $fc
jumpchannel: MACRO
db jumpchannel_cmd
dw \1 ; address
ENDM
enum loopchannel_cmd ; $fd
loopchannel: MACRO
db loopchannel_cmd
db \1 ; count
dw \2 ; address
ENDM
enum callchannel_cmd ; $fe
callchannel: MACRO
db callchannel_cmd
dw \1 ; address
ENDM
enum endchannel_cmd ; $ff
endchannel: MACRO
db endchannel_cmd
ENDM