Label map trasnfer buffers and overworld move mode

This commit is contained in:
earthoul
2026-01-04 16:12:29 +09:00
parent 9c34622a72
commit 84c981ffb8
11 changed files with 104 additions and 103 deletions

View File

@@ -16,7 +16,7 @@ DEF NUM_GAME_EVENTS EQU const_value ; 6
const OWMODE_02 ; $02
const OWMODE_03 ; $03
const OWMODE_04 ; $04
const OWMODE_05 ; $05
const OWMODE_MOVE ; $05
const OWMODE_STEP_EVENT ; $06
const OWMODE_NPC_POSITION ; $07
const OWMODE_INTERACT ; $08

View File

@@ -123,6 +123,8 @@ DEF GR_ISLAND EQU $1
const MAP_GR_CASTLE ; $72
const MAP_GR_CASTLE_BIRURITCHI ; $73
DEF MAP_NONE EQU -1
; MAP_GFX_*
; referenced in MapHeaders, and others. see also: data/map_gfx.asm
; only 2 maps have alternate graphics: MAP_LIGHTNING_CLUB, MAP_GFX_GR_CHALLENGE_HALL

View File

@@ -152,27 +152,27 @@ OWModePostprocess::
jp hl
.PointerTable
dw Func_31a1 ; OWMODE_00
dw Func_c162 ; OWMODE_MUSIC_PRELOAD
dw Func_c17d ; OWMODE_02
dw Func_c169 ; OWMODE_03
dw Func_c183 ; OWMODE_04
dw Func_31a8 ; OWMODE_05
dw Func_c199 ; OWMODE_STEP_EVENT
dw Func_c162 ; OWMODE_NPC_POSITION
dw Func_c163 ; OWMODE_INTERACT
dw Func_c189 ; OWMODE_AFTER_DUEL
dw Func_3234 ; OWMODE_0A
dw Func_c18f ; OWMODE_0B
dw Func_c162 ; OWMODE_0C
dw Func_c162 ; OWMODE_0D
dw Func_c162 ; OWMODE_0E
dw Func_c16f ; OWMODE_0F
dw Func_c175 ; OWMODE_MUSIC_POSTLOAD
dw Func_c1a2 ; OWMODE_11
dw PauseMenu ; OWMODE_PAUSE_MENU
dw Func_31a1 ; OWMODE_00
dw .Exit ; OWMODE_MUSIC_PRELOAD
dw Func_c17d ; OWMODE_02
dw Func_c169 ; OWMODE_03
dw Func_c183 ; OWMODE_04
dw Func_31a8 ; OWMODE_MOVE
dw Func_c199 ; OWMODE_STEP_EVENT
dw .Exit ; OWMODE_NPC_POSITION
dw Func_c163 ; OWMODE_INTERACT
dw Func_c189 ; OWMODE_AFTER_DUEL
dw Func_3234 ; OWMODE_0A
dw Func_c18f ; OWMODE_0B
dw .Exit ; OWMODE_0C
dw .Exit ; OWMODE_0D
dw .Exit ; OWMODE_0E
dw PlaySFXWarp ; OWMODE_0F
dw Func_c175 ; OWMODE_MUSIC_POSTLOAD
dw Func_c1a2 ; OWMODE_11
dw PauseMenu ; OWMODE_PAUSE_MENU
Func_c162:
.Exit:
ret
Func_c163:
@@ -185,7 +185,7 @@ Func_c169:
call WaitAFrames
ret
Func_c16f:
PlaySFXWarp:
ld a, SFX_WARP
call PlaySFX
ret
@@ -339,7 +339,7 @@ Func_c24d:
ld [wCurMapScriptsPointer + 0], a
ld [wCurMapScriptsPointer + 1], a
ld [wCurIsland], a
ld [wd586], a
ld [wCurMap], a
ld [wCurOWLocation], a
ld [wCurMusic], a
ld [wSentMailBitfield + 0], a
@@ -432,32 +432,32 @@ Func_c319:
call GetVarValue
cp $04
jr c, .asm_c32d
jr z, .asm_c357
jr z, .done
ld a, VAR_0D
ld c, $01
call SetVarValue
jr .asm_c357
jr .done
.asm_c32d
ld a, [wd586]
cp $23
jr z, .asm_c357
cp $24
jr z, .asm_c357
cp $25
jr z, .asm_c357
ld a, [wCurMap]
cp MAP_POKEMON_DOME_ENTRANCE
jr z, .done
cp MAP_POKEMON_DOME
jr z, .done
cp MAP_POKEMON_DOME_BACK
jr z, .done
ld a, VAR_0D
call GetVarValue
cp $02
jr z, .asm_c357
jr z, .done
jr nc, .asm_c358
ld a, VAR_20
call GetVarValue
cp $0a
jr c, .asm_c357
jr c, .done
ld a, VAR_0D
ld c, $02
call SetVarValue
.asm_c357
.done
ret
.asm_c358
ld a, VAR_0D
@@ -465,7 +465,7 @@ Func_c319:
call SetVarValue
ld a, VAR_20
call ZeroOutVarValue
jr .asm_c357
jr .done
Func_c366:
ld a, VAR_21
@@ -1261,7 +1261,7 @@ SetWarpData:
ld hl, wOverworldTransition
set 0, [hl]
ld a, [wNextWarpMap]
ld [wd585], a
ld [wTempPrevMap], a
ret
Func_d3e9::
@@ -1319,12 +1319,12 @@ LoadMapHeader::
ld de, wNextMapHeaderData
ld bc, MAPHEADERSTRUCT_LENGTH
call CopyFarHLToDE
ld a, [wd586]
ld [wd584], a
ld a, [wCurMap]
ld [wPrevMap], a
pop af
ld [wd586], a
ld a, $ff
ld [wd585], a
ld [wCurMap], a
ld a, MAP_NONE
ld [wTempPrevMap], a
ret
; a = NPC_* ID

