Map setup scripts and commands

This commit is contained in:
yenatch 2014-01-26 22:07:19 -05:00
parent 08a0462c1e
commit 1ba5b0f4bc
3 changed files with 374 additions and 47 deletions

View File

@ -134,7 +134,7 @@ EnterMap: ; 9673e
ld [$d453], a ld [$d453], a
ld [$d454], a ld [$d454], a
call Function968d1 call Function968d1
callba Function15363 callba RunMapSetupScript
call Function966cb call Function966cb
ld a, [$ff9f] ld a, [$ff9f]

View File

@ -214,7 +214,7 @@ endr
Function222a: ; 222a Function222a: ; 222a
ld a, $fa ld a, $fa
ld [$ff9f], a ld [$ff9f], a
callba Function15363 callba RunMapSetupScript
xor a xor a
ld [$ff9f], a ld [$ff9f], a
ret ret
@ -1489,7 +1489,7 @@ Function289d: ; 289d
.asm_28ce .asm_28ce
ld b, $6 ld b, $6
ld c, $4 ld c, $4
jr .asm_28f7 jr Function28f7
.asm_28d4 .asm_28d4
ld de, $dcba ld de, $dcba
@ -1502,8 +1502,10 @@ Function289d: ; 289d
.asm_28dd .asm_28dd
ld b, $5 ld b, $5
ld c, $5 ld c, $5
jr .asm_28f7 jr Function28f7
Function28e3: ; 28e3
ld hl, $d194 ld hl, $d194
ld a, [hli] ld a, [hli]
ld h, [hl] ld h, [hl]
@ -1515,6 +1517,7 @@ Function289d: ; 289d
ld b, $6 ld b, $6
ld c, $5 ld c, $5
Function28f7: ; 28f7
.asm_28f7 .asm_28f7
push bc push bc
push hl push hl

410
main.asm
View File

