shithub: pokecrystal

Download patch

ref: 1ba5b0f4bce859934a451327838838660406a814
parent: 08a0462c1e588c2efb99097cf1e9b314f600b009
author: yenatch <[email protected]>
date: Sun Jan 26 17:07:19 EST 2014

Map setup scripts and commands

--- a/engine/events.asm
+++ b/engine/events.asm
@@ -134,7 +134,7 @@
 	ld [$d453], a
 	ld [$d454], a
 	call Function968d1
-	callba Function15363
+	callba RunMapSetupScript
 	call Function966cb
 
 	ld a, [$ff9f]
--- a/home/map.asm
+++ b/home/map.asm
@@ -214,7 +214,7 @@
 Function222a: ; 222a
 	ld a, $fa
 	ld [$ff9f], a
-	callba Function15363
+	callba RunMapSetupScript
 	xor a
 	ld [$ff9f], a
 	ret
@@ -1489,7 +1489,7 @@
 .asm_28ce
 	ld b, $6
 	ld c, $4
-	jr .asm_28f7
+	jr Function28f7
 
 .asm_28d4
 	ld de, $dcba
@@ -1502,8 +1502,10 @@
 .asm_28dd
 	ld b, $5
 	ld c, $5
-	jr .asm_28f7
+	jr Function28f7
 
+
+Function28e3: ; 28e3
 	ld hl, $d194
 	ld a, [hli]
 	ld h, [hl]
@@ -1515,6 +1517,7 @@
 	ld b, $6
 	ld c, $5
 
+Function28f7: ; 28f7
 .asm_28f7
 	push bc
 	push hl
--- a/main.asm
+++ b/main.asm
@@ -9853,7 +9853,7 @@
 	ld d, a
 	ld a, [$dcb3]
 	ld e, a
-	callba Function15344
+	callba IsSpawnPoint
 	jr nc, .asm_cc99
 	ld a, c
 	ld [$d001], a
@@ -17429,7 +17429,7 @@
 	ld d, a
 	ld a, [$dcb3]
 	ld e, a
-	callba Function15344
+	callba IsSpawnPoint
 	ld a, c
 	jr c, .asm_12539
 	xor a
@@ -23147,7 +23147,7 @@
 	db -1, -1, -1, -1
 
 
-Function1531f: ; 1531f
+LoadSpawnPoint: ; 1531f
 	push hl
 	push de
 	ld a, [$d001]
@@ -23174,7 +23174,7 @@
 ; 15344
 
 
-Function15344: ; 15344
+IsSpawnPoint: ; 15344
 	ld hl, SpawnPoints
 	ld c, 0
 .asm_15349
@@ -23206,44 +23206,284 @@
 ; 15363
 
 
-Function15363: ; 15363
+RunMapSetupScript: ; 15363
 	ld a, [$ff9f]
 	and $f
 	dec a
 	ld c, a
-	ld b, $0
-	ld hl, $5377
+	ld b, 0
+	ld hl, MapSetupScripts
 	add hl, bc
 	add hl, bc
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
-	call Function1541d
+	call ReadMapSetupScript
 	ret
 ; 15377
 