View File

@@ -6063,7 +6063,7 @@ Func_2ed75:
ld a, EVENT_SET_UNTIL_MAP_RELOAD_1
farcall GetEventValue
jr z, .asm_2ed8a
ld a, [wd585]
ld a, [wTempPrevMap]
cp OVERWORLD_MAP_TCG
jr nz, .asm_2ed8a
ld a, EVENT_TALKED_TO_SARA
@@ -8291,7 +8291,7 @@ OverheadIslands_MapScripts:
Func_2fe54:
farcall InitOWObjects
ld a, [wd584]
ld a, [wPrevMap]
cp OVERWORLD_MAP_TCG
jr nz, .asm_2fe6c
ld a, NPC_GR_BLIMP
@@ -8331,7 +8331,7 @@ Func_2fe97:
ret
Func_2fe9a:
ld a, [wd584]
ld a, [wPrevMap]
cp OVERWORLD_MAP_TCG
jr z, .asm_2febb
ld a, OVERWORLD_MAP_TCG

View File

@@ -43,7 +43,7 @@ Func_30005:
ret
Func_30056:
ld a, [wd584]
ld a, [wPrevMap]
cp OVERWORLD_MAP_GR
ret nz
ld a, VAR_3B
@@ -80,7 +80,7 @@ OverworldGr_MapScripts:
db $ff ; end
Func_30092:
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_OVERHEAD_ISLANDS
jr z, .asm_300a0
cp MAP_GR_AIRPORT
@@ -118,7 +118,7 @@ Func_300a8:
ld a, [wCurOWLocation]
call PrintGRIslandLocationName
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_OVERHEAD_ISLANDS
jr z, .asm_3012c
cp MAP_GR_AIRPORT
@@ -166,7 +166,7 @@ Func_300a8:
ld [wd593 + 0], a
ld a, h
ld [wd593 + 1], a
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_OVERHEAD_ISLANDS
jr z, .asm_30159
ld a, NPC_GR_BLIMP
@@ -207,7 +207,7 @@ Func_3018b:
ret
Func_30192:
ld a, [wd585]
ld a, [wTempPrevMap]
cp MAP_GR_AIRPORT
jr z, .asm_3019f
cp MAP_OVERHEAD_ISLANDS
@@ -590,7 +590,7 @@ Func_303c7:
jr z, .from_north
cp OWMAP_GR_FIGHTING_FORT
jr nz, .from_south
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_FIGHTING_FORT
jr z, .from_north
.from_south
@@ -791,7 +791,7 @@ Data_3056a:
INCLUDE "data/gr_island_paths.asm"
DoGRBlimpMovement_GRIsland:
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_GR_AIRPORT
jr z, .asm_310cf
@@ -866,7 +866,7 @@ DoGRBlimpMovement_GRIsland:
jr .finish
.done_movement
ld a, [wd585]
ld a, [wTempPrevMap]
cp MAP_OVERHEAD_ISLANDS
jr z, .asm_31136 ; unnecessary cp
.asm_31136
@@ -877,9 +877,9 @@ DoGRBlimpMovement_GRIsland:
ret
; fades out to white or black
; dependent on wd585
; dependent on wTempPrevMap
.FadeOut:
ld a, [wd585]
ld a, [wTempPrevMap]
cp MAP_OVERHEAD_ISLANDS
jr nz, .to_black
; to white
@@ -1264,7 +1264,7 @@ Func_3142d:
ret
Func_31447:
ld a, [wd585]
ld a, [wTempPrevMap]
cp OVERWORLD_MAP_GR
jr nz, .asm_3148e
ld a, VAR_30
@@ -1726,7 +1726,7 @@ Func_317e2:
ret
Func_317eb:
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_GRASS_FORT_ENTRANCE
jr nz, .asm_317f6
farcall DeliverMailFromQueue
@@ -2791,7 +2791,7 @@ Func_3200d:
ret
Func_32016:
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_LIGHTNING_FORT_ENTRANCE
jr nz, .asm_32021
farcall DeliverMailFromQueue
@@ -3878,7 +3878,7 @@ Func_32864:
ret
Func_3286d:
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_FIRE_FORT_ENTRANCE
jr nz, .asm_32878
farcall DeliverMailFromQueue
@@ -5069,7 +5069,7 @@ Func_33120:
ret
Func_33129:
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_WATER_FORT_ENTRANCE
jr nz, .asm_33134
farcall DeliverMailFromQueue
@@ -5625,7 +5625,7 @@ Func_33565:
ret
Func_3356c:
ld a, [wd585]
ld a, [wTempPrevMap]
cp MAP_FIGHTING_FORT_BASEMENT
jr z, .asm_33575
scf
@@ -5773,7 +5773,7 @@ Func_336a3:
ret
Func_336aa:
ld a, [wd585]
ld a, [wTempPrevMap]
cp MAP_FIGHTING_FORT_BASEMENT
jr z, .asm_336b3
scf
@@ -5992,7 +5992,7 @@ Func_338a8:
ret
Func_338af:
ld a, [wd585]
ld a, [wTempPrevMap]
cp MAP_FIGHTING_FORT_BASEMENT
jr z, .asm_338b8
scf
@@ -6191,7 +6191,7 @@ Func_33a83:
ret
Func_33a8a:
ld a, [wd585]
ld a, [wTempPrevMap]
cp MAP_FIGHTING_FORT_BASEMENT
jr z, .asm_33a93
scf
@@ -6278,7 +6278,7 @@ Func_33b73:
ret
Func_33b7a:
ld a, [wd585]
ld a, [wTempPrevMap]
cp MAP_FIGHTING_FORT_BASEMENT
jr z, .asm_33b83
scf
@@ -6378,7 +6378,7 @@ Func_33c74:
ld bc, $53
ld a, $05
farcall SetwD896
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_FIGHTING_FORT_MAZE_18
jr z, .asm_33c86
scf
@@ -6397,7 +6397,7 @@ Func_33c74:
ret
Func_33c9d:
ld a, [wd585]
ld a, [wTempPrevMap]
cp MAP_FIGHTING_FORT_BASEMENT
jr z, .asm_33ca6
scf

