Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pret
GitHub Repository: pret/pokered
Path: blob/master/data/sgb/sgb_packets.asm
1271 views
1
MACRO ATTR_BLK
2
; This is a command macro.
3
; Use ATTR_BLK_DATA for data sets.
4
db ($4 << 3) + ((\1 * 6) / 16 + 1)
5
db \1
6
ENDM
7
8
MACRO ATTR_BLK_DATA
9
db \1 ; which regions are affected
10
db \2 + (\3 << 2) + (\4 << 4) ; palette for each region
11
db \5, \6, \7, \8 ; x1, y1, x2, y2
12
ENDM
13
14
MACRO PAL_SET
15
db ($a << 3) + 1
16
dw \1, \2, \3, \4
17
ds 7, 0
18
ENDM
19
20
MACRO PAL_TRN
21
db ($b << 3) + 1
22
ds 15, 0
23
ENDM
24
25
MACRO MLT_REQ
26
db ($11 << 3) + 1
27
db \1 - 1
28
ds 14, 0
29
ENDM
30
31
MACRO CHR_TRN
32
db ($13 << 3) + 1
33
db \1 + (\2 << 1)
34
ds 14, 0
35
ENDM
36
37
MACRO PCT_TRN
38
db ($14 << 3) + 1
39
ds 15, 0
40
ENDM
41
42
MACRO MASK_EN
43
db ($17 << 3) + 1
44
db \1
45
ds 14, 0
46
ENDM
47
48
MACRO DATA_SND
49
db ($f << 3) + 1
50
dw \1 ; address
51
db \2 ; bank
52
db \3 ; length (1-11)
53
ENDM
54
55
56
BlkPacket_WholeScreen:
57
ATTR_BLK 1
58
ATTR_BLK_DATA %011, 0,0,0, 00,00, 19,17
59
ds 8, 0
60
61
; unused
62
db $03, 00,00, 19,17, $00
63
db $00
64
65
BlkPacket_Battle:
66
ATTR_BLK 5
67
ATTR_BLK_DATA %111, 2,2,0, 00,12, 19,17 ; message box: pal 2
68
ATTR_BLK_DATA %011, 1,1,0, 01,00, 10,03 ; enemy HP bar: pal 1
69
ATTR_BLK_DATA %011, 0,0,0, 10,07, 19,10 ; player HP bar: pal 0
70
ATTR_BLK_DATA %011, 2,2,0, 00,04, 08,11 ; player mon: pal 2
71
ATTR_BLK_DATA %011, 3,3,0, 11,00, 19,06 ; enemy mon : pal 3
72
73
; unused
74
db $03, 00,00, 19,11, $00
75
db $03, 00,12, 19,17, $02
76
db $03, 01,00, 10,03, $01
77
db $03, 10,08, 19,10, $00
78
db $03, 00,04, 08,11, $02
79
db $03, 11,00, 19,07, $03
80
db $00
81
82
BlkPacket_StatusScreen:
83
ATTR_BLK 1
84
ATTR_BLK_DATA %111, 1,1,0, 01,00, 07,06 ; mon: pal 1, HP bar: pal 0
85
ds 8, 0
86
87
; unused
88
db $02, 00,00, 17,00
89
db $03, 01,00, 07,06, $01
90
db $03, 01,07, 19,17, $00
91
db $03, 08,00, 19,06, $00
92
db $00
93
94
BlkPacket_Pokedex:
95
ATTR_BLK 1
96
ATTR_BLK_DATA %111, 1,1,0, 01,01, 08,08 ; mon: pal 1, everything else: pal 0
97
ds 8, 0
98
99
; unused
100
db $02, 00,00, 17,00
101
db $01, 00,01, 19,00
102
db $03, 01,01, 08,08, $01
103
db $03, 01,09, 08,17, $00
104
db $03, 09,01, 19,17, $00
105
db $00
106
107
BlkPacket_Slots:
108
ATTR_BLK 5
109
ATTR_BLK_DATA %011, 1,1,0, 00,00, 19,11 ; "3" rows and top of screen: pal 1
110
ATTR_BLK_DATA %011, 2,2,0, 00,04, 19,09 ; "2" rows: pal 2
111
ATTR_BLK_DATA %010, 3,3,0, 00,06, 19,07 ; "1" row: pal 3
112
ATTR_BLK_DATA %011, 0,0,0, 04,04, 15,09 ; slot reels: pal 0
113
ATTR_BLK_DATA %011, 0,0,0, 00,12, 19,17 ; message box: pal 0
114
115
; unused
116
db $03, 00,00, 19,11, $01
117
db $03, 00,04, 19,09, $02
118
db $03, 00,06, 19,07, $03
119
db $03, 04,04, 15,09, $00
120
db $03, 00,12, 19,17, $00
121
db $00
122
123
BlkPacket_Titlescreen:
124
ATTR_BLK 3
125
ATTR_BLK_DATA %011, 0,0,0, 00,00, 19,07 ; pokemon logo: pal 0
126
ATTR_BLK_DATA %010, 1,1,0, 00,08, 19,09 ; version text: pal 1
127
ATTR_BLK_DATA %011, 2,2,0, 00,10, 19,17 ; player, mon, copyright text: pal 2
128
ds 12, 0
129
130
; unused
131
db $03, 00,00, 19,07, $00
132
db $03, 00,08, 19,09, $01
133
db $03, 00,10, 19,17, $02
134
db $00
135
136
BlkPacket_NidorinoIntro:
137
ATTR_BLK 3
138
ATTR_BLK_DATA %011, 1,1,0, 00,00, 19,03 ; upper black bar: pal 1
139
ATTR_BLK_DATA %011, 0,0,0, 00,04, 19,13 ; letterbox: pal 0
140
ATTR_BLK_DATA %011, 1,1,0, 00,14, 19,17 ; lower black bar: pal 1
141
ds 12, 0
142
143
; unused
144
db $03, 00,00, 19,03, $01
145
db $03, 00,04, 19,13, $00
146
db $03, 00,14, 19,17, $01
147
db $00
148
149
BlkPacket_PartyMenu:
150
ATTR_BLK 7
151
ATTR_BLK_DATA %110, 0,0,1, 01,00, 02,12 ; mon sprites: pal 0, everything else: pal 1
152
ATTR_BLK_DATA %010, 0,0,0, 05,01, 11,01 ; HP bar 0: pal set dynamically
153
ATTR_BLK_DATA %010, 0,0,0, 05,03, 11,03 ; HP bar 1: pal set dynamically
154
ATTR_BLK_DATA %010, 0,0,0, 05,05, 11,05 ; HP bar 2: pal set dynamically
155
ATTR_BLK_DATA %010, 0,0,0, 05,07, 11,07 ; HP bar 3: pal set dynamically
156
ATTR_BLK_DATA %010, 0,0,0, 05,09, 11,09 ; HP bar 4: pal set dynamically
157
ATTR_BLK_DATA %010, 0,0,0, 05,11, 11,11 ; HP bar 5: pal set dynamically
158
ds 4, 0
159
160
; unused
161
db $02, 00,00, 17,01
162
db $03, 01,00, 02,12, $00
163
db $03, 01,13, 02,17, $01
164
db $03, 03,00, 19,17, $01
165
db $03, 12,00, 18,01, $00
166
db $03, 12,02, 18,03, $00
167
db $03, 12,04, 18,05, $00
168
db $03, 12,06, 18,07, $00
169
db $03, 12,08, 18,09, $00
170
db $03, 12,10, 18,11, $00
171
db $00
172
173
BlkPacket_TrainerCard:
174
ATTR_BLK 10
175
ATTR_BLK_DATA %010, 0,0,0, 03,12, 04,13 ; Boulder Badge
176
ATTR_BLK_DATA %010, 1,1,0, 07,12, 08,13 ; Cascade Badge
177
ATTR_BLK_DATA %010, 3,3,0, 11,12, 12,13 ; Thunder Badge
178
ATTR_BLK_DATA %010, 2,2,0, 16,11, 17,12 ; Rainbow Badge
179
ATTR_BLK_DATA %010, 1,1,0, 14,13, 15,14 ; Rainbow Badge
180
ATTR_BLK_DATA %010, 3,3,0, 16,13, 17,14 ; Rainbow Badge
181
ATTR_BLK_DATA %010, 2,2,0, 03,15, 04,16 ; Soul Badge
182
ATTR_BLK_DATA %010, 3,3,0, 07,15, 08,16 ; Marsh Badge
183
ATTR_BLK_DATA %010, 2,2,0, 11,15, 12,16 ; Volcano Badge
184
ATTR_BLK_DATA %010, 1,1,0, 15,15, 16,16 ; Earth Badge
185
ds 2, 0
186
187
; unused
188
db $03, 03,12, 04,13, $00
189
db $03, 07,12, 08,13, $01
190
db $03, 11,12, 12,13, $03
191
db $03, 16,11, 17,12, $02
192
db $03, 14,13, 15,14, $01
193
db $03, 16,13, 17,14, $03
194
db $03, 03,15, 04,16, $02
195
db $03, 07,15, 08,16, $03
196
db $03, 11,15, 12,16, $02
197
db $03, 15,15, 16,16, $01
198
db $00
199
200
BlkPacket_GameFreakIntro:
201
ATTR_BLK 3
202
ATTR_BLK_DATA %111, 1,1,0, 05,11, 07,13 ; falling stars (left): pal 1, GameFreak logo: pal 0
203
ATTR_BLK_DATA %010, 2,2,0, 08,11, 09,13 ; falling stars (middle): pal 2
204
ATTR_BLK_DATA %011, 3,3,0, 12,11, 14,13 ; falling stars (right): pal 3
205
ds 12, 0
206
207
; unused
208
db $03, 00,00, 19,10, $00
209
db $03, 00,11, 04,13, $00
210
db $03, 05,11, 07,13, $01
211
db $03, 08,11, 19,13, $00
212
db $03, 00,14, 19,17, $00
213
db $03, 08,11, 09,13, $02
214
db $03, 12,11, 14,13, $03
215
db $00
216
217
218
PalPacket_Empty: PAL_SET 0, 0, 0, 0
219
PalPacket_PartyMenu: PAL_SET PAL_MEWMON, PAL_GREENBAR, PAL_YELLOWBAR, PAL_REDBAR
220
PalPacket_Black: PAL_SET PAL_BLACK, PAL_BLACK, PAL_BLACK, PAL_BLACK
221
PalPacket_TownMap: PAL_SET PAL_TOWNMAP, 0, 0, 0
222
PalPacket_Pokedex: PAL_SET PAL_BROWNMON, 0, 0, 0
223
PalPacket_Slots: PAL_SET PAL_SLOTS1, PAL_SLOTS2, PAL_SLOTS3, PAL_SLOTS4
224
PalPacket_Titlescreen: PAL_SET PAL_LOGO2, PAL_LOGO1, PAL_MEWMON, PAL_PURPLEMON
225
PalPacket_TrainerCard: PAL_SET PAL_MEWMON, PAL_BADGE, PAL_REDMON, PAL_YELLOWMON
226
PalPacket_Generic: PAL_SET PAL_MEWMON, 0, 0, 0
227
PalPacket_NidorinoIntro: PAL_SET PAL_PURPLEMON, PAL_BLACK, 0, 0
228
PalPacket_GameFreakIntro: PAL_SET PAL_GAMEFREAK, PAL_REDMON, PAL_VIRIDIAN, PAL_BLUEMON
229
230
PalTrnPacket: PAL_TRN
231
MltReq1Packet: MLT_REQ 1
232
MltReq2Packet: MLT_REQ 2
233
ChrTrnPacket: CHR_TRN 0, 0
234
PctTrnPacket: PCT_TRN
235
236
MaskEnFreezePacket: MASK_EN 1
237
MaskEnCancelPacket: MASK_EN 0
238
239
240
; These are DATA_SND packets containing SNES code.
241
; This set of packets is found in several Japanese SGB-compatible titles.
242
; It appears to be part of NCL's SGB devkit.
243
244
DataSndPacket1:
245
DATA_SND $85d, $0, 11
246
db $8C ; cpx #$8c (2)
247
db $D0, $F4 ; bne -$0c
248
db $60 ; rts
249
ds 7, 0
250
251
DataSndPacket2:
252
DATA_SND $852, $0, 11
253
db $A9, $E7 ; lda #$e7
254
db $9F, $01, $C0, $7E ; sta $7ec001, x
255
db $E8 ; inx
256
db $E8 ; inx
257
db $E8 ; inx
258
db $E8 ; inx
259
db $E0 ; cpx #$8c (1)
260
261
DataSndPacket3:
262
DATA_SND $847, $0, 11
263
db $C4 ; cmp #$c4 (2)
264
db $D0, $16 ; bne +$16
265
db $A5 ; lda dp
266
db $CB ; wai
267
db $C9, $05 ; cmp #$05
268
db $D0, $10 ; bne +$10
269
db $A2, $28 ; ldx #$28
270
271
DataSndPacket4:
272
DATA_SND $83c, $0, 11
273
db $F0, $12 ; beq +$12
274
db $A5 ; lda dp
275
db $C9, $C9 ; cmp #$c9
276
db $C8 ; iny
277
db $D0, $1C ; bne +$1c
278
db $A5 ; lda dp
279
db $CA ; dex
280
db $C9 ; cmp #$c4 (1)
281
282
DataSndPacket5:
283
DATA_SND $831, $0, 11
284
dbw $0C, $CAA5 ; tsb $caa5
285
db $C9, $7E ; cmp #$7e
286
db $D0, $06 ; bne +$06
287
db $A5 ; lda dp
288
db $CB ; wai
289
db $C9, $7E ; cmp #$7e
290
291
DataSndPacket6:
292
DATA_SND $826, $0, 11
293
db $39 ; bne +$39 (2)
294
dbw $CD, $C48 ; cmp $c48
295
db $D0, $34 ; bne +$34
296
db $A5 ; lda dp
297
db $C9, $C9 ; cmp #$c9
298
db $80, $D0 ; bra -$30
299
300
DataSndPacket7:
301
DATA_SND $81b, $0, 11
302
db $EA ; nop
303
db $EA ; nop
304
db $EA ; nop
305
db $EA ; nop
306
db $EA ; nop
307
; $820:
308
db $A9,$01 ; lda #01
309
dbw $CD,$C4F ; cmp $c4f
310
db $D0 ; bne +$39 (1)
311
312
DataSndPacket8:
313
DATA_SND $810, $0, 11
314
dbw $4C, $820 ; jmp $820
315
db $EA ; nop
316
db $EA ; nop
317
db $EA ; nop
318
db $EA ; nop
319
db $EA ; nop
320
db $60 ; rts
321
db $EA ; nop
322
db $EA ; nop
323
324