-INCBIN "baserom.gbc",$15377,$1541d - $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
 
 
-Function1541d: ; 1541d
-.asm_1541d
+; Command descriptions from Condensation water's scripting compendium.
+	const_def
+	const map_lcd_on              ; 00 = Turn LCD on
+	const map_lcd_off             ; 01 = Turn LCD off
+	const map_sound_off           ; 02 = Turn speakers off
+	const map_music               ; 03 = Music check for current map/ special check for bug catcher contest
+	const map_start_music         ; 04 = Start map music anew
+	const map_fade_music          ; 05 = Music check for current map / special check for Bug Contest/ music with FadeOut (old) and FadeIn
+	const map_fade                ; 06 = Fade out music + screen
+	const map_bike_music          ; 07 = If HIRO is on bike = bike music, else play map music
+	const map_music_force         ; 08 = Play map music
+	const map_max_volume          ; 09 = Turn music to highest volume
+	const map_load_blocks         ; 0A = Write map data to MapRAM
+	const map_connection_blocks   ; 0B = Compute map’s connection pars and write into MapRAM
+	const map_save_screen         ; 0C = Write current part of map into temporary memory
+	const map_buffer_screen       ; 0D = Write current part of map into read-from memory
+	const map_load_graphics       ; 0E = Write tileset header to ram/ load tileset/ load sprite tiles/ load special tiles
+	const map_load_tileset_header ; 0F = Write tileset header to ram
+	const map_time_of_day         ; 10 = Compute time of day/ Update screen
+	const map_palettes            ; 11 = Load map palettes
+	const map_wildmons            ; 12 = Load probabilities for wild Pokémon battles
+	const map_sprites             ; 13 = Delete sprite data and draw new sprites
+	const map_change_callback     ; 14 = Check 2nd script header for 05 and 03 callbacks
+	const map_start_callback      ; 15 = Check 2nd script header for 03 callbacks
+	const map_load_objects        ; 16 = Analyze people data anew and check 2nd script header for 02 callbacks
+	const map_load_spawn          ; 17 = Writes arrival data for arrival by flying/Blackout from table 05:5319 to ram
+	const map_load_connection     ; 18 = Writes arrival data for entering a map by connection to ram
+	const map_load_warp           ; 19 = Write warp data to ram when entering warp
+	const map_attributes          ; 1A = Load complete map data (primary, secondary, event, script headers)
+	const map_attributes_2        ; 1B = Same as 1A, but some settings aren’t loaded new from the rom, such as hide function of the people events
+	const map_clear_bg_palettes   ; 1C = Fill palette data with FFFF (=white)
+	const map_fade_out_palettes   ; 1D = All BG pallet color are converted to 0|0 (Pal0, Col0), all sprite colors to x|0 (FadeOut)
+	const map_fade_in_palettes    ; 1E = Palette FadeIn
+	const map_anchor_screen       ; 1F = Compute position of upper left-most block visible on screen
+	const map_warp_face           ; 20 = Position computation when HIRO leaves a warp
+	const map_face_down           ; 21 = Set HIRO’s facing to “down”
+	const map_spawn_coord         ; 22 = Prepare HIRO data for arrival by flight
+	const map_player_coord        ; 23 = Compute HIRO x/y data anew
+	const map_prolong_sprites     ; 24 = Prolong old sprites before removing them
+	const map_delay_sprites       ; 25 = Delay rendering new sprites
+	const map_update_roam         ; 26 = Compute chances to meet Raikou, Entei or Suicune
+	const map_keep_roam           ; 27 = Recover chances to meet Raikou, Entei or Suicune
+	const map_fade_out_music      ; 28 = Temporarily stop music playing
+	const map_animations_on       ; 29 = Activate animations
+	const map_animations_off      ; 2A = Deactivate animations
+	const map_keep_palettes       ; 2B = Recover all palettes
+	const map_text_scroll_off     ; 2C = Turn off text scroll (for town name overlays)
+	const map_stop_script         ; 2D = Deactivate code prolonging
+
+
+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 -1
+
+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 -1
+
+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 -1
+
+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 -1
+
+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 -1
+
+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 -1
+
+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 -1
+
+MapSetupScript10: ; 1541a
+	db map_load_blocks
+	db map_connection_blocks
+	db -1
+
+
+ReadMapSetupScript: ; 1541d
+.loop
 	ld a, [hli]
-	cp $ff
+	cp -1
 	ret z
+
 	push hl
+
 	ld c, a
-	ld b, $0
-	ld hl, $5440
+	ld b, 0
+	ld hl, MapSetupCommands
 	add hl, bc
 	add hl, bc
 	add hl, bc
+
+	; 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, .asm_15439
+	jr z, .go
+
 	pop de
 	ld a, [de]
 	ld c, a
@@ -23250,25 +23490,80 @@
 	inc de
 	push de
 
-.asm_15439
+.go
 	ld a, b
 	and $7f
 	rst FarCall
+
 	pop hl
-	jr .asm_1541d
+	jr .loop
 ; 15440
 