View File

@@ -1035,7 +1035,7 @@ Func_347e1:
Func_347ea:
farcall ClearwD986
ld a, [wd584]
ld a, [wPrevMap]
cp OVERWORLD_MAP_TCG
jr z, .asm_3483d
ld a, EVENT_SHORT_GR_ISLAND_FLYOVER_SEQUENCE
@@ -1093,7 +1093,7 @@ Func_347ea:
ret
Func_34873:
ld a, [wd585]
ld a, [wTempPrevMap]
cp OVERWORLD_MAP_TCG
jr z, .asm_3487c
scf
@@ -1914,7 +1914,7 @@ Func_34ef7:
ret
Func_34f07:
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_GAME_CENTER_1
jr z, .asm_34f23
ld a, OWMODE_0A
@@ -3380,7 +3380,7 @@ Func_35a04:
ret
Func_35a0d:
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_FIGHTING_FORT_ENTRANCE
jr nz, .asm_35a18
farcall DeliverMailFromQueue
@@ -3678,7 +3678,7 @@ Func_35c68:
ret
Func_35c6f:
ld a, [wd585]
ld a, [wTempPrevMap]
cp MAP_FIGHTING_FORT_BASEMENT
jr z, .asm_35c78
scf
@@ -3734,7 +3734,7 @@ Func_35d04:
ret
Func_35d0b:
ld a, [wd585]
ld a, [wTempPrevMap]
cp MAP_FIGHTING_FORT_BASEMENT
jr z, .asm_35d14
scf
@@ -4599,7 +4599,7 @@ Func_36396:
ret
Func_3639f:
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_PSYCHIC_STRONGHOLD_ENTRANCE
jr nz, .asm_363aa
farcall DeliverMailFromQueue
@@ -4625,7 +4625,7 @@ Func_3639f:
script_call b0z, .ows_36426
.ows_363da
end_script
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_PSYCHIC_STRONGHOLD_MAMI
jr z, .asm_363e4
scf
@@ -4665,7 +4665,7 @@ Func_3639f:
script_ret
Func_36434:
ld a, [wd585]
ld a, [wTempPrevMap]
cp MAP_PSYCHIC_STRONGHOLD_MAMI
jr z, .asm_3643d
scf
@@ -7015,7 +7015,7 @@ Func_37663:
ret
Func_3766c:
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_GR_CASTLE_ENTRANCE
jr nz, .asm_37677
farcall DeliverMailFromQueue

