forked from gameboyadvancesp/understanding-pokemon-red
-
Notifications
You must be signed in to change notification settings - Fork 1
/
music_constants.asm
277 lines (255 loc) · 12.7 KB
/
music_constants.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
266
267
268
269
270
271
272
273
274
275
276
277
; HW sound channel register base addresses
HW_CH1_BASE EQU (rNR10 % $100)
HW_CH2_BASE EQU ((rNR21 % $100) - 1)
HW_CH3_BASE EQU (rNR30 % $100)
HW_CH4_BASE EQU ((rNR41 % $100) - 1)
; HW sound channel enable bit masks
HW_CH1_ENABLE_MASK EQU %00010001
HW_CH2_ENABLE_MASK EQU %00100010
HW_CH3_ENABLE_MASK EQU %01000100
HW_CH4_ENABLE_MASK EQU %10001000
; HW sound channel disable bit masks
HW_CH1_DISABLE_MASK EQU (~HW_CH1_ENABLE_MASK & $ff)
HW_CH2_DISABLE_MASK EQU (~HW_CH2_ENABLE_MASK & $ff)
HW_CH3_DISABLE_MASK EQU (~HW_CH3_ENABLE_MASK & $ff)
HW_CH4_DISABLE_MASK EQU (~HW_CH4_ENABLE_MASK & $ff)
REG_DUTY_SOUND_LEN EQU 1
REG_VOLUME_ENVELOPE EQU 2
REG_FREQUENCY_LO EQU 3
MAX_SFX_ID_1 EQUS "SFX_SAFARI_ZONE_PA"
MAX_SFX_ID_2 EQUS "SFX_SILPH_SCOPE"
MAX_SFX_ID_3 EQUS "SFX_SHOOTING_STAR"
NOISE_INSTRUMENTS_START EQUS "SFX_NOISE_INSTRUMENT01"
NOISE_INSTRUMENTS_END EQUS "SFX_NOISE_INSTRUMENT19 + 1"
CRY_SFX_START EQUS "SFX_CRY_00"
CRY_SFX_END EQUS "SFX_CRY_25 + 3"
BATTLE_SFX_START EQUS "SFX_PECK"
BATTLE_SFX_END EQUS "SFX_SILPH_SCOPE + 1"
; wChannelFlags1 constants
BIT_PERFECT_PITCH EQU 0 ; controlled by toggle_perfect_pitch command
BIT_SOUND_CALL EQU 1 ; if in sound call
BIT_NOISE_OR_SFX EQU 2 ; if channel is the music noise channel or an SFX channel
BIT_VIBRATO_DIRECTION EQU 3 ; if the pitch is above or below normal (cycles)
BIT_PITCH_SLIDE_ON EQU 4 ; if pitch slide is active
BIT_PITCH_SLIDE_DECREASING EQU 5 ; if the pitch slide frequency is decreasing (instead of increasing)
BIT_ROTATE_DUTY_CYCLE EQU 6 ; if rotating duty cycle
; wChannelFlags2 constant (only has one flag)
BIT_EXECUTE_MUSIC EQU 0 ; if in execute music
; Song ids are calculated by address to save space.
music_const: MACRO
\1 EQUS "((\2 - SFX_Headers_1) / 3)"
ENDM
; AUDIO_1
music_const MUSIC_PALLET_TOWN, Music_PalletTown
music_const MUSIC_POKECENTER, Music_Pokecenter
music_const MUSIC_GYM, Music_Gym
music_const MUSIC_CITIES1, Music_Cities1
music_const MUSIC_CITIES2, Music_Cities2
music_const MUSIC_CELADON, Music_Celadon
music_const MUSIC_CINNABAR, Music_Cinnabar
music_const MUSIC_VERMILION, Music_Vermilion
music_const MUSIC_LAVENDER, Music_Lavender
music_const MUSIC_SS_ANNE, Music_SSAnne
music_const MUSIC_MEET_PROF_OAK, Music_MeetProfOak
music_const MUSIC_MEET_RIVAL, Music_MeetRival
music_const MUSIC_MUSEUM_GUY, Music_MuseumGuy
music_const MUSIC_SAFARI_ZONE, Music_SafariZone
music_const MUSIC_PKMN_HEALED, Music_PkmnHealed
music_const MUSIC_ROUTES1, Music_Routes1
music_const MUSIC_ROUTES2, Music_Routes2
music_const MUSIC_ROUTES3, Music_Routes3
music_const MUSIC_ROUTES4, Music_Routes4
music_const MUSIC_INDIGO_PLATEAU, Music_IndigoPlateau
; AUDIO_2
music_const MUSIC_GYM_LEADER_BATTLE, Music_GymLeaderBattle
music_const MUSIC_TRAINER_BATTLE, Music_TrainerBattle
music_const MUSIC_WILD_BATTLE, Music_WildBattle
music_const MUSIC_FINAL_BATTLE, Music_FinalBattle
music_const MUSIC_DEFEATED_TRAINER, Music_DefeatedTrainer
music_const MUSIC_DEFEATED_WILD_MON, Music_DefeatedWildMon
music_const MUSIC_DEFEATED_GYM_LEADER, Music_DefeatedGymLeader
; AUDIO_3
music_const MUSIC_TITLE_SCREEN, Music_TitleScreen
music_const MUSIC_CREDITS, Music_Credits
music_const MUSIC_HALL_OF_FAME, Music_HallOfFame
music_const MUSIC_OAKS_LAB, Music_OaksLab
music_const MUSIC_JIGGLYPUFF_SONG, Music_JigglypuffSong
music_const MUSIC_BIKE_RIDING, Music_BikeRiding
music_const MUSIC_SURFING, Music_Surfing
music_const MUSIC_GAME_CORNER, Music_GameCorner
music_const MUSIC_INTRO_BATTLE, Music_IntroBattle
music_const MUSIC_DUNGEON1, Music_Dungeon1
music_const MUSIC_DUNGEON2, Music_Dungeon2
music_const MUSIC_DUNGEON3, Music_Dungeon3
music_const MUSIC_CINNABAR_MANSION, Music_CinnabarMansion
music_const MUSIC_POKEMON_TOWER, Music_PokemonTower
music_const MUSIC_SILPH_CO, Music_SilphCo
music_const MUSIC_MEET_EVIL_TRAINER, Music_MeetEvilTrainer
music_const MUSIC_MEET_FEMALE_TRAINER, Music_MeetFemaleTrainer
music_const MUSIC_MEET_MALE_TRAINER, Music_MeetMaleTrainer
; AUDIO_1 AUDIO_2 AUDIO_3
music_const SFX_NOISE_INSTRUMENT01, SFX_Noise_Instrument01_1
music_const SFX_NOISE_INSTRUMENT02, SFX_Noise_Instrument02_1
music_const SFX_NOISE_INSTRUMENT03, SFX_Noise_Instrument03_1
music_const SFX_NOISE_INSTRUMENT04, SFX_Noise_Instrument04_1
music_const SFX_NOISE_INSTRUMENT05, SFX_Noise_Instrument05_1
music_const SFX_NOISE_INSTRUMENT06, SFX_Noise_Instrument06_1
music_const SFX_NOISE_INSTRUMENT07, SFX_Noise_Instrument07_1
music_const SFX_NOISE_INSTRUMENT08, SFX_Noise_Instrument08_1
music_const SFX_NOISE_INSTRUMENT09, SFX_Noise_Instrument09_1
music_const SFX_NOISE_INSTRUMENT10, SFX_Noise_Instrument10_1
music_const SFX_NOISE_INSTRUMENT11, SFX_Noise_Instrument11_1
music_const SFX_NOISE_INSTRUMENT12, SFX_Noise_Instrument12_1
music_const SFX_NOISE_INSTRUMENT13, SFX_Noise_Instrument13_1
music_const SFX_NOISE_INSTRUMENT14, SFX_Noise_Instrument14_1
music_const SFX_NOISE_INSTRUMENT15, SFX_Noise_Instrument15_1
music_const SFX_NOISE_INSTRUMENT16, SFX_Noise_Instrument16_1
music_const SFX_NOISE_INSTRUMENT17, SFX_Noise_Instrument17_1
music_const SFX_NOISE_INSTRUMENT18, SFX_Noise_Instrument18_1
music_const SFX_NOISE_INSTRUMENT19, SFX_Noise_Instrument19_1
music_const SFX_CRY_00, SFX_Cry00_1
music_const SFX_CRY_01, SFX_Cry01_1
music_const SFX_CRY_02, SFX_Cry02_1
music_const SFX_CRY_03, SFX_Cry03_1
music_const SFX_CRY_04, SFX_Cry04_1
music_const SFX_CRY_05, SFX_Cry05_1
music_const SFX_CRY_06, SFX_Cry06_1
music_const SFX_CRY_07, SFX_Cry07_1
music_const SFX_CRY_08, SFX_Cry08_1
music_const SFX_CRY_09, SFX_Cry09_1
music_const SFX_CRY_0A, SFX_Cry0A_1
music_const SFX_CRY_0B, SFX_Cry0B_1
music_const SFX_CRY_0C, SFX_Cry0C_1
music_const SFX_CRY_0D, SFX_Cry0D_1
music_const SFX_CRY_0E, SFX_Cry0E_1
music_const SFX_CRY_0F, SFX_Cry0F_1
music_const SFX_CRY_10, SFX_Cry10_1
music_const SFX_CRY_11, SFX_Cry11_1
music_const SFX_CRY_12, SFX_Cry12_1
music_const SFX_CRY_13, SFX_Cry13_1
music_const SFX_CRY_14, SFX_Cry14_1
music_const SFX_CRY_15, SFX_Cry15_1
music_const SFX_CRY_16, SFX_Cry16_1
music_const SFX_CRY_17, SFX_Cry17_1
music_const SFX_CRY_18, SFX_Cry18_1
music_const SFX_CRY_19, SFX_Cry19_1
music_const SFX_CRY_1A, SFX_Cry1A_1
music_const SFX_CRY_1B, SFX_Cry1B_1
music_const SFX_CRY_1C, SFX_Cry1C_1
music_const SFX_CRY_1D, SFX_Cry1D_1
music_const SFX_CRY_1E, SFX_Cry1E_1
music_const SFX_CRY_1F, SFX_Cry1F_1
music_const SFX_CRY_20, SFX_Cry20_1
music_const SFX_CRY_21, SFX_Cry21_1
music_const SFX_CRY_22, SFX_Cry22_1
music_const SFX_CRY_23, SFX_Cry23_1
music_const SFX_CRY_24, SFX_Cry24_1
music_const SFX_CRY_25, SFX_Cry25_1
music_const SFX_GET_ITEM_2, SFX_Get_Item2_1
music_const SFX_TINK, SFX_Tink_1
music_const SFX_HEAL_HP, SFX_Heal_HP_1
music_const SFX_HEAL_AILMENT, SFX_Heal_Ailment_1
music_const SFX_START_MENU, SFX_Start_Menu_1
music_const SFX_PRESS_AB, SFX_Press_AB_1
; AUDIO_1 AUDIO_3
music_const SFX_GET_ITEM_1, SFX_Get_Item1_1
music_const SFX_POKEDEX_RATING, SFX_Pokedex_Rating_1
music_const SFX_GET_KEY_ITEM, SFX_Get_Key_Item_1
music_const SFX_POISONED, SFX_Poisoned_1
music_const SFX_TRADE_MACHINE, SFX_Trade_Machine_1
music_const SFX_TURN_ON_PC, SFX_Turn_On_PC_1
music_const SFX_TURN_OFF_PC, SFX_Turn_Off_PC_1
music_const SFX_ENTER_PC, SFX_Enter_PC_1
music_const SFX_SHRINK, SFX_Shrink_1
music_const SFX_SWITCH, SFX_Switch_1
music_const SFX_HEALING_MACHINE, SFX_Healing_Machine_1
music_const SFX_TELEPORT_EXIT_1, SFX_Teleport_Exit1_1
music_const SFX_TELEPORT_ENTER_1, SFX_Teleport_Enter1_1
music_const SFX_TELEPORT_EXIT_2, SFX_Teleport_Exit2_1
music_const SFX_LEDGE, SFX_Ledge_1
music_const SFX_TELEPORT_ENTER_2, SFX_Teleport_Enter2_1
music_const SFX_FLY, SFX_Fly_1
music_const SFX_DENIED, SFX_Denied_1
music_const SFX_ARROW_TILES, SFX_Arrow_Tiles_1
music_const SFX_PUSH_BOULDER, SFX_Push_Boulder_1
music_const SFX_SS_ANNE_HORN, SFX_SS_Anne_Horn_1
music_const SFX_WITHDRAW_DEPOSIT, SFX_Withdraw_Deposit_1
music_const SFX_CUT, SFX_Cut_1
music_const SFX_GO_INSIDE, SFX_Go_Inside_1
music_const SFX_SWAP, SFX_Swap_1
music_const SFX_59, SFX_59_1 ; unused, sounds similar to SFX_SLOTS_STOP_WHEEL
music_const SFX_PURCHASE, SFX_Purchase_1
music_const SFX_COLLISION, SFX_Collision_1
music_const SFX_GO_OUTSIDE, SFX_Go_Outside_1
music_const SFX_SAVE, SFX_Save_1
; AUDIO_1
music_const SFX_POKEFLUTE, SFX_Pokeflute
music_const SFX_SAFARI_ZONE_PA, SFX_Safari_Zone_PA
; AUDIO_2
music_const SFX_LEVEL_UP, SFX_Level_Up
music_const SFX_BALL_TOSS, SFX_Ball_Toss
music_const SFX_BALL_POOF, SFX_Ball_Poof
music_const SFX_FAINT_THUD, SFX_Faint_Thud
music_const SFX_RUN, SFX_Run
music_const SFX_DEX_PAGE_ADDED, SFX_Dex_Page_Added
music_const SFX_CAUGHT_MON, SFX_Caught_Mon
music_const SFX_PECK, SFX_Peck
music_const SFX_FAINT_FALL, SFX_Faint_Fall
music_const SFX_BATTLE_09, SFX_Battle_09
music_const SFX_POUND, SFX_Pound
music_const SFX_BATTLE_0B, SFX_Battle_0B
music_const SFX_BATTLE_0C, SFX_Battle_0C
music_const SFX_BATTLE_0D, SFX_Battle_0D
music_const SFX_BATTLE_0E, SFX_Battle_0E
music_const SFX_BATTLE_0F, SFX_Battle_0F
music_const SFX_DAMAGE, SFX_Damage
music_const SFX_NOT_VERY_EFFECTIVE, SFX_Not_Very_Effective
music_const SFX_BATTLE_12, SFX_Battle_12
music_const SFX_BATTLE_13, SFX_Battle_13
music_const SFX_BATTLE_14, SFX_Battle_14
music_const SFX_VINE_WHIP, SFX_Vine_Whip
music_const SFX_BATTLE_16, SFX_Battle_16 ; unused?
music_const SFX_BATTLE_17, SFX_Battle_17
music_const SFX_BATTLE_18, SFX_Battle_18
music_const SFX_BATTLE_19, SFX_Battle_19
music_const SFX_SUPER_EFFECTIVE, SFX_Super_Effective
music_const SFX_BATTLE_1B, SFX_Battle_1B
music_const SFX_BATTLE_1C, SFX_Battle_1C
music_const SFX_DOUBLESLAP, SFX_Doubleslap
music_const SFX_BATTLE_1E, SFX_Battle_1E
music_const SFX_HORN_DRILL, SFX_Horn_Drill
music_const SFX_BATTLE_20, SFX_Battle_20
music_const SFX_BATTLE_21, SFX_Battle_21
music_const SFX_BATTLE_22, SFX_Battle_22
music_const SFX_BATTLE_23, SFX_Battle_23
music_const SFX_BATTLE_24, SFX_Battle_24
music_const SFX_BATTLE_25, SFX_Battle_25
music_const SFX_BATTLE_26, SFX_Battle_26
music_const SFX_BATTLE_27, SFX_Battle_27
music_const SFX_BATTLE_28, SFX_Battle_28
music_const SFX_BATTLE_29, SFX_Battle_29
music_const SFX_BATTLE_2A, SFX_Battle_2A
music_const SFX_BATTLE_2B, SFX_Battle_2B
music_const SFX_BATTLE_2C, SFX_Battle_2C
music_const SFX_PSYBEAM, SFX_Psybeam
music_const SFX_BATTLE_2E, SFX_Battle_2E
music_const SFX_BATTLE_2F, SFX_Battle_2F
music_const SFX_PSYCHIC_M, SFX_Psychic_M
music_const SFX_BATTLE_31, SFX_Battle_31
music_const SFX_BATTLE_32, SFX_Battle_32
music_const SFX_BATTLE_33, SFX_Battle_33
music_const SFX_BATTLE_34, SFX_Battle_34
music_const SFX_BATTLE_35, SFX_Battle_35
music_const SFX_BATTLE_36, SFX_Battle_36
music_const SFX_SILPH_SCOPE, SFX_Silph_Scope
; AUDIO_3
music_const SFX_INTRO_LUNGE, SFX_Intro_Lunge
music_const SFX_INTRO_HIP, SFX_Intro_Hip
music_const SFX_INTRO_HOP, SFX_Intro_Hop
music_const SFX_INTRO_RAISE, SFX_Intro_Raise
music_const SFX_INTRO_CRASH, SFX_Intro_Crash
music_const SFX_INTRO_WHOOSH, SFX_Intro_Whoosh
music_const SFX_SLOTS_STOP_WHEEL, SFX_Slots_Stop_Wheel
music_const SFX_SLOTS_REWARD, SFX_Slots_Reward
music_const SFX_SLOTS_NEW_SPIN, SFX_Slots_New_Spin
music_const SFX_SHOOTING_STAR, SFX_Shooting_Star