-INCBIN "baserom.gbc",$15440,$154cf - $15440
+MapSetupCommands: ; 15440
+	dbw BANK(EnableLCD), EnableLCD
+	dbw BANK(DisableLCD), DisableLCD
+	dbw BANK(SoundRestart), SoundRestart
+	dbw BANK(Function3cdf), Function3cdf
+	dbw BANK(Function3d47), Function3d47
+	dbw BANK(Function3cbc), Function3cbc
+	dbw BANK(Function15574), Function15574
+	dbw BANK(Function3d03), Function3d03
+	dbw BANK(Function15587), Function15587
+	dbw BANK(Function3cae), Function3cae
+	dbw BANK(Function24cd), Function24cd
+	dbw BANK(Function28e3), Function28e3
+	dbw BANK(Function289d), Function289d
+	dbw BANK(Function2879), Function2879
+	dbw BANK(Function1047cf), Function1047cf
+	dbw BANK(LoadTilesetHeader), LoadTilesetHeader
+	dbw BANK(Function104750), Function104750
+	dbw BANK(Function1047eb), Function1047eb
+	dbw BANK(Function29ff8), Function29ff8
+	dbw BANK(Function1047f0), Function1047f0
+	dbw BANK(Function1045b0), Function1045b0
+	dbw BANK(Function1045c4), Function1045c4
+	dbw BANK(Function154d7), Function154d7
+	dbw BANK(LoadSpawnPoint), LoadSpawnPoint
+	dbw BANK(EnterMapConnection), EnterMapConnection
+	dbw BANK(Function1046c6), Function1046c6
+	dbw BANK(Function2309), Function2309
+	dbw BANK(Function2317), Function2317
+	dbw BANK(WhiteBGMap), WhiteBGMap
+	dbw BANK(Function8c084), Function8c084
+	dbw BANK(Function8c079), Function8c079
+	dbw BANK(Function10486d), Function10486d
+	dbw BANK(Function248a), Function248a
+	dbw BANK(Function57d9), Function57d9
+	dbw BANK(Function8029), Function8029
+	dbw BANK(Function80b8), Function80b8
+	dbw BANK(Function154eb), Function154eb
+	dbw BANK(Function154f1), Function154f1
+	dbw BANK(Function2a30d), Function2a30d
+	dbw BANK(Function2a394), Function2a394
+	dbw BANK(Function15567), Function15567
+	dbw BANK(Function154cf), Function154cf
+	dbw BANK(Function154d3), Function154d3
+	dbw BANK(Function1556d), Function1556d
+	dbw BANK(Function154ca), Function154ca
+	dbw BANK(Functionb8000), Functionb8000
+; 154ca
 
+
+Function154ca: ; 154ca
+	xor a
+	ld [$c2d7], a
+	ret
+; 154cf
+
 Function154cf: ; 154cf
 	ld a, $1
-	ld [$FF00+$de], a
+	ld [$ffde], a
 	ret
 ; 154d3
 
 Function154d3: ; 154d3
 	xor a
-	ld [$FF00+$de], a
+	ld [$ffde], a
 	ret
 ; 154d7
 
@@ -23368,19 +23663,30 @@
 .asm_15565
 	and a
 	ret
+; 15567
+
+Function15567: ; 15567
 	ld a, $6
 	call Function3cb4
 	ret
+; 1556d
+
+Function1556d: ; 1556d
 	callba _UpdateTimePals
 	ret
-	ld e, $0
+
+Function15574: ; 15574
+	ld e, 0
 	ld a, [MusicFadeIDLo] ; $c2a9
-	ld d, $0
+	ld d, 0
 	ld a, [MusicFadeIDHi] ; $c2aa
 	ld a, $4
 	ld [MusicFade], a ; $c2a7
 	call Function4b6
 	ret
+; 15587
+
+Function15587: ; 15587
 	ld a, [PlayerState] ; $d95d
 	cp $1
 	jr nz, .asm_15596
@@ -23390,7 +23696,9 @@
 .asm_15596
 	call Function3d2f
 	ret
+; 1559a
 
+
 Function1559a: ; 1559a
 	call Function15650
 	ret c
@@ -34010,6 +34318,8 @@
 ; 29f54
 
 INCBIN "baserom.gbc",$29f54,$29ff8 - $29f54
+
+Function29ff8: ; 29ff8
 	call Function2a205
 	jr c, .asm_2a006
 	ld hl, $d25a
@@ -34674,7 +34984,7 @@
 	ld l, e
 	call Random
 	and $1f
-	jr z, asm_2a3cd
+	jr z, Function2a3cd
 	and $3
 	cp [hl]
 	jr nc, .asm_2a36e
@@ -34702,36 +35012,37 @@
 	ld a, [RoamMon1MapGroup]
 	cp $ff
 	jr z, .asm_2a3a6
-	call asm_2a3cd
+	call Function2a3cd
 	ld a, b
 	ld [RoamMon1MapGroup], a
 	ld a, c
 	ld [RoamMon1MapNumber], a
-
 .asm_2a3a6
+
 	ld a, [RoamMon2MapGroup]
 	cp $ff
 	jr z, .asm_2a3b8
