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
|
.macro loadsprite id
.byte 0x00
.2byte \id
.endm
.macro unloadsprite id
.byte 0x01
.2byte \id
.endm
.macro sprite template, priority, argv:vararg
.byte 0x02
.4byte \template
.byte \priority
.byte (.Lsprite_\@_2 - .Lsprite_\@_1) / 2
.Lsprite_\@_1:
.2byte \argv
.Lsprite_\@_2:
.endm
.macro createtask addr, priority, argv:vararg
.byte 0x03
.4byte \addr
.byte \priority
.byte (.Lcreatetask_\@_2 - .Lcreatetask_\@_1) / 2
.Lcreatetask_\@_1:
.2byte \argv
.Lcreatetask_\@_2:
.endm
.macro pause delay
.byte 0x04
.byte \delay
.endm
.macro wait
.byte 0x05
.endm
.macro hang1
.byte 0x06
.endm
.macro hang2
.byte 0x07
.endm
.macro end
.byte 0x08
.endm
.macro playse id
.byte 0x09
.2byte \id
.endm
.macro monbg which
.byte 0x0A
.byte \which
.endm
.macro clearmonbg which
.byte 0x0B
.byte \which
.endm
.macro setalpha eva, evb
.byte 0x0C
.2byte ((\evb) << 8) | (\eva)
.endm
.macro blendoff
.byte 0x0D
.endm
.macro call addr
.byte 0x0E
.4byte \addr
.endm
.macro ret
.byte 0x0F
.endm
.macro setvar var_num, value
.byte 0x10
.byte \var_num
.2byte \value
.endm
.macro ifelse addr1, addr2
.byte 0x11
.4byte \addr1
.4byte \addr2
.endm
.macro jumpif cond, addr
.byte 0x12
.byte \cond
.4byte \addr
.endm
.macro jump addr
.byte 0x13
.4byte \addr
.endm
.macro fadetobg id
.byte 0x14
.byte \id
.endm
.macro restorebg
.byte 0x15
.endm
.macro waitbgfadeout
.byte 0x16
.endm
.macro waitbgfadein
.byte 0x17
.endm
.macro changebg id
.byte 0x18
.byte \id
.endm
.macro panse_19 id, pan
.byte 0x19
.2byte \id
.byte \pan
.endm
.macro setpan pan
.byte 0x1A
.byte \pan
.endm
.macro panse_1B id, pan_start, pan_end, step, delay
.byte 0x1B
.2byte \id
.byte \pan_start
.byte \pan_end
.byte \step
.byte \delay
.endm
.macro panse_1C id, pan, delay, count
.byte 0x1C
.2byte \id
.byte \pan
.byte \delay
.byte \count
.endm
.macro panse_1D id, pan, count
.byte 0x1D
.2byte \id
.byte \pan
.byte \count
.endm
.macro setbldcnt bldcnt
.byte 0x1E
.2byte \bldcnt
.endm
.macro createtask_1F addr, argv:vararg
.byte 0x1F
.4byte \addr
.byte (.Lcreatetask_1F_\@_2 - .Lcreatetask_1F_\@_1) / 2
.Lcreatetask_1F_\@_1:
.2byte \argv
.Lcreatetask_1F_\@_2:
.endm
.macro waitsound
.byte 0x20
.endm
.macro jumpvareq var_num, value, addr
.byte 0x21
.byte \var_num
.2byte \value
.4byte \addr
.endm
.macro monbg_22 unk
.byte 0x22
.byte \unk
.endm
.macro clearmonbg_23 unk
.byte 0x23
.byte \unk
.endm
.macro jumpunkcond addr
.byte 0x24
.4byte \addr
.endm
.macro fadetobg_25 a, b, c
.byte 0x25
.byte \a
.byte \b
.byte \c
.endm
.macro panse_26 id, pan_start, pan_end, step, delay
.byte 0x26
.2byte \id
.byte \pan_start
.byte \pan_end
.byte \step
.byte \delay
.endm
.macro panse_27 id, pan_start, pan_end, step, delay
.byte 0x27
.2byte \id
.byte \pan_start
.byte \pan_end
.byte \step
.byte \delay
.endm
.macro monbgprio_28 unk
.byte 0x28
.byte \unk
.endm
.macro monbgprio_29
.byte 0x29
.endm
.macro monbgprio_2A unk
.byte 0x2A
.byte \unk
.endm
.macro invisible side
.byte 0x2B
.byte \side
.endm
.macro visible side
.byte 0x2C
.byte \side
.endm
.macro doublebattle_2D unk
.byte 0x2D
.byte \unk
.endm
.macro doublebattle_2E unk
.byte 0x2E
.byte \unk
.endm
.macro stopsound
.byte 0x2F
.endm
|