View File

@@ -2306,7 +2306,7 @@ Func_3d1f6:
ret
Func_3d210:
ld a, [wd585]
ld a, [wTempPrevMap]
cp OVERWORLD_MAP_TCG
jr nz, .asm_3d257
ld a, VAR_28
@@ -2875,7 +2875,7 @@ Func_3d6ca:
ld bc, TILEMAP_037
lb de, 7, 0
farcall Func_12c0ce
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_POKEMON_DOME_BACK
jr z, .asm_3d6dd
scf
@@ -2912,7 +2912,7 @@ Func_3d6ca:
ret
Func_3d719:
ld a, [wd585]
ld a, [wTempPrevMap]
cp MAP_POKEMON_DOME_BACK
jr z, .asm_3d722
scf
@@ -2931,7 +2931,7 @@ Func_3d719:
ret
Func_3d734:
ld a, [wd585]
ld a, [wTempPrevMap]
cp MAP_POKEMON_DOME_BACK
jr z, .asm_3d73d
scf
@@ -5940,7 +5940,7 @@ Func_3ee11:
compare_loaded_var_word 0
script_jump_if_b0z .ows_3ee7d
quit_script
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_GAME_CENTER_1
jr nz, .asm_3ee67
ld a, $01
@@ -7325,7 +7325,7 @@ Func_3f8c6:
ld bc, $53
ld a, $05
farcall SetwD896
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_FIGHTING_FORT
jr nz, .asm_3f8d8
scf
@@ -7389,7 +7389,7 @@ Func_3f932:
end_script
ld a, $02
farcall Func_30065
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_FIGHTING_FORT
ret z
ld a, VAR_3B