-	call asm_2a3cd
+	call Function2a3cd
 	ld a, b
 	ld [RoamMon2MapGroup], a
 	ld a, c
 	ld [RoamMon2MapNumber], a
-
 .asm_2a3b8
+
 	ld a, [RoamMon3MapGroup]
 	cp $ff
 	jr z, .asm_2a3ca
-	call asm_2a3cd
+	call Function2a3cd
 	ld a, b
 	ld [RoamMon3MapGroup], a
 	ld a, c
 	ld [RoamMon3MapNumber], a
-
 .asm_2a3ca
+
 	jp Function2a3f6
 
-asm_2a3cd
+Function2a3cd: ; 2a3cd
+.asm_2a3cd
 	ld hl, $640f
 .asm_2a3d0
 	call Random
@@ -34756,7 +35067,7 @@
 	inc hl
 	ld a, [MapNumber]
 	cp [hl]
-	jr z, asm_2a3cd
+	jr z, .asm_2a3cd
 	dec hl
 
 .asm_2a3f2
@@ -71101,6 +71412,7 @@
 	ld [$c2d9], a
 	call Functionb8089
 	jr z, .asm_b8024
+
 	call GetMapPermission
 	cp $6
 	jr nz, .asm_b8029
@@ -71114,12 +71426,15 @@
 	bit 1, [hl]
 	res 1, [hl]
 	jr nz, .asm_b8054
+
 	call Functionb8064
 	jr z, .asm_b8054
+
 	ld a, [$c2d9]
 	ld [$c2d8], a
 	call Functionb8070
 	jr z, .asm_b8054
+
 	ld a, $3c
 	ld [$c2da], a
 	call Functionb80c6
@@ -71149,19 +71464,19 @@
 ; b8070
 
 Functionb8070: ; b8070
-	cp $ff
+	cp -1
 	ret z
-	cp $0
+	cp SPECIAL_MAP
 	ret z
-	cp $11
+	cp RADIO_TOWER
 	ret z
-	cp $46
+	cp LAV_RADIO_TOWER
 	ret z
-	cp $3b
+	cp UNDERGROUND
 	ret z
-	cp $5a
+	cp INDIGO_PLATEAU
 	ret z
-	cp $44
+	cp POWER_PLANT
 	ret z
 	ld a, $1
 	and a
@@ -71170,12 +71485,12 @@
 
 Functionb8089: ; b8089
 	ld a, [MapGroup]
-	cp $a
+	cp GROUP_ROUTE_35_NATIONAL_PARK_GATE
 	ret nz
 	ld a, [MapNumber]
-	cp $f
+	cp MAP_ROUTE_35_NATIONAL_PARK_GATE
 	ret z
-	cp $11
+	cp MAP_ROUTE_36_NATIONAL_PARK_GATE
 	ret
 ; b8098
 
@@ -81872,7 +82187,7 @@
 Function1002dc: ; 1002dc
 	ld a, $f8
 	ld [$ff9f], a
-	callba Function15363
+	callba RunMapSetupScript
 	xor a
 	ld [$ff9f], a
 	call Functione51
@@ -84518,9 +84833,11 @@
 	jr nz, .asm_10433c
 	ret
 
+
 INCBIN "gfx/ow/misc.2bpp"
 
 
+Function1045b0: ; 1045b0
 	call Function210f
 	call Function2e50
 	call Function2e5d
@@ -84528,6 +84845,8 @@
 	call Function2e56
 	ld a, $5
 	call Function263b
+
+Function1045c4: ; 1045c4
 	callba Function97df9
 	ld a, $3
 	call Function263b
@@ -84683,7 +85002,7 @@
 	ret
 ; 1046c6
 
-
+Function1046c6: ; 1046c6
 	call Function1046df
 	call Function104718
 	ld a, [$d146]
@@ -84752,6 +85071,8 @@
 	ld a, [$d14b]
 	ld [$dcb3], a
 	ret
+
+Function104750: ; 104750
 	ld hl, VramState ; $d0ed
 	res 6, [hl]
 	ld a, $1
@@ -84820,6 +85141,8 @@
 	ld a, $0
 	ld [rVBK], a ; $ff00+$4f
 	ret
+
+Function1047cf: ; 1047cf
 	call LoadTilesetHeader
 	call Function2821
 	xor a
@@ -84836,6 +85159,7 @@
 	jp GetSGBLayout
 ; 1047f0
 
+Function1047f0: ; 1047f0
 	call ClearSprites
 	callba Functionb8000
 	call Function2914