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
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
|
RunMapSetupScript:: ; 15363
ld a, [hMapEntryMethod]
and $f
dec a
ld c, a
ld b, 0
ld hl, MapSetupScripts
rept 2
add hl, bc
endr
ld a, [hli]
ld h, [hl]
ld l, a
call ReadMapSetupScript
ret
; 15377
MapSetupScripts: ; 15377
dw MapSetupScript1
dw MapSetupScript2
dw MapSetupScript3
dw MapSetupScript4
dw MapSetupScript5
dw MapSetupScript6
dw MapSetupScript7
dw MapSetupScript8
dw MapSetupScript9
dw MapSetupScript10
dw MapSetupScript11
dw MapSetupScript12
; 1538f
MapSetupScript4: ; 1538f
db map_prolong_sprites
MapSetupScript12: ; 15390
db map_fade_out_palettes
db map_keep_roam
MapSetupScript1: ; 15392
db map_lcd_off
db map_sound_off
db map_load_spawn
db map_attributes
db map_change_callback
db map_spawn_coord
db map_player_coord
db map_anchor_screen
db map_load_blocks
db map_buffer_screen
db map_load_graphics
db map_time_of_day
db map_load_objects
db map_lcd_on
db map_palettes
db map_face_down
db map_sprites
db map_bike_music
db map_max_volume
db map_fade_in_palettes
db map_animations_on
db map_wildmons
db map_end_setup_script
MapSetupScript11: ; 153a9
db map_load_spawn
db map_attributes
db map_change_callback
db map_spawn_coord
db map_player_coord
db map_anchor_screen
db map_load_blocks
db map_buffer_screen
db map_lcd_off
db map_load_graphics
db map_time_of_day
db map_fade_out_music
db map_lcd_on
db map_load_objects
db map_palettes
db map_face_down
db map_sprites
db map_fade_music
db map_fade_in_palettes
db map_animations_on
db map_wildmons
db map_end_setup_script
MapSetupScript7: ; 153bf
db map_animations_off
db map_load_connection
db map_attributes
db map_change_callback
db map_player_coord
db map_load_blocks
db map_load_tileset_header
db map_save_screen
db map_load_objects
db map_fade_music
db map_palettes
db map_stop_script
db map_keep_palettes
db map_wildmons
db map_update_roam
db map_animations_on
db map_end_setup_script
MapSetupScript6: ; 153d0
db map_prolong_sprites
MapSetupScript5: ; 153d1
db map_fade_out_palettes
MapSetupScript9: ; 153d2
db map_load_warp
db map_attributes
db map_warp_face
db map_change_callback
db map_player_coord
db map_load_blocks
db map_buffer_screen
db map_lcd_off
db map_load_graphics
db map_time_of_day
db map_fade_out_music
db map_lcd_on
db map_load_objects
db map_palettes
db map_sprites
db map_fade_music
db map_fade_in_palettes
db map_animations_on
db map_wildmons
db map_update_roam
db map_end_setup_script
MapSetupScript3: ; 153e7
db map_fade
db map_clear_bg_palettes
db map_lcd_off
db map_sound_off
db map_load_blocks
db map_connection_blocks
db map_load_graphics
db map_time_of_day
db map_lcd_on
db map_palettes
db map_sprites
db map_music_force
db map_fade_in_palettes
db map_animations_on
db map_wildmons
db map_end_setup_script
MapSetupScript8: ; 153f7
db map_fade
db map_lcd_off
db map_sound_off
db map_change_callback
db map_load_blocks
db map_buffer_screen
db map_load_graphics
db map_time_of_day
db map_lcd_on
db map_palettes
db map_sprites
db map_bike_music
db map_fade_in_palettes
db map_animations_on
db map_wildmons
db map_text_scroll_off
db map_end_setup_script
MapSetupScript2: ; 15408
db map_lcd_off
db map_sound_off
db map_attributes_2
db map_anchor_screen
db map_start_callback
db map_load_blocks
db map_connection_blocks
db map_buffer_screen
db map_load_graphics
db map_time_of_day
db map_lcd_on
db map_palettes
db map_sprites
db map_bike_music
db map_fade_in_palettes
db map_animations_on
db map_wildmons
db map_end_setup_script
MapSetupScript10: ; 1541a
db map_load_blocks
db map_connection_blocks
db map_end_setup_script
ReadMapSetupScript: ; 1541d
.loop
ld a, [hli]
cp -1
ret z
push hl
ld c, a
ld b, 0
ld hl, MapSetupCommands
rept 3
add hl, bc
endr
; bank
ld b, [hl]
inc hl
; address
ld a, [hli]
ld h, [hl]
ld l, a
; Bit 7 of the bank indicates a parameter.
; This is left unused.
bit 7, b
jr z, .go
pop de
ld a, [de]
ld c, a
inc de
push de
.go
ld a, b
and $7f
rst FarCall
pop hl
jr .loop
; 15440
MapSetupCommands: ; 15440
dbw BANK(EnableLCD), EnableLCD ; 00
dbw BANK(DisableLCD), DisableLCD ; 01
dbw BANK(SoundRestart), SoundRestart ; 02
dbw BANK(PlayMapMusic), PlayMapMusic ; 03
dbw BANK(RestartMapMusic), RestartMapMusic ; 04
dbw BANK(FadeToMapMusic), FadeToMapMusic ; 05
dbw BANK(FadeOutMapAndMusic), FadeOutMapAndMusic ; 06
dbw BANK(EnterMapMusic), EnterMapMusic ; 07
dbw BANK(ForceMapMusic), ForceMapMusic ; 08
dbw BANK(CrankUpTheVolume), CrankUpTheVolume ; 09
dbw BANK(LoadBlockData), LoadBlockData ; 0a
dbw BANK(LoadNeighboringBlockData), LoadNeighboringBlockData ; 0b
dbw BANK(SaveScreen), SaveScreen ; 0c
dbw BANK(BufferScreen), BufferScreen ; 0d
dbw BANK(LoadGraphics), LoadGraphics ; 0e
dbw BANK(LoadTilesetHeader), LoadTilesetHeader ; 0f
dbw BANK(LoadMapTimeOfDay), LoadMapTimeOfDay ; 10
dbw BANK(LoadMapPalettes), LoadMapPalettes ; 11
dbw BANK(LoadWildMonData), LoadWildMonData ; 12
dbw BANK(RefreshMapSprites), RefreshMapSprites ; 13
dbw BANK(RunCallback_05_03), RunCallback_05_03 ; 14
dbw BANK(RunCallback_03), RunCallback_03 ; 15
dbw BANK(LoadObjectsRunCallback_02), LoadObjectsRunCallback_02 ; 16
dbw BANK(LoadSpawnPoint), LoadSpawnPoint ; 17
dbw BANK(EnterMapConnection), EnterMapConnection ; 18
dbw BANK(LoadWarpData), LoadWarpData ; 19
dbw BANK(LoadMapAttributes), LoadMapAttributes ; 1a
dbw BANK(LoadMapAttributes_IgnoreHidden), LoadMapAttributes_IgnoreHidden ; 1b
dbw BANK(WhiteBGMap), WhiteBGMap ; 1c
dbw BANK(FadeBlackBGMap), FadeBlackBGMap ; 1d
dbw BANK(FadeInBGMap), FadeInBGMap ; 1e
dbw BANK(GetCoordOfUpperLeftCorner), GetCoordOfUpperLeftCorner ; 1f
dbw BANK(RestoreFacingAfterWarp), RestoreFacingAfterWarp ; 20
dbw BANK(SpawnInFacingDown), SpawnInFacingDown ; 21
dbw BANK(GetSpawnCoord), GetSpawnCoord ; 22
dbw BANK(RefreshPlayerCoords), RefreshPlayerCoords ; 23
dbw BANK(DelayClearingOldSprites), DelayClearingOldSprites ; 24
dbw BANK(DelayLoadingNewSprites), DelayLoadingNewSprites ; 25
dbw BANK(UpdateRoamMons), UpdateRoamMons ; 26
dbw BANK(JumpRoamMons), JumpRoamMons ; 27
dbw BANK(FadeOldMapMusic), FadeOldMapMusic ; 28
dbw BANK(ActivateMapAnims), ActivateMapAnims ; 29
dbw BANK(SuspendMapAnims), SuspendMapAnims ; 2a
dbw BANK(RetainOldPalettes), RetainOldPalettes ; 2b
dbw BANK(DontScrollText), DontScrollText ; 2c
dbw BANK(ReturnFromMapSetupScript), ReturnFromMapSetupScript ; 2d
; 154ca
DontScrollText: ; 154ca
xor a
ld [wc2d7], a
ret
; 154cf
ActivateMapAnims: ; 154cf
ld a, $1
ld [$ffde], a
ret
; 154d3
SuspendMapAnims: ; 154d3
xor a
ld [$ffde], a
ret
; 154d7
LoadObjectsRunCallback_02: ; 154d7
ld a, $2
call RunMapCallback
callba Function2454f
callba Function8177
ret
; 154ea (5:54ea)
Function154ea: ; 154ea
ret
; 154eb
DelayClearingOldSprites: ; 154eb
ld hl, wPlayerSpriteSetupFlags
set 7, [hl]
ret
; 154f1
DelayLoadingNewSprites: ; 154f1
ld hl, wPlayerSpriteSetupFlags
set 6, [hl]
ret
Function154f7: ; 154f7
nop
call Function1550c
jr c, .ok
call Function1554e
jr c, .ok
call Function1551a
jr c, .ok
ret
.ok
call Special_ReplaceKrisSprite
ret
Function1550c: ; 1550c (5:550c)
and a
ld hl, BikeFlags
bit 1, [hl]
ret z
ld a, PLAYER_BIKE
ld [PlayerState], a
scf
ret
Function1551a: ; 1551a (5:551a)
ld a, [PlayerState]
cp PLAYER_NORMAL
jr z, .nope
cp PLAYER_SLIP
jr z, .nope
cp PLAYER_SURF
jr z, .surfing
cp PLAYER_SURF_PIKA
jr z, .surfing
call GetMapPermission
cp $3
jr z, .checkbiking
cp $5
jr z, .checkbiking
cp $7
jr z, .checkbiking
jr .nope
.checkbiking
ld a, [PlayerState]
cp PLAYER_BIKE
jr nz, .nope
.surfing
ld a, PLAYER_NORMAL
ld [PlayerState], a
scf
ret
.nope
and a
ret
Function1554e: ; 1554e (5:554e)
call CheckOnWater
jr nz, .ret_nc
ld a, [PlayerState]
cp PLAYER_SURF
jr z, .surfing
cp PLAYER_SURF_PIKA
jr z, .surfing
ld a, PLAYER_SURF
ld [PlayerState], a
.surfing
scf
ret
.ret_nc
and a
ret
; 15567
FadeOldMapMusic: ; 15567
ld a, 6
call SkipMusic
ret
; 1556d
RetainOldPalettes: ; 1556d
callba _UpdateTimePals
ret
FadeOutMapAndMusic: ; 15574
ld e, 0
ld a, [MusicFadeIDLo]
ld d, 0
ld a, [MusicFadeIDHi]
ld a, $4
ld [MusicFade], a
call FadeToWhite
ret
; 15587
ForceMapMusic: ; 15587
ld a, [PlayerState]
cp PLAYER_BIKE
jr nz, .notbiking
call VolumeOff
ld a, $88
ld [MusicFade], a
.notbiking
call TryRestartMapMusic
ret
; 1559a
|