View File

@@ -725,7 +725,7 @@ OverworldTcg_MapScripts:
db $ff ; end
Func_40474:
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_OVERHEAD_ISLANDS
jr z, .asm_40482
cp MAP_TCG_AIRPORT
@@ -758,7 +758,7 @@ Func_4048a:
ld a, [wCurOWLocation]
call PrintTCGIslandLocationName
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_TCG_AIRPORT
jr z, .gr_blimp_cutscene
cp MAP_OVERHEAD_ISLANDS
@@ -807,7 +807,7 @@ Func_4048a:
ld a, h
ld [wd593 + 1], a
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_OVERHEAD_ISLANDS
jr z, .asm_40528
ld a, NPC_GR_BLIMP
@@ -833,7 +833,7 @@ Func_4053b:
ret
Func_4053e:
ld a, [wd585]
ld a, [wTempPrevMap]
cp MAP_TCG_AIRPORT
jr z, .asm_4054b
cp MAP_OVERHEAD_ISLANDS
@@ -1182,7 +1182,7 @@ TCGIslandLocationPositions:
INCLUDE "data/tcg_island_paths.asm"
DoGRBlimpMovement_TCGIsland:
ld a, [wd584]
ld a, [wPrevMap]
cp MAP_TCG_AIRPORT
jr z, .asm_40cfa
@@ -1257,7 +1257,7 @@ DoGRBlimpMovement_TCGIsland:
jr .finish
.done_movement
ld a, [wd585]
ld a, [wTempPrevMap]
cp MAP_OVERHEAD_ISLANDS
jr z, .asm_40d71 ; unnecessary cp
.asm_40d71
@@ -1268,9 +1268,9 @@ DoGRBlimpMovement_TCGIsland:
ret
; fades out to white or black
; dependent on wd585
; dependent on wTempPrevMap
.FadeOut:
ld a, [wd585]
ld a, [wTempPrevMap]
cp MAP_OVERHEAD_ISLANDS
jr nz, .to_black
; to white
@@ -3203,7 +3203,7 @@ Func_41c57:
Func_41c60:
farcall ClearwD986
ld a, [wd584]
ld a, [wPrevMap]
cp OVERWORLD_MAP_GR
jr nz, .asm_41c9f
ld a, OWMODE_0A
@@ -3230,7 +3230,7 @@ Func_41c60:
ret
Func_41ca1:
ld a, [wd585]
ld a, [wTempPrevMap]
cp OVERWORLD_MAP_GR
jr z, .asm_41caa
scf

View File

@@ -313,12 +313,12 @@ LoadNPCs::
Func_3234::
ldh a, [hBankROM]
push af
call Func_323f
call .Script
pop af
call BankswitchROM
ret
Func_323f::
.Script:
ld hl, wd592
ld a, [hl]
call BankswitchROM
@@ -482,7 +482,7 @@ HandleOverworldPlayerMoveInput::
farcall Func_10e3c
or a
jr z, .set_carry
ld a, OWMODE_05
ld a, OWMODE_MOVE
ld [wOverworldMode], a
ld a, [wPlayerOWObject]
farcall StartOWObjectAnimation
@@ -573,7 +573,7 @@ Func_33a3::
ret
Func_33b7::
ld a, [wd586]
ld a, [wCurMap]
ld c, a
ld b, $00
sla c

View File

@@ -2363,14 +2363,13 @@ wOverworldMode:: ; d582
wOverworldTransition:: ; d583
ds $1
; MAP_* constant
wd584:: ; d584
wPrevMap:: ; d584
ds $1
wd585:: ; d585
wTempPrevMap:: ; d585
ds $1
wd586:: ; d586
wCurMap:: ; d586
ds $1
; OWMAP_* constant

View File

@@ -20,7 +20,7 @@ script_types = [
"OWMODE_02",
"OWMODE_03",
"OWMODE_04",
"OWMODE_05",
"OWMODE_MOVE",
"OWMODE_STEP_EVENT",
"OWMODE_NPC_POSITION",
"OWMODE_INTERACT",