@ -9853,7 +9853,7 @@ Functioncc78: ; cc78
ld d, a ld d, a
ld a, [$dcb3] ld a, [$dcb3]
ld e, a ld e, a
callba Function15344 callba IsSpawnPoint
jr nc, .asm_cc99 jr nc, .asm_cc99
ld a, c ld a, c
ld [$d001], a ld [$d001], a
@ -17429,7 +17429,7 @@ Function12527: ; 12527
ld d, a ld d, a
ld a, [$dcb3] ld a, [$dcb3]
ld e, a ld e, a
callba Function15344 callba IsSpawnPoint
ld a, c ld a, c
jr c, .asm_12539 jr c, .asm_12539
xor a xor a
@ -23147,7 +23147,7 @@ SpawnPoints: ; 0x152ab
db -1, -1, -1, -1 db -1, -1, -1, -1
Function1531f: ; 1531f LoadSpawnPoint: ; 1531f
push hl push hl
push de push de
ld a, [$d001] ld a, [$d001]
@ -23174,7 +23174,7 @@ Function1531f: ; 1531f
; 15344 ; 15344
Function15344: ; 15344 IsSpawnPoint: ; 15344
ld hl, SpawnPoints ld hl, SpawnPoints
ld c, 0 ld c, 0
.asm_15349 .asm_15349
@ -23206,69 +23206,364 @@ Function15344: ; 15344
; 15363 ; 15363
Function15363: ; 15363 RunMapSetupScript: ; 15363
ld a, [$ff9f] ld a, [$ff9f]
and $f and $f
dec a dec a
ld c, a ld c, a
ld b, $0 ld b, 0
ld hl, $5377 ld hl, MapSetupScripts
add hl, bc add hl, bc
add hl, bc add hl, bc
ld a, [hli] ld a, [hli]
ld h, [hl] ld h, [hl]
ld l, a ld l, a
call Function1541d call ReadMapSetupScript
ret ret
; 15377 ; 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 ; Command descriptions from Condensation water's scripting compendium.
.asm_1541d 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 maps 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 arent 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 HIROs 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] ld a, [hli]
cp $ff cp -1
ret z ret z
push hl push hl
ld c, a ld c, a
ld b, $0 ld b, 0
ld hl, $5440 ld hl, MapSetupCommands
add hl, bc add hl, bc
add hl, bc add hl, bc
add hl, bc add hl, bc
; bank
ld b, [hl] ld b, [hl]
inc hl inc hl
; address
ld a, [hli] ld a, [hli]
ld h, [hl] ld h, [hl]
ld l, a ld l, a
; Bit 7 of the bank indicates a parameter.
; This is left unused.
bit 7, b bit 7, b
jr z, .asm_15439 jr z, .go
pop de pop de
ld a, [de] ld a, [de]
ld c, a ld c, a
inc de inc de
push de push de
.asm_15439 .go
ld a, b ld a, b
and $7f and $7f
rst FarCall rst FarCall
pop hl pop hl
jr .asm_1541d jr .loop
; 15440 ; 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 Function154cf: ; 154cf
ld a, $1 ld a, $1
ld [$FF00+$de], a ld [$ffde], a
ret ret
; 154d3 ; 154d3
Function154d3: ; 154d3 Function154d3: ; 154d3
xor a xor a
ld [$FF00+$de], a ld [$ffde], a
ret ret
; 154d7 ; 154d7
@ -23368,19 +23663,30 @@ Function1554e: ; 1554e (5:554e)
.asm_15565 .asm_15565
and a and a
ret ret
; 15567
Function15567: ; 15567
ld a, $6 ld a, $6
call Function3cb4 call Function3cb4
ret ret
; 1556d
Function1556d: ; 1556d
callba _UpdateTimePals callba _UpdateTimePals
ret ret
ld e, $0
Function15574: ; 15574
ld e, 0
ld a, [MusicFadeIDLo] ; $c2a9 ld a, [MusicFadeIDLo] ; $c2a9
ld d, $0 ld d, 0
ld a, [MusicFadeIDHi] ; $c2aa ld a, [MusicFadeIDHi] ; $c2aa
ld a, $4 ld a, $4
ld [MusicFade], a ; $c2a7 ld [MusicFade], a ; $c2a7
call Function4b6 call Function4b6
ret ret
; 15587
Function15587: ; 15587
ld a, [PlayerState] ; $d95d ld a, [PlayerState] ; $d95d
cp $1 cp $1
jr nz, .asm_15596 jr nz, .asm_15596
@ -23390,6 +23696,8 @@ Function1554e: ; 1554e (5:554e)
.asm_15596 .asm_15596
call Function3d2f call Function3d2f
ret ret
; 1559a
Function1559a: ; 1559a Function1559a: ; 1559a
call Function15650 call Function15650
@ -34010,6 +34318,8 @@ Function29f47: ; 29f47
; 29f54 ; 29f54
INCBIN "baserom.gbc",$29f54,$29ff8 - $29f54 INCBIN "baserom.gbc",$29f54,$29ff8 - $29f54
Function29ff8: ; 29ff8
call Function2a205 call Function2a205
jr c, .asm_2a006 jr c, .asm_2a006
ld hl, $d25a ld hl, $d25a
@ -34674,7 +34984,7 @@ Function2a355: ; 2a355
ld l, e ld l, e
call Random call Random
and $1f and $1f
jr z, asm_2a3cd jr z, Function2a3cd
and $3 and $3
cp [hl] cp [hl]
jr nc, .asm_2a36e jr nc, .asm_2a36e
@ -34702,36 +35012,37 @@ Function2a394: ; 2a394
ld a, [RoamMon1MapGroup] ld a, [RoamMon1MapGroup]
cp $ff cp $ff
jr z, .asm_2a3a6 jr z, .asm_2a3a6
call asm_2a3cd call Function2a3cd
ld a, b ld a, b
ld [RoamMon1MapGroup], a ld [RoamMon1MapGroup], a
ld a, c ld a, c
ld [RoamMon1MapNumber], a ld [RoamMon1MapNumber], a
.asm_2a3a6 .asm_2a3a6
ld a, [RoamMon2MapGroup] ld a, [RoamMon2MapGroup]
cp $ff cp $ff
jr z, .asm_2a3b8 jr z, .asm_2a3b8
call asm_2a3cd call Function2a3cd
ld a, b ld a, b
ld [RoamMon2MapGroup], a ld [RoamMon2MapGroup], a
ld a, c ld a, c
ld [RoamMon2MapNumber], a ld [RoamMon2MapNumber], a
.asm_2a3b8 .asm_2a3b8
ld a, [RoamMon3MapGroup] ld a, [RoamMon3MapGroup]
cp $ff cp $ff
jr z, .asm_2a3ca jr z, .asm_2a3ca
call asm_2a3cd call Function2a3cd
ld a, b ld a, b
ld [RoamMon3MapGroup], a ld [RoamMon3MapGroup], a
ld a, c ld a, c
ld [RoamMon3MapNumber], a ld [RoamMon3MapNumber], a
.asm_2a3ca .asm_2a3ca
jp Function2a3f6 jp Function2a3f6
asm_2a3cd Function2a3cd: ; 2a3cd
.asm_2a3cd
ld hl, $640f ld hl, $640f
.asm_2a3d0 .asm_2a3d0
call Random call Random
@ -34756,7 +35067,7 @@ asm_2a3cd
inc hl inc hl
ld a, [MapNumber] ld a, [MapNumber]
cp [hl] cp [hl]
jr z, asm_2a3cd jr z, .asm_2a3cd
dec hl dec hl
.asm_2a3f2 .asm_2a3f2
@ -71101,6 +71412,7 @@ Functionb800a: ; b800a
ld [$c2d9], a ld [$c2d9], a
call Functionb8089 call Functionb8089
jr z, .asm_b8024 jr z, .asm_b8024
call GetMapPermission call GetMapPermission
cp $6 cp $6
jr nz, .asm_b8029 jr nz, .asm_b8029
@ -71114,12 +71426,15 @@ Functionb800a: ; b800a
bit 1, [hl] bit 1, [hl]
res 1, [hl] res 1, [hl]
jr nz, .asm_b8054 jr nz, .asm_b8054
call Functionb8064 call Functionb8064
jr z, .asm_b8054 jr z, .asm_b8054
ld a, [$c2d9] ld a, [$c2d9]
ld [$c2d8], a ld [$c2d8], a
call Functionb8070 call Functionb8070
jr z, .asm_b8054 jr z, .asm_b8054
ld a, $3c ld a, $3c
ld [$c2da], a ld [$c2da], a
call Functionb80c6 call Functionb80c6
@ -71149,19 +71464,19 @@ Functionb8064: ; b8064
; b8070 ; b8070
Functionb8070: ; b8070 Functionb8070: ; b8070
cp $ff cp -1
ret z ret z
cp $0 cp SPECIAL_MAP
ret z ret z
cp $11 cp RADIO_TOWER
ret z ret z
cp $46 cp LAV_RADIO_TOWER
ret z ret z
cp $3b cp UNDERGROUND
ret z ret z
cp $5a cp INDIGO_PLATEAU
ret z ret z
cp $44 cp POWER_PLANT
ret z ret z
ld a, $1 ld a, $1
and a and a
@ -71170,12 +71485,12 @@ Functionb8070: ; b8070
Functionb8089: ; b8089 Functionb8089: ; b8089
ld a, [MapGroup] ld a, [MapGroup]
cp $a cp GROUP_ROUTE_35_NATIONAL_PARK_GATE
ret nz ret nz
ld a, [MapNumber] ld a, [MapNumber]
cp $f cp MAP_ROUTE_35_NATIONAL_PARK_GATE
ret z ret z
cp $11 cp MAP_ROUTE_36_NATIONAL_PARK_GATE
ret ret
; b8098 ; b8098
@ -81872,7 +82187,7 @@ Function1002c9: ; 1002c9
Function1002dc: ; 1002dc Function1002dc: ; 1002dc
ld a, $f8 ld a, $f8
ld [$ff9f], a ld [$ff9f], a
callba Function15363 callba RunMapSetupScript
xor a xor a
ld [$ff9f], a ld [$ff9f], a
call Functione51 call Functione51
@ -84518,9 +84833,11 @@ Function10433a: ; 10433a (41:433a)
jr nz, .asm_10433c jr nz, .asm_10433c
ret ret
INCBIN "gfx/ow/misc.2bpp" INCBIN "gfx/ow/misc.2bpp"
Function1045b0: ; 1045b0
call Function210f call Function210f
call Function2e50 call Function2e50
call Function2e5d call Function2e5d
@ -84528,6 +84845,8 @@ INCBIN "gfx/ow/misc.2bpp"
call Function2e56 call Function2e56
ld a, $5 ld a, $5
call Function263b call Function263b
Function1045c4: ; 1045c4
callba Function97df9 callba Function97df9
ld a, $3 ld a, $3
call Function263b call Function263b
@ -84683,7 +85002,7 @@ EnteredConnection: ; 1046c4
ret ret
; 1046c6 ; 1046c6
Function1046c6: ; 1046c6
call Function1046df call Function1046df
call Function104718 call Function104718
ld a, [$d146] ld a, [$d146]
@ -84752,6 +85071,8 @@ Function104718: ; 104718 (41:4718)
ld a, [$d14b] ld a, [$d14b]
ld [$dcb3], a ld [$dcb3], a
ret ret
Function104750: ; 104750
ld hl, VramState ; $d0ed ld hl, VramState ; $d0ed
res 6, [hl] res 6, [hl]
ld a, $1 ld a, $1
@ -84820,6 +85141,8 @@ Function1047b4: ; 1047b4 (41:47b4)
ld a, $0 ld a, $0
ld [rVBK], a ; $ff00+$4f ld [rVBK], a ; $ff00+$4f
ret ret
Function1047cf: ; 1047cf
call LoadTilesetHeader call LoadTilesetHeader
call Function2821 call Function2821
xor a xor a
@ -84836,6 +85159,7 @@ Function1047eb: ; 1047eb
jp GetSGBLayout jp GetSGBLayout
; 1047f0 ; 1047f0
Function1047f0: ; 1047f0
call ClearSprites call ClearSprites
callba Functionb8000 callba Functionb8000
call Function2914 call Function2914