More splits; map setup labels

This commit is contained in:
PikalaxALT 2015-11-11 23:38:57 -05:00
parent 91068077f0
commit 2ffcb4b490
85 changed files with 10945 additions and 11772 deletions

View File

@ -6,7 +6,7 @@
; FadeMusic
; PlayStereoSFX
_SoundRestart:: ; e8000
_MapSetup_Sound_Off:: ; e8000
; restart sound operation
; clear all relevant hardware registers & wram
push hl
@ -63,7 +63,7 @@ MusicFadeRestart: ; e803d
push af
ld a, [MusicFadeIDLo]
push af
call _SoundRestart
call _MapSetup_Sound_Off
pop af
ld [MusicFadeIDLo], a
pop af
@ -3161,7 +3161,7 @@ ChannelPointers: ; e8fd9
ClearChannels:: ; e8fe9
; runs ClearChannel for all 4 channels
; doesn't seem to be used, but functionally identical to SoundRestart
; doesn't seem to be used, but functionally identical to MapSetup_Sound_Off
ld hl, rNR50
xor a
rept 2

View File

@ -2527,7 +2527,7 @@ WinTrainerBattle: ; 3cfa4
or [hl]
ret nz
call ClearTileMap
call WhiteBGMap
call ClearBGPalettes
ret
; 3d02b
@ -2911,7 +2911,7 @@ ForcePlayerMonChoice: ; 3d227
.enemy_fainted_mobile_error
call ClearSprites
call WhiteBGMap
call ClearBGPalettes
call _LoadHPBar
call ExitMenu
call LoadTileMapToTempTileMap
@ -2995,7 +2995,7 @@ IsMobileBattle: ; 3d2f1
; 3d2f7
Function3d2f7: ; 3d2f7
call WhiteBGMap
call ClearBGPalettes
Function3d2fa: ; switch to fullscreen menu?
callba Function5004f
callba Function50405
@ -3137,7 +3137,7 @@ LostBattle: ; 3d38e
callba BattleTowerText
call WaitPressAorB_BlinkCursor
call ClearTileMap
call WhiteBGMap
call ClearBGPalettes
ret
.not_canlose
@ -5290,7 +5290,7 @@ Function3e234: ; 3e234
ld a, [wItemAttributeParamBuffer]
cp $3
jr z, .asm_3e24a
call WhiteBGMap
call ClearBGPalettes
.asm_3e24a
xor a
@ -5332,7 +5332,7 @@ BattleMenu_PKMN: ; 3e28d
Function3e290:
call ExitMenu
call LoadStandardMenuDataHeader
call WhiteBGMap
call ClearBGPalettes
Function3e299:
call Function3d2fa
xor a
@ -8816,7 +8816,7 @@ endr
bit 0, a
ret z
call ClearTileMap
call WhiteBGMap
call ClearBGPalettes
ret
; 3f759

View File

@ -540,7 +540,7 @@ const_value SET 1
const OBJECT_SPRITE_Y
const OBJECT_SPRITE_X_OFFSET
const OBJECT_SPRITE_Y_OFFSET
const OBJECT_27
const OBJECT_MOVEMENT_BYTE_INDEX
const OBJECT_28
const OBJECT_29
const OBJECT_30

View File

@ -1,16 +1,16 @@
const_value SET $f1
const MAPSETUP_WARP
const MAPSETUP_02
const MAPSETUP_CONTINUE
const MAPSETUP_RELOADMAP
const MAPSETUP_04
const MAPSETUP_05
const MAPSETUP_06
const MAPSETUP_07
const MAPSETUP_08
const MAPSETUP_09
const MAPSETUP_10
const MAPSETUP_TELEPORT
const MAPSETUP_DOOR
const MAPSETUP_FALL
const MAPSETUP_CONNECTION
const MAPSETUP_LINKRETURN
const MAPSETUP_TRAIN
const MAPSETUP_SUBMENU
const MAPSETUP_BADWARP
const MAPSETUP_12
const MAPSETUP_FLY
; Command descriptions from Condensation water's scripting compendium. const_def
const_def

View File

@ -42,10 +42,10 @@ const_value SET -1
const PLAYEREVENT_SEENBYTRAINER
const PLAYEREVENT_TALKTOTRAINER
const PLAYEREVENT_ITEMBALL
const PLAYEREVENT_4
const PLAYEREVENT_CONNECTION
const PLAYEREVENT_WARP
const PLAYEREVENT_FALL
const PLAYEREVENT_WHITEOUT
const PLAYEREVENT_HATCH
const PLAYEREVENT_9
const PLAYEREVENT_JOYCHANGEFACING
NUM_PLAYER_EVENTS EQU const_value

2667
engine/billspc.asm Executable file

File diff suppressed because it is too large Load Diff

2560
engine/card_flip.asm Executable file

File diff suppressed because it is too large Load Diff

View File

@ -131,7 +131,7 @@ Function109847:: ; 109847
ld a, $5
ld [rSVBK], a
call WhiteBGMap
call ClearBGPalettes
call ClearTileMap
call ClearSprites
@ -210,7 +210,7 @@ Function109847:: ; 109847
jr .asm_1098de
.asm_1098ee
call WhiteBGMap
call ClearBGPalettes
xor a
ld [hLCDStatCustom], a
ld [hBGMapAddress], a

View File

@ -6,7 +6,7 @@ Function1dd702: ; 1dd702
; 1dd709
Function1dd709: ; 1dd709
call WhiteBGMap
call ClearBGPalettes
call ClearTileMap
call ClearSprites
call DisableLCD

615
engine/dummy_game.asm Executable file
View File

@ -0,0 +1,615 @@
_DummyGame: ; e1e5b (38:5e5b)
call Functione1e67
call DelayFrame
.asm_e1e61
call Functione1ebb
jr nc, .asm_e1e61
ret
Functione1e67: ; e1e67 (38:5e67)
call DisableLCD
ld b, $8
call GetSGBLayout
callab Function8cf53
ld hl, LZ_e2221
ld de, VTiles2 tile $00
call Decompress
ld hl, Unknown_e00ed
ld de, VTiles0 tile $00
ld bc, $40
ld a, BANK(Unknown_e00ed)
call FarCopyBytes
ld a, $8
ld hl, wc300
ld [hli], a
ld [hl], $0
hlcoord 0, 0
ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
xor a
call ByteFill
xor a
ld [hSCY], a
ld [hSCX], a
ld [rWY], a
ld [wJumptableIndex], a
ld a, $1
ld [hBGMapMode], a
ld a, $e3
ld [rLCDC], a
ld a, $e4
call DmgToCgbBGPals
ld a, $e0
call Functioncf8
ret
Functione1ebb: ; e1ebb (38:5ebb)
ld a, [wJumptableIndex]
bit 7, a
jr nz, .asm_e1ed0
call Functione1ed2
callab Function8cf69
call DelayFrame
and a
ret
.asm_e1ed0
scf
ret
Functione1ed2: ; e1ed2 (38:5ed2)
ld a, [wJumptableIndex]
ld e, a
ld d, 0
ld hl, Jumptable_e1ee1
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
; e1ee1 (38:5ee1)
Jumptable_e1ee1: ; e1ee1
dw Functione1ef3
dw Functione1efb
dw Functione1f1c
dw Functione1f42
dw Functione1f61
dw Functione1f8b
dw Functione1fba
dw Functione1fcc
dw Functione2000
; e1ef3
Functione1ef3: ; e1ef3
call Functione2152
ld hl, wJumptableIndex
inc [hl]
ret
; e1efb
Functione1efb: ; e1efb
call Functione00ed
jr nc, .asm_e1f06
ld hl, wJumptableIndex
set 7, [hl]
ret
.asm_e1f06
call Functione209d
ld hl, wJumptableIndex
inc [hl]
xor a
ld [wc708], a
ld hl, wc703
rept 4
ld [hli], a
endr
ld [hl], a
ld [wc709], a
Functione1f1c: ; e1f1c
ld hl, wc708
ld a, [hl]
cp $2d
jr nc, .asm_e1f30
inc [hl]
call Functione2183
xor a
ld [wc6fd], a
call Functione2128
ret
.asm_e1f30
ld de, $341c
ld a, $c
call Function3b2a
ld a, $5
ld [wc702], a
ld hl, wJumptableIndex
inc [hl]
ret
; e1f42
Functione1f42: ; e1f42
ld a, [wc702]
hlcoord 17, 0
add $f6
ld [hl], a
ld hl, wc702
ld a, [hl]
and a
jr nz, .asm_e1f58
ld a, $7
ld [wJumptableIndex], a
ret
.asm_e1f58
dec [hl]
xor a
ld [wcf64], a
ld hl, wJumptableIndex
inc [hl]
Functione1f61: ; e1f61
ld a, [wcf64]
and a
ret z
dec a
ld e, a
ld d, $0
ld hl, wc6d0
add hl, de
ld a, [hl]
cp $ff
ret z
ld [wc6fd], a
ld [wPlayerMinimized], a
ld a, e
ld [EnemyScreens], a
call Functione2183
call Functione2128
xor a
ld [wcf64], a
ld hl, wJumptableIndex
inc [hl]
ret
; e1f8b
Functione1f8b: ; e1f8b
ld a, [wcf64]
and a
ret z
dec a
ld hl, EnemyScreens
cp [hl]
ret z
ld e, a
ld d, $0
ld hl, wc6d0
add hl, de
ld a, [hl]
cp $ff
ret z
ld [wc6fd], a
ld [PlayerScreens], a
ld a, e
ld [wc701], a
call Functione2183
call Functione2128
ld a, $40
ld [wc708], a
ld hl, wJumptableIndex
inc [hl]
Functione1fba: ; e1fba
ld hl, wc708
ld a, [hl]
and a
jr z, .asm_e1fc3
dec [hl]
ret
.asm_e1fc3
call Functione2010
ld a, $3
ld [wJumptableIndex], a
ret
; e1fcc
Functione1fcc: ; e1fcc
ld a, [hJoypadPressed]
and A_BUTTON
ret z
xor a
ld [wc708], a
.asm_e1fd5
ld hl, wc708
ld a, [hl]
cp $2d
jr nc, .asm_e1ff9
inc [hl]
push af
call Functione2183
pop af
push hl
ld e, a
ld d, $0
ld hl, wc6d0
add hl, de
ld a, [hl]
pop hl
cp $ff
jr z, .asm_e1fd5
ld [wc6fd], a
call Functione2128
jr .asm_e1fd5
.asm_e1ff9
call WaitPressAorB_BlinkCursor
ld hl, wJumptableIndex
inc [hl]
Functione2000: ; e2000
call Functione00ed
jr nc, .asm_e200b
ld hl, wJumptableIndex
set 7, [hl]
ret
.asm_e200b
xor a
ld [wJumptableIndex], a
ret
; e2010
Functione2010: ; e2010
ld hl, wPlayerMinimized
ld a, [hli]
cp [hl]
jr nz, .asm_e2066
ld a, [EnemyScreens]
call Functione2183
call Functione2142
ld a, [wc701]
call Functione2183
call Functione2142
ld a, [EnemyScreens]
ld e, a
ld d, $0
ld hl, wc6d0
add hl, de
ld [hl], $ff
ld a, [wc701]
ld e, a
ld d, $0
ld hl, wc6d0
add hl, de
ld [hl], $ff
ld hl, wc703
.asm_e2044
ld a, [hli]
and a
jr nz, .asm_e2044
dec hl
ld a, [wPlayerMinimized]
ld [hl], a
ld [wc6fd], a
ld hl, wc709
ld e, [hl]
rept 2
inc [hl]
endr
ld d, $0
hlcoord 5, 0
add hl, de
call Functione2128
ld hl, UnknownText_0xe2083
call PrintText
ret
.asm_e2066
xor a
ld [wc6fd], a
ld a, [EnemyScreens]
call Functione2183
call Functione2128
ld a, [wc701]
call Functione2183
call Functione2128
ld hl, UnknownText_0xe2098
call PrintText
ret
; e2083
UnknownText_0xe2083: ; 0xe2083
start_asm
; 0xe2084
Functione2084: ; e2084
push bc
hlcoord 2, 13
call Functione2128
ld hl, UnknownText_0xe2093
pop bc
rept 3
inc bc
endr
ret
; e2093
UnknownText_0xe2093: ; 0xe2093
; , yeah!
text_jump UnknownText_0x1c1a5b
db "@"
; 0xe2098
UnknownText_0xe2098: ; 0xe2098
; Darn…
text_jump UnknownText_0x1c1a65
db "@"
; 0xe209d
Functione209d: ; e209d
ld hl, wc6d0
ld bc, $2d
xor a
call ByteFill
call Functione2101
ld c, $2
ld b, [hl]
call Functione20e5
ld c, $8
ld b, [hl]
call Functione20e5
ld c, $4
ld b, [hl]
call Functione20e5
ld c, $7
ld b, [hl]
call Functione20e5
ld c, $3
ld b, [hl]
call Functione20e5
ld c, $6
ld b, [hl]
call Functione20e5
ld c, $1
ld b, [hl]
call Functione20e5
ld c, $5
ld hl, wc6d0
ld b, $2d
.asm_e20db
ld a, [hl]
and a
jr nz, .asm_e20e0
ld [hl], c
.asm_e20e0
inc hl
dec b
jr nz, .asm_e20db
ret
; e20e5
Functione20e5: ; e20e5
push hl
ld de, wc6d0
.asm_e20e9
call Random
and $3f
cp $2d
jr nc, .asm_e20e9
ld l, a
ld h, $0
add hl, de
ld a, [hl]
and a
jr nz, .asm_e20e9
ld [hl], c
dec b
jr nz, .asm_e20e9
pop hl
inc hl
ret
; e2101
Functione2101: ; e2101
ld a, [MenuSelection2]
dec a
ld l, a
ld h, 0
rept 3
add hl, hl
endr
ld de, Unknown_e2110
add hl, de
ret
; e2110
Unknown_e2110: ; e2110
db $02, $03, $06, $06, $06, $08, $08, $06
db $02, $02, $04, $06, $06, $08, $08, $09
db $02, $02, $02, $04, $07, $08, $08, $0c
; e2128
Functione2128: ; e2128
ld a, [wc6fd]
sla a
sla a
add $4
ld [hli], a
inc a
ld [hld], a
inc a
ld bc, SCREEN_WIDTH
add hl, bc
ld [hli], a
inc a
ld [hl], a
ld c, 3
call DelayFrames
ret
; e2142
Functione2142: ; e2142
ld a, $1
ld [hli], a
ld [hld], a
ld bc, SCREEN_WIDTH
add hl, bc
ld [hli], a
ld [hl], a
ld c, 3
call DelayFrames
ret
; e2152
Functione2152: ; e2152
hlcoord 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, $1
call ByteFill
hlcoord 0, 0
ld de, String_e2177
call PlaceString
hlcoord 15, 0
ld de, String_e217d
call PlaceString
ld hl, UnknownText_0xe2176
call PrintText
ret
; e2176
UnknownText_0xe2176: ; 0xe2176
db "@"
; 0xe2177
String_e2177: db "とったもの@"
String_e217d: db "あと かい@"
; e2183
Functione2183: ; e2183
ld d, $0
.asm_e2185
sub $9
jr c, .asm_e218c
inc d
jr .asm_e2185
.asm_e218c
add $9
ld e, a
hlcoord 1, 2
ld bc, $28
.asm_e2195
ld a, d
and a
jr z, .asm_e219d
add hl, bc
dec d
jr .asm_e2195
.asm_e219d
sla e
add hl, de
ret
; e21a1
Functione21a1: ; e21a1 (38:61a1)
ld a, [wJumptableIndex]
cp $7
jr nc, .quit
call JoyTextDelay
ld hl, hJoypadPressed ; $ffa3
ld a, [hl]
and A_BUTTON
jr nz, .pressed_a
ld a, [hl]
and D_LEFT
jr nz, .pressed_left
ld a, [hl]
and D_RIGHT
jr nz, .pressed_right
ld a, [hl]
and D_UP
jr nz, .pressed_up
ld a, [hl]
and D_DOWN
jr nz, .pressed_down
ret
.quit
ld hl, 0
add hl, bc
ld [hl], $0
ret
.pressed_a
ld hl, $c
add hl, bc
ld a, [hl]
inc a
ld [wcf64], a
ret
.pressed_left
ld hl, $6
add hl, bc
ld a, [hl]
and a
ret z
sub $10
ld [hl], a
ld hl, $c
add hl, bc
dec [hl]
ret
.pressed_right
ld hl, $6
add hl, bc
ld a, [hl]
cp $80
ret z
add $10
ld [hl], a
ld hl, $c
add hl, bc
inc [hl]
ret
.pressed_up
ld hl, $7
add hl, bc
ld a, [hl]
and a
ret z
sub $10
ld [hl], a
ld hl, $c
add hl, bc
ld a, [hl]
sub $9
ld [hl], a
ret
.pressed_down
ld hl, $7
add hl, bc
ld a, [hl]
cp $40
ret z
add $10
ld [hl], a
ld hl, $c
add hl, bc
ld a, [hl]
add $9
ld [hl], a
ret
; e2221 (38:6221)
LZ_e2221: ; e2221
INCBIN "gfx/unknown/0e2221.2bpp.lz"

View File

@ -138,7 +138,7 @@ EnterMap: ; 9673e
call ClearAllScriptFlags3
ld a, [hMapEntryMethod]
cp MAPSETUP_07
cp MAPSETUP_CONNECTION
jr nz, .dontset
call SetAll_ScriptFlags3
.dontset
@ -322,9 +322,9 @@ PlayerEvents: ; 9681f
ld [ScriptRunning], a
call DoPlayerEvent
ld a, [ScriptRunning]
cp PLAYEREVENT_4
cp PLAYEREVENT_CONNECTION
jr z, .ok2
cp PLAYEREVENT_9
cp PLAYEREVENT_JOYCHANGEFACING
jr z, .ok2
xor a
@ -1050,8 +1050,10 @@ DoPlayerEvent: ; 96beb
ld a, [ScriptRunning]
and a
ret z
cp PLAYEREVENT_MAPSCRIPT ; run script
ret z
cp NUM_PLAYER_EVENTS
ret nc
@ -1071,24 +1073,24 @@ endr
; 96c0c
PlayerEventScriptPointers: ; 96c0c
dba Invalid_0x96c2d ; 0
dba SeenByTrainerScript ; 1
dba TalkToTrainerScript ; 2
dba FindItemInBallScript ; 3
dba UnknownScript_0x96c4d ; 4
dba WarpToNewMapScript ; 5
dba FallIntoMapScript ; 6
dba Script_OverworldWhiteout ; 7
dba HatchEggScript ; 8
dba UnknownScript_0x96c4f ; 9
dba Invalid_0x96c2d ; 10
dba Invalid_0x96c2d ; 0
dba SeenByTrainerScript ; 1
dba TalkToTrainerScript ; 2
dba FindItemInBallScript ; 3
dba UnknownScript_0x96c4d ; 4
dba WarpToNewMapScript ; 5
dba FallIntoMapScript ; 6
dba Script_OverworldWhiteout ; 7
dba HatchEggScript ; 8
dba UnknownScript_0x96c4f ; 9
dba Invalid_0x96c2d ; 10
; 96c2d
Invalid_0x96c2d: ; 96c2d
end
; 96c2e
UnknownScript_0x96c2e: ; 96c2e
; unreferenced
end
; 96c2f
@ -1099,12 +1101,12 @@ HatchEggScript: ; 96c2f
WarpToNewMapScript: ; 96c34
warpsound
newloadmap MAPSETUP_05
newloadmap MAPSETUP_DOOR
end
; 96c38
FallIntoMapScript: ; 96c38
newloadmap MAPSETUP_06
newloadmap MAPSETUP_FALL
playsound SFX_KINESIS
applymovement PLAYER, MovementData_0x96c48
playsound SFX_STRENGTH
@ -1123,7 +1125,7 @@ LandAfterPitfallScript: ; 96c4a
; 96c4d
UnknownScript_0x96c4d: ; 4
reloadandreturn MAPSETUP_07
reloadandreturn MAPSETUP_CONNECTION
; 96c4f
UnknownScript_0x96c4f: ; 9

863
engine/events_3.asm Executable file
View File

@ -0,0 +1,863 @@
ReturnFromMapSetupScript:: ; b8000
xor a
ld [hBGMapMode], a
; For some reson, GameFreak chose to use a callba here instead of just falling through.
; No other function in the game references the function at 2E:400A, here labeled
; ReturnFromMapSetupScript.inefficientcallba.
callba .inefficientcallba ; this is a waste of 6 ROM bytes and 2 stack bytes
ret
; b800a
.inefficientcallba: ; b800a
ld a, [MapGroup]
ld b, a
ld a, [MapNumber]
ld c, a
call GetWorldMapLocation
ld [wCurrentLandmark], a
call .CheckNationalParkGate
jr z, .nationalparkgate
call GetMapPermission
cp GATE
jr nz, .not_gate
.nationalparkgate
ld a, -1
ld [wCurrentLandmark], a
.not_gate
ld hl, wEnteredMapFromContinue
bit 1, [hl]
res 1, [hl]
jr nz, .dont_do_map_sign
call .CheckMovingWithinLandmark
jr z, .dont_do_map_sign
ld a, [wCurrentLandmark]
ld [wPreviousLandmark], a
call .CheckSpecialMap
jr z, .dont_do_map_sign
; Display for 60 frames
ld a, 60
ld [wLandmarkSignTimer], a
call LoadMapNameSignGFX
call InitMapNameFrame
callba Function104303
ret
.dont_do_map_sign
ld a, [wCurrentLandmark]
ld [wPreviousLandmark], a
ld a, $90
ld [rWY], a
ld [hWY], a
xor a
ld [hLCDStatCustom], a
ret
; b8064
.CheckMovingWithinLandmark: ; b8064
ld a, [wCurrentLandmark]
ld c, a
ld a, [wPreviousLandmark]
cp c
ret z
cp $0
ret
; b8070
.CheckSpecialMap: ; b8070
cp -1
ret z
cp SPECIAL_MAP
ret z
cp RADIO_TOWER
ret z
cp LAV_RADIO_TOWER
ret z
cp UNDERGROUND
ret z
cp INDIGO_PLATEAU
ret z
cp POWER_PLANT
ret z
ld a, $1
and a
ret
; b8089
.CheckNationalParkGate: ; b8089
ld a, [MapGroup]
cp GROUP_ROUTE_35_NATIONAL_PARK_GATE
ret nz
ld a, [MapNumber]
cp MAP_ROUTE_35_NATIONAL_PARK_GATE
ret z
cp MAP_ROUTE_36_NATIONAL_PARK_GATE
ret
; b8098
PlaceMapNameSign:: ; b8098 (2e:4098)
ld hl, wLandmarkSignTimer
ld a, [hl]
and a
jr z, .disappear
dec [hl]
cp 60
ret z
cp 59
jr nz, .skip2
call InitMapNameFrame
call PlaceMapNameCenterAlign
callba Function104303
.skip2
ld a, $80
ld a, $70
ld [rWY], a
ld [hWY], a
ret
.disappear
ld a, $90
ld [rWY], a
ld [hWY], a
xor a
ld [hLCDStatCustom], a
ret
LoadMapNameSignGFX: ; b80c6
ld de, MapEntryFrameGFX
ld hl, VTiles2 tile $60
lb bc, BANK(MapEntryFrameGFX), $e
call Get2bpp
ret
; b80d3
InitMapNameFrame: ; b80d3
hlcoord 0, 0
ld b, 2
ld c, 18
call InitMapSignAttrMap
call PlaceMapNameFrame
ret
; b80e1
PlaceMapNameCenterAlign: ; b80e1 (2e:40e1)
ld a, [wCurrentLandmark]
ld e, a
callba GetLandmarkName
call .GetNameLength
ld a, SCREEN_WIDTH
sub c
srl a
ld b, $0
ld c, a
hlcoord 0, 2
add hl, bc
ld de, StringBuffer1
call PlaceString
ret
.GetNameLength: ; b8101 (2e:4101)
ld c, 0
push hl
ld hl, StringBuffer1
.loop
ld a, [hli]
cp "@"
jr z, .stop
cp "%"
jr z, .loop
inc c
jr .loop
.stop
pop hl
ret
InitMapSignAttrMap: ; b8115
ld de, AttrMap - TileMap
add hl, de
rept 2
inc b
endr
rept 2
inc c
endr
ld a, $87
.loop
push bc
push hl
.inner_loop
ld [hli], a
dec c
jr nz, .inner_loop
pop hl
ld de, SCREEN_WIDTH
add hl, de
pop bc
dec b
jr nz, .loop
ret
; b812f
PlaceMapNameFrame: ; b812f
hlcoord 0, 0
; top left
ld a, $61
ld [hli], a
; top row
ld a, $62
call .FillTopBottom
; top right
ld a, $64
ld [hli], a
; left, first line
ld a, $65
ld [hli], a
; first line
call .FillMiddle
; right, first line
ld a, $6b
ld [hli], a
; left, second line
ld a, $66
ld [hli], a
; second line
call .FillMiddle
; right, second line
ld a, $6c
ld [hli], a
; bottom left
ld a, $67
ld [hli], a
; bottom
ld a, $68
call .FillTopBottom
; bottom right
ld a, $6a
ld [hl], a
ret
; b815b
.FillMiddle: ; b815b
ld c, 18
ld a, $6d
.loop
ld [hli], a
dec c
jr nz, .loop
ret
; b8164
.FillTopBottom: ; b8164
ld c, 5
jr .enterloop
.continueloop
rept 2
ld [hli], a
endr
.enterloop
inc a
rept 2
ld [hli], a
endr
dec a
dec c
jr nz, .continueloop
ret
; b8172
CheckForSignpostItems: ; b8172
; Checks to see if there are hidden items on the screen that have not yet been found. If it finds one, returns carry.
call GetMapScriptHeaderBank
ld [Buffer1], a
; Get the coordinate of the bottom right corner of the screen, and load it in wd1ec/wd1ed.
ld a, [XCoord]
add SCREEN_WIDTH / 4
ld [wd1ed], a
ld a, [YCoord]
add SCREEN_HEIGHT / 4
ld [wd1ec], a
; Get the pointer for the first signpost header in the map...
ld hl, wdc02
ld a, [hli]
ld h, [hl]
ld l, a
; ... before even checking to see if there are any signposts on this map.
ld a, [wCurrentMapSignpostCount]
and a
jr z, .nosignpostitems
; For i = 1:wCurrentMapSignpostCount...
.loop
; Store the counter in Buffer2, and store the signpost header pointer in the stack.
ld [Buffer2], a
push hl
; Get the Y coordinate of the signpost.
call .GetFarByte
ld e, a
; Is the Y coordinate of the signpost on the screen? If not, go to the next signpost.
ld a, [wd1ec]
sub e
jr c, .next
cp SCREEN_HEIGHT / 2
jr nc, .next
; Is the X coordinate of the signpost on the screen? If not, go to the next signpost.
call .GetFarByte
ld d, a
ld a, [wd1ed]
sub d
jr c, .next
cp SCREEN_WIDTH / 2
jr nc, .next
; Is this signpost a hidden item? If not, go to the next signpost.
call .GetFarByte
cp SIGNPOST_ITEM
jr nz, .next
; Has this item already been found? If not, set off the Itemfinder.
ld a, [Buffer1]
call GetFarHalfword
ld a, [Buffer1]
call GetFarHalfword
ld d, h
ld e, l
ld b, CHECK_FLAG
call EventFlagAction
ld a, c
and a
jr z, .itemnearby
.next
; Restore the signpost header pointer and increment it by the length of a signpost header.
pop hl
ld bc, 5
add hl, bc
; Restore the signpost counter and decrement it. If it hits zero, there are no hidden items in range.
ld a, [Buffer2]
dec a
jr nz, .loop
.nosignpostitems
xor a
ret
.itemnearby
pop hl
scf
ret
; b81e2
.GetFarByte: ; b81e2
ld a, [Buffer1]
call GetFarByte
inc hl
ret
; b81ea
TreeMonEncounter: ; b81ea
callba MobileFn_1060ef
xor a
ld [TempWildMonSpecies], a
ld [CurPartyLevel], a
ld hl, TreeMonMaps
call GetTreeMonSet
jr nc, .no_battle
call GetTreeMons
jr nc, .no_battle
call GetTreeMon
jr nc, .no_battle
ld a, BATTLETYPE_TREE
ld [BattleType], a
ld a, 1
ld [ScriptVar], a
ret
.no_battle
xor a
ld [ScriptVar], a
ret
; b8219
RockMonEncounter: ; b8219
xor a
ld [TempWildMonSpecies], a
ld [CurPartyLevel], a
ld hl, RockMonMaps
call GetTreeMonSet
jr nc, .no_battle
call GetTreeMons
jr nc, .no_battle
ld a, 10
call RandomRange
cp 4
jr nc, .no_battle
call SelectTreeMon
jr nc, .no_battle
ret
.no_battle
xor a
ret
; b823e
db $05 ; ????
GetTreeMonSet: ; b823f
; Return carry and treemon set in a
; if the current map is in table hl.
ld a, [MapNumber]
ld e, a
ld a, [MapGroup]
ld d, a
.loop
ld a, [hli]
cp -1
jr z, .not_in_table
cp d
jr nz, .skip2
ld a, [hli]
cp e
jr nz, .skip1
jr .in_table
.skip2
inc hl
.skip1
inc hl
jr .loop
.not_in_table
xor a
ret
.in_table
ld a, [hl]
scf
ret
; b825e
TreeMonMaps: ; b825e
treemon_map: macro
map \1
db \2 ; treemon set
endm
treemon_map ROUTE_26, 4
treemon_map ROUTE_27, 4
treemon_map ROUTE_28, 0
treemon_map ROUTE_29, 3
treemon_map ROUTE_30, 3
treemon_map ROUTE_31, 3
treemon_map ROUTE_32, 4
treemon_map ROUTE_33, 2
treemon_map ROUTE_34, 3
treemon_map ROUTE_35, 3
treemon_map ROUTE_36, 3
treemon_map ROUTE_37, 3
treemon_map ROUTE_38, 3
treemon_map ROUTE_39, 3
treemon_map ROUTE_40, 0
treemon_map ROUTE_41, 0
treemon_map ROUTE_42, 2
treemon_map ROUTE_43, 5
treemon_map ROUTE_44, 1
treemon_map ROUTE_45, 1
treemon_map ROUTE_46, 1
treemon_map NEW_BARK_TOWN, 0
treemon_map CHERRYGROVE_CITY, 0
treemon_map VIOLET_CITY, 0
treemon_map AZALEA_TOWN, 2
treemon_map CIANWOOD_CITY, 0
treemon_map GOLDENROD_CITY, 0
treemon_map OLIVINE_CITY, 0
treemon_map ECRUTEAK_CITY, 0
treemon_map MAHOGANY_TOWN, 0
treemon_map LAKE_OF_RAGE, 5
treemon_map BLACKTHORN_CITY, 0
treemon_map SILVER_CAVE_OUTSIDE, 0
treemon_map ILEX_FOREST, 6
db -1
; b82c5
RockMonMaps: ; b82c5
treemon_map CIANWOOD_CITY, 7
treemon_map ROUTE_40, 7
treemon_map DARK_CAVE_VIOLET_ENTRANCE, 7
treemon_map SLOWPOKE_WELL_B1F, 7
db -1
; b82d2
GetTreeMons: ; b82d2
; Return the address of TreeMon table a in hl.
; Return nc if table a doesn't exist.
cp 8
jr nc, .quit
and a
jr z, .quit
ld e, a
ld d, 0
ld hl, TreeMons
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
scf
ret
.quit
xor a
ret
; b82e8
TreeMons: ; b82e8
dw TreeMons1
dw TreeMons1
dw TreeMons2
dw TreeMons3
dw TreeMons4
dw TreeMons5
dw TreeMons6
dw RockMons
dw TreeMons1
; Two tables each (normal, rare).
; Structure:
; db %, species, level
TreeMons1: ; b82fa
db 50, SPEAROW, 10
db 15, SPEAROW, 10
db 15, SPEAROW, 10
db 10, AIPOM, 10
db 5, AIPOM, 10
db 5, AIPOM, 10
db -1
db 50, SPEAROW, 10
db 15, HERACROSS, 10
db 15, HERACROSS, 10
db 10, AIPOM, 10
db 5, AIPOM, 10
db 5, AIPOM, 10
db -1
TreeMons2: ; b8320
db 50, SPEAROW, 10
db 15, EKANS, 10
db 15, SPEAROW, 10
db 10, AIPOM, 10
db 5, AIPOM, 10
db 5, AIPOM, 10
db -1
db 50, SPEAROW, 10
db 15, HERACROSS, 10
db 15, HERACROSS, 10
db 10, AIPOM, 10
db 5, AIPOM, 10
db 5, AIPOM, 10
db -1
TreeMons3: ; b8346
db 50, HOOTHOOT, 10
db 15, SPINARAK, 10
db 15, LEDYBA, 10
db 10, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db -1
db 50, HOOTHOOT, 10
db 15, PINECO, 10
db 15, PINECO, 10
db 10, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db -1
TreeMons4: ; b836c
db 50, HOOTHOOT, 10
db 15, EKANS, 10
db 15, HOOTHOOT, 10
db 10, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db -1
db 50, HOOTHOOT, 10
db 15, PINECO, 10
db 15, PINECO, 10
db 10, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db -1
TreeMons5: ; b8392
db 50, HOOTHOOT, 10
db 15, VENONAT, 10
db 15, HOOTHOOT, 10
db 10, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db -1
db 50, HOOTHOOT, 10
db 15, PINECO, 10
db 15, PINECO, 10
db 10, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db -1
TreeMons6: ; b83b8
db 50, HOOTHOOT, 10
db 15, PINECO, 10
db 15, PINECO, 10
db 10, NOCTOWL, 10
db 5, BUTTERFREE, 10
db 5, BEEDRILL, 10
db -1
db 50, HOOTHOOT, 10
db 15, CATERPIE, 10
db 15, WEEDLE, 10
db 10, HOOTHOOT, 10
db 5, METAPOD, 10
db 5, KAKUNA, 10
db -1
RockMons: ; b83de
db 90, KRABBY, 15
db 10, SHUCKLE, 15
db -1
; b83e5
GetTreeMon: ; b83e5
push hl
call GetTreeScore
pop hl
and a
jr z, .bad
cp 1
jr z, .good
cp 2
jr z, .rare
ret
.bad
ld a, 10
call RandomRange
and a
jr nz, NoTreeMon
jr SelectTreeMon
.good
ld a, 10
call RandomRange
cp 5
jr nc, NoTreeMon
jr SelectTreeMon
.rare
ld a, 10
call RandomRange
cp 8
jr nc, NoTreeMon
jr .skip
.skip
ld a, [hli]
cp -1
jr nz, .skip
call SelectTreeMon
ret
; b841f
SelectTreeMon: ; b841f
; Read a TreeMons table and pick one monster at random.
ld a, 100
call RandomRange
.loop
sub [hl]
jr c, .ok
rept 3
inc hl
endr
jr .loop
.ok
ld a, [hli]
cp $ff
jr z, NoTreeMon
ld a, [hli]
ld [TempWildMonSpecies], a
ld a, [hl]
ld [CurPartyLevel], a
scf
ret
NoTreeMon: ; b843b
xor a
ld [TempWildMonSpecies], a
ld [CurPartyLevel], a
ret
; b8443
GetTreeScore: ; b8443
call .CoordScore
ld [Buffer1], a
call .OTIDScore
ld [Buffer2], a
ld c, a
ld a, [Buffer1]
sub c
jr z, .rare
jr nc, .ok
add 10
.ok
cp 5
jr c, .good
.bad
xor a
ret
.good
ld a, 1
ret
.rare
ld a, 2
ret
; b8466
.CoordScore: ; b8466
call GetFacingTileCoord
ld hl, 0
ld c, e
ld b, 0
ld a, d
and a
jr z, .next
.loop
add hl, bc
dec a
jr nz, .loop
.next
add hl, bc
ld c, d
add hl, bc
ld a, h
ld [hDividend], a
ld a, l
ld [hDividend + 1], a
ld a, 5
ld [hDivisor], a
ld b, 2
call Divide
ld a, [hQuotient + 1]
ld [hDividend], a
ld a, [hQuotient + 2]
ld [hDividend + 1], a
ld a, 10
ld [hDivisor], a
ld b, 2
call Divide
ld a, [hQuotient + 3]
ret
; b849d
.OTIDScore: ; b849d
ld a, [PlayerID]
ld [hDividend], a
ld a, [PlayerID + 1]
ld [hDividend + 1], a
ld a, 10
ld [hDivisor], a
ld b, 2
call Divide
ld a, [hQuotient + 3]
ret
; b84b3
LoadFishingGFX: ; b84b3
ld a, [rVBK]
push af
ld a, $1
ld [rVBK], a
ld de, FishingGFX
ld a, [PlayerGender]
bit 0, a
jr z, .got_gender
ld de, KrisFishingGFX
.got_gender
ld hl, VTiles0 tile $02
call .LoadGFX
ld hl, VTiles0 tile $06
call .LoadGFX
ld hl, VTiles0 tile $0a
call .LoadGFX
ld hl, VTiles1 tile $7c
call .LoadGFX
pop af
ld [rVBK], a
ret
; b84e3
.LoadGFX: ; b84e3
lb bc, BANK(FishingGFX), 2
push de
call Get2bpp
pop de
ld hl, 2 tiles
add hl, de
ld d, h
ld e, l
ret
; b84f2
FishingGFX: ; b84f2
INCBIN "gfx/overworld/chris_fish.2bpp"
; b8582
KrisFishingGFX: ; b8582
INCBIN "gfx/overworld/kris_fish.2bpp"
; b8612

View File

@ -372,7 +372,7 @@ INCBIN "gfx/evo/bubble_large.2bpp"
INCBIN "gfx/evo/bubble.2bpp"
Function4e881: ; 4e881
call WhiteBGMap
call ClearBGPalettes
call ClearTileMap
call ClearSprites
call DisableLCD
@ -405,7 +405,7 @@ UnknownText_0x4e8bd: ; 0x4e8bd
Function4e8c2: ; 4e8c2
call WhiteBGMap
call ClearBGPalettes
call ClearTileMap
call ClearSprites
call DisableLCD

916
engine/flypoints.asm Executable file
View File

@ -0,0 +1,916 @@
_FlyMap: ; 91af3
call ClearBGPalettes
call ClearTileMap
call ClearSprites
ld hl, hInMenu
ld a, [hl]
push af
ld [hl], $1
xor a
ld [hBGMapMode], a
callba Function8cf53
call Function91ff2
ld de, GFX_922e1
ld hl, VTiles2 tile $30
lb bc, BANK(GFX_922e1), 6
call Request1bpp
call FlyMap
call Function91c8f
ld b, $2
call GetSGBLayout
call SetPalettes
.loop
call JoyTextDelay
ld hl, hJoyPressed
ld a, [hl]
and B_BUTTON
jr nz, .pressedB
ld a, [hl]
and A_BUTTON
jr nz, .pressedA
call FlyMapScroll
call GetMapCursorCoordinates
callba Function8cf69
call DelayFrame
jr .loop
.pressedB
ld a, -1
jr .exit
.pressedA
ld a, [wd002]
ld l, a
ld h, 0
add hl, hl
ld de, Flypoints + 1
add hl, de
ld a, [hl]
.exit
ld [wd002], a
pop af
ld [hInMenu], a
call ClearBGPalettes
ld a, $90
ld [hWY], a
xor a
ld [hBGMapAddress], a
ld a, VBGMap0 / $100
ld [hBGMapAddress + 1], a
ld a, [wd002]
ld e, a
ret
; 91b73
FlyMapScroll: ; 91b73
ld a, [StartFlypoint]
ld e, a
ld a, [EndFlypoint]
ld d, a
ld hl, hJoyLast
ld a, [hl]
and D_UP
jr nz, .ScrollNext
ld a, [hl]
and D_DOWN
jr nz, .ScrollPrev
ret
.ScrollNext
ld hl, wd002
ld a, [hl]
cp d
jr nz, .NotAtEndYet
ld a, e
dec a
ld [hl], a
.NotAtEndYet
inc [hl]
call CheckIfVisitedFlypoint
jr z, .ScrollNext
jr .Finally
.ScrollPrev
ld hl, wd002
ld a, [hl]
cp e
jr nz, .NotAtStartYet
ld a, d
inc a
ld [hl], a
.NotAtStartYet
dec [hl]
call CheckIfVisitedFlypoint
jr z, .ScrollPrev
.Finally
call TownMapBubble
call WaitBGMap
xor a
ld [hBGMapMode], a
ret
; 91bb5
TownMapBubble: ; 91bb5
; Draw the bubble containing the location text in the town map HUD
; Top-left corner
hlcoord 1, 0
ld a, $30
ld [hli], a
; Top row
ld bc, 16
ld a, " "
call ByteFill
; Top-right corner
ld a, $31
ld [hl], a
hlcoord 1, 1
; Middle row
ld bc, 18
ld a, " "
call ByteFill
; Bottom-left corner
hlcoord 1, 2
ld a, $32
ld [hli], a
; Bottom row
ld bc, 16
ld a, " "
call ByteFill
; Bottom-right corner
ld a, $33
ld [hl], a
; Print "Where?"
hlcoord 2, 0
ld de, .Where
call PlaceString
; Print the name of the default flypoint
call .Name
; Up/down arrows
hlcoord 18, 1
ld [hl], $34
ret
.Where
db "Where?@"
.Name
; We need the map location of the default flypoint
ld a, [wd002]
ld l, a
ld h, 0
add hl, hl ; two bytes per flypoint
ld de, Flypoints
add hl, de
ld e, [hl]
callba GetLandmarkName
hlcoord 2, 1
ld de, StringBuffer1
call PlaceString
ret
; 91c17
GetMapCursorCoordinates: ; 91c17
ld a, [wd002]
ld l, a
ld h, $0
add hl, hl
ld de, Flypoints
add hl, de
ld e, [hl]
callba GetLandmarkCoords
ld a, [wd003]
ld c, a
ld a, [wd004]
ld b, a
ld hl, $4
add hl, bc
ld [hl], e
ld hl, $5
add hl, bc
ld [hl], d
ret
; 91c3c
CheckIfVisitedFlypoint: ; 91c3c
; Check if the flypoint loaded in [hl] has been visited yet.
push bc
push de
push hl
ld l, [hl]
ld h, 0
add hl, hl
ld de, Flypoints + 1
add hl, de
ld c, [hl]
call HasVisitedSpawn
pop hl
pop de
pop bc
and a
ret
; 91c50
HasVisitedSpawn: ; 91c50
; Check if spawn point c has been visited.
ld hl, VisitedSpawns
ld b, CHECK_FLAG
ld d, 0
predef FlagPredef
ld a, c
ret
; 91c5e
Flypoints: ; 91c5e
; landmark, spawn point
const_def
flypoint: MACRO
; \1\@FLY EQUS "FLY_\1"
; \1\@SPAWN EQUS "SPAWN_\1"
; const \1\@FLY
; db \2, \1\@SPAWN
const FLY_\1
db \2, SPAWN_\1
ENDM
; Johto
flypoint NEW_BARK, NEW_BARK_TOWN
flypoint CHERRYGROVE, CHERRYGROVE_CITY
flypoint VIOLET, VIOLET_CITY
flypoint AZALEA, AZALEA_TOWN
flypoint GOLDENROD, GOLDENROD_CITY
flypoint ECRUTEAK, ECRUTEAK_CITY
flypoint OLIVINE, OLIVINE_CITY
flypoint CIANWOOD, CIANWOOD_CITY
flypoint MAHOGANY, MAHOGANY_TOWN
flypoint LAKE, LAKE_OF_RAGE
flypoint BLACKTHORN, BLACKTHORN_CITY
flypoint MT_SILVER, SILVER_CAVE
; Kanto
KANTO_FLYPOINT EQU const_value
flypoint PALLET, PALLET_TOWN
flypoint VIRIDIAN, VIRIDIAN_CITY
flypoint PEWTER, PEWTER_CITY
flypoint CERULEAN, CERULEAN_CITY
flypoint VERMILION, VERMILION_CITY
flypoint ROCK_TUNNEL, ROCK_TUNNEL
flypoint LAVENDER, LAVENDER_TOWN
flypoint CELADON, CELADON_CITY
flypoint SAFFRON, SAFFRON_CITY
flypoint FUCHSIA, FUCHSIA_CITY
flypoint CINNABAR, CINNABAR_ISLAND
flypoint INDIGO, INDIGO_PLATEAU
db -1
; 91c8f
Function91c8f: ; 91c8f
ret
; 91c90
FlyMap: ; 91c90
ld a, [MapGroup]
ld b, a
ld a, [MapNumber]
ld c, a
call GetWorldMapLocation
; If we're not in a valid location, i.e. Pokecenter floor 2F,
; the backup map information is used
cp SPECIAL_MAP
jr nz, .CheckRegion
ld a, [BackupMapGroup]
ld b, a
ld a, [BackupMapNumber]
ld c, a
call GetWorldMapLocation
.CheckRegion
; The first 46 locations are part of Johto. The rest are in Kanto
cp KANTO_LANDMARK
jr nc, .KantoFlyMap
.JohtoFlyMap
; Note that .NoKanto should be modified in tandem with this branch
push af
; Start from New Bark Town
ld a, FLY_NEW_BARK
ld [wd002], a
; Flypoints begin at New Bark Town...
ld [StartFlypoint], a
; ..and end at Silver Cave
ld a, FLY_MT_SILVER
ld [EndFlypoint], a
; Fill out the map
call FillJohtoMap
call .MapHud
pop af
call TownMapPlayerIcon
ret
.KantoFlyMap
; The event that there are no flypoints enabled in a map is not
; accounted for. As a result, if you attempt to select a flypoint
; when there are none enabled, the game will crash. Additionally,
; the flypoint selection has a default starting point that
; can be flown to even if none are enabled
; To prevent both of these things from happening when the player
; enters Kanto, fly access is restricted until Indigo Plateau is
; visited and its flypoint enabled
push af
ld c, SPAWN_INDIGO
call HasVisitedSpawn
and a
jr z, .NoKanto
; Kanto's map is only loaded if we've visited Indigo Plateau
; Flypoints begin at Pallet Town...
ld a, FLY_PALLET
ld [StartFlypoint], a
; ...and end at Indigo Plateau
ld a, FLY_INDIGO
ld [EndFlypoint], a
; Because Indigo Plateau is the first flypoint the player
; visits, it's made the default flypoint
ld [wd002], a
; Fill out the map
call FillKantoMap
call .MapHud
pop af
call TownMapPlayerIcon
ret
.NoKanto
; If Indigo Plateau hasn't been visited, we use Johto's map instead
; Start from New Bark Town
ld a, FLY_NEW_BARK
ld [wd002], a
; Flypoints begin at New Bark Town...
ld [StartFlypoint], a
; ..and end at Silver Cave
ld a, FLY_MT_SILVER
ld [EndFlypoint], a
call FillJohtoMap
pop af
.MapHud
call TownMapBubble
call TownMapPals
ld hl, VBGMap0 ; BG Map 0
call TownMapBGUpdate
call TownMapMon
ld a, c
ld [wd003], a
ld a, b
ld [wd004], a
ret
; 91d11
Function91d11: ; 91d11
ld a, [wd002]
push af
ld a, [wd003]
push af
ld a, e
ld [wd002], a
call ClearSprites
xor a
ld [hBGMapMode], a
ld a, $1
ld [hInMenu], a
ld de, GFX_922d1
ld hl, VTiles0 tile $7f
lb bc, BANK(GFX_922d1), 1
call Request2bpp ; actually 1bpp
call Function91ed0
ld hl, VTiles0 tile $78
ld c, $4
call Request2bpp
call Function91ff2
call FillKantoMap
call Function91de9
call TownMapPals
ld hl, VBGMap1
call TownMapBGUpdate
call FillJohtoMap
call Function91de9
call TownMapPals
ld hl, VBGMap0
call TownMapBGUpdate
ld b, $2
call GetSGBLayout
call SetPalettes
xor a
ld [hBGMapMode], a
xor a
call Function91e1e
.asm_91d6e
call JoyTextDelay
ld hl, hJoyPressed
ld a, [hl]
and A_BUTTON | B_BUTTON
jr nz, .asm_91d8f
ld a, [hJoypadDown]
and SELECT
jr nz, .asm_91d87
call Function91d9b
call Function91dcd
jr .asm_91d8a
.asm_91d87
call Function91e5a
.asm_91d8a
call DelayFrame
jr .asm_91d6e
.asm_91d8f
call ClearSprites
pop af
ld [wd003], a
pop af
ld [wd002], a
ret
; 91d9b
Function91d9b: ; 91d9b
ld a, [hl]
and $20
jr nz, .asm_91da6
ld a, [hl]
and $10
jr nz, .asm_91db7
ret
.asm_91da6
ld a, [hWY]
cp $90
ret z
call ClearSprites
ld a, $90
ld [hWY], a
xor a
call Function91e1e
ret
.asm_91db7
ld a, [StatusFlags]
bit 6, a
ret z
ld a, [hWY]
and a
ret z
call ClearSprites
xor a
ld [hWY], a
ld a, $1
call Function91e1e
ret
; 91dcd
Function91dcd: ; 91dcd
ld a, [hVBlankCounter]
ld e, a
and $f
ret nz
ld a, e
and $10
jr nz, .asm_91ddc
call ClearSprites
ret
.asm_91ddc
hlcoord 0, 0
ld de, Sprites
ld bc, $a0
call CopyBytes
ret
; 91de9
Function91de9: ; 91de9
hlcoord 0, 0
ld bc, SCREEN_WIDTH
ld a, $7f
call ByteFill
hlcoord 0, 1
ld a, $6
ld [hli], a
ld bc, SCREEN_HEIGHT
ld a, $7
call ByteFill
ld [hl], $17
call GetPokemonName
hlcoord 2, 0
call PlaceString
ld h, b
ld l, c
ld de, String_91e16
call PlaceString
ret
; 91e16
String_91e16:
db "'S NEST@"
; 91e1e
Function91e1e: ; 91e1e
ld [wd003], a
ld e, a
callba Function2a01f
decoord 0, 0
ld hl, Sprites
.asm_91e2e
ld a, [de]
and a
jr z, .asm_91e4d
push de
ld e, a
push hl
callba GetLandmarkCoords
pop hl
ld a, d
sub $4
ld [hli], a
ld a, e
sub $4
ld [hli], a
ld a, $7f
ld [hli], a
xor a
ld [hli], a
pop de
inc de
jr .asm_91e2e
.asm_91e4d
ld hl, Sprites
decoord 0, 0
ld bc, $a0
call CopyBytes
ret
; 91e5a
Function91e5a: ; 91e5a
call Function91ea9
ret c
ld a, [wd002]
ld e, a
callba GetLandmarkCoords
ld c, e
ld b, d
ld de, Unknown_91e9c
ld hl, Sprites
.asm_91e70
ld a, [de]
cp $80
jr z, .asm_91e91
add b
ld [hli], a
inc de
ld a, [de]
add c
ld [hli], a
inc de
ld a, [de]
add $78
ld [hli], a
inc de
push bc
ld c, 0
ld a, [PlayerGender]
bit 0, a
jr z, .asm_91e8c
inc c
.asm_91e8c
ld a, c
ld [hli], a
pop bc
jr .asm_91e70
.asm_91e91
ld hl, Sprites + $10
ld bc, SpritesEnd - (Sprites + $10)
xor a
call ByteFill
ret
; 91e9c
Unknown_91e9c: ; 91e9c
db -8, -8, 0
db -8, 0, 1
db 0, -8, 2
db 0, 0, 3
db $80 ; terminator
; 91ea9
Function91ea9: ; 91ea9
ld a, [wd002]
cp FAST_SHIP
jr z, .johto
cp KANTO_LANDMARK
jr c, .johto
.kanto
ld a, [wd003]
and a
jr z, .clear
jr .ok
.johto
ld a, [wd003]
and a
jr nz, .clear
.ok
and a
ret
.clear
ld hl, Sprites
ld bc, SpritesEnd - Sprites
xor a
call ByteFill
scf
ret
; 91ed0
Function91ed0: ; 91ed0
ld a, [wd002]
cp FAST_SHIP
jr z, .asm_91ede
callba GetPlayerIcon
ret
.asm_91ede
ld de, FastShipGFX
ld b, BANK(FastShipGFX)
ret
; 91ee4
TownMapBGUpdate: ; 91ee4
; Update BG Map tiles and attributes
; BG Map address
ld a, l
ld [hBGMapAddress], a
ld a, h
ld [hBGMapAddress + 1], a
; Only update palettes on CGB
ld a, [hCGB]
and a
jr z, .tiles
; BG Map mode 2 (palettes)
ld a, 2
ld [hBGMapMode], a
; The BG Map is updated in thirds, so we wait
; 3 frames to update the whole screen's palettes.
ld c, 3
call DelayFrames
.tiles
; Update BG Map tiles
call WaitBGMap
; Turn off BG Map update
xor a
ld [hBGMapMode], a
ret
; 91eff
FillJohtoMap: ; 91eff
ld de, JohtoMap
jr FillTownMap
FillKantoMap: ; 91f04
ld de, KantoMap
FillTownMap: ; 91f07
hlcoord 0, 0
.loop
ld a, [de]
cp $ff
ret z
ld a, [de]
ld [hli], a
inc de
jr .loop
; 91f13
TownMapPals: ; 91f13
; Assign palettes based on tile ids
hlcoord 0, 0
decoord 0, 0, AttrMap
ld bc, 360
.loop
; Current tile
ld a, [hli]
push hl
; HP/borders use palette 0
cp $60
jr nc, .pal0
; The palette data is condensed to nybbles,
; least-significant first.
ld hl, TownMapPalMap
srl a
jr c, .odd
; Even-numbered tile ids take the bottom nybble...
add l
ld l, a
ld a, h
adc 0
ld h, a
ld a, [hl]
and %111
jr .update
.odd
; ...and odd ids take the top.
add l
ld l, a
ld a, h
adc 0
ld h, a
ld a, [hl]
swap a
and %111
jr .update
.pal0
xor a
.update
pop hl
ld [de], a
inc de
dec bc
ld a, b
or c
jr nz, .loop
ret
TownMapPalMap:
db $11, $21, $22, $00, $11, $13, $54, $54, $11, $21, $22, $00
db $11, $10, $01, $00, $11, $21, $22, $00, $00, $00, $00, $00
db $00, $00, $44, $04, $00, $00, $00, $00, $33, $33, $33, $33
db $33, $33, $33, $03, $33, $33, $33, $33, $00, $00, $00, $00
; 91f7b
TownMapMon: ; 91f7b
; Draw the FlyMon icon at town map location in
; Get FlyMon species
ld a, [CurPartyMon]
ld hl, PartySpecies
ld e, a
ld d, $0
add hl, de
ld a, [hl]
ld [wd265], a
; Get FlyMon icon
ld e, 8 ; starting tile in VRAM
callba GetSpeciesIcon
; Animation/palette
ld de, 0
ld a, $0
call Function3b2a
ld hl, 3
add hl, bc
ld [hl], 8
ld hl, 2
add hl, bc
ld [hl], 0
ret
; 91fa6
TownMapPlayerIcon: ; 91fa6
; Draw the player icon at town map location in a
push af
callba GetPlayerIcon
; Standing icon
ld hl, VTiles0 tile $10
ld c, 4 ; # tiles
call Request2bpp
; Walking icon
ld hl, $c0
add hl, de
ld d, h
ld e, l
ld hl, VTiles0 tile $14
ld c, 4 ; # tiles
ld a, BANK(ChrisSpriteGFX) ; does nothing
call Request2bpp
; Animation/palette
ld de, 0
ld b, $0a ; Male
ld a, [PlayerGender]
bit 0, a
jr z, .asm_91fd3
ld b, $1e ; Female
.asm_91fd3
ld a, b
call Function3b2a
ld hl, $3
add hl, bc
ld [hl], $10
pop af
ld e, a
push bc
callba GetLandmarkCoords
pop bc
ld hl, 4
add hl, bc
ld [hl], e
ld hl, 5
add hl, bc
ld [hl], d
ret
; 0x91ff2
Function91ff2: ; 91ff2
ld hl, TownMapGFX
ld de, VTiles2
lb bc, BANK(TownMapGFX), $30
call DecompressRequest2bpp
ret
; 91fff
JohtoMap: ; 91fff
INCBIN "gfx/misc/johto.bin"
; 92168
KantoMap: ; 92168
INCBIN "gfx/misc/kanto.bin"
; 922d1
GFX_922d1: ; 922d1
INCBIN "gfx/unknown/0922d1.2bpp"
GFX_922e1: ; 922e1
INCBIN "gfx/unknown/0922e1.2bpp"
GFX_92301: ; 92301
INCBIN "gfx/unknown/092301.2bpp"

View File

@ -1,6 +1,6 @@
LinkCommunications: ; 28000
call WhiteBGMap
ld c, $50
call ClearBGPalettes
ld c, 80
call DelayFrames
call ClearScreen
call ClearSprites
@ -8,7 +8,7 @@ LinkCommunications: ; 28000
xor a
ld [hSCX], a
ld [hSCY], a
ld c, $50
ld c, 80
call DelayFrames
call ClearScreen
call UpdateSprites
@ -431,7 +431,7 @@ Function28177: ; 28177
ld de, OTName
ld bc, NAME_LENGTH
call CopyBytes
call Function222a
call ReturnToMapFromSubmenu
ld a, [wc2d7]
push af
ld a, $1
@ -509,7 +509,7 @@ UnknownText_0x283ed: ; 0x283ed
Function283f2: ; 283f2
ld a, $1
ld [$ffcc], a
ld [hFFCC], a
.asm_283f6
ld a, [hl]
ld [hSerialSend], a
@ -521,14 +521,14 @@ Function283f2: ; 283f2
.asm_28401
dec a
jr nz, .asm_28401
ld a, [$ffcc]
ld a, [hFFCC]
and a
ld a, b
pop bc
jr z, .asm_28411
dec hl
xor a
ld [$ffcc], a
ld [hFFCC], a
jr .asm_283f6
.asm_28411
@ -2172,7 +2172,7 @@ Function28fa1: ; 28fa1
Function28fdb: ; 28fdb
xor a
ld [wJumptableIndex], a
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD
@ -2495,7 +2495,7 @@ Function29220: ; 29220
; 29229
Function29229: ; 29229
call WhiteBGMap
call ClearBGPalettes
call ClearTileMap
call ClearSprites
call DisableLCD
@ -2623,7 +2623,7 @@ Function292ec: ; 292ec
Function292f6: ; 292f6
push af
call WhiteBGMap
call ClearBGPalettes
call WaitTop
ld a, VBGMap1 / $100
ld [hBGMapAddress + 1], a
@ -3902,7 +3902,7 @@ Function29dba: ; 29dba
Function29e0c: ; 29e0c
xor a
ld [$ffca], a
ld [hFFCA], a
ld a, [wcf5b]
ld h, a
ld a, [wcf5c]

View File

@ -655,7 +655,7 @@ Function467b: ; 467b
ld hl, OBJECT_12
add hl, bc
ld [hl], a
ld hl, OBJECT_27
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
rept 3
ld [hli], a
@ -848,28 +848,28 @@ RestoreDefaultMovement: ; 4769
; 4780
ClearObjectStructField27: ; 4780
ld hl, OBJECT_27
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
ld [hl], 0
ret
; 4787
IncrementObjectStructField27: ; 4787
ld hl, OBJECT_27
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
inc [hl]
ret
; 478d
DecrementObjectStructField27: ; 478d
ld hl, OBJECT_27
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
dec [hl]
ret
; 4793
JumptoObjectStructField27: ; 4793
ld hl, OBJECT_27
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
ld a, [hl]
pop hl
@ -1043,17 +1043,17 @@ Function47dd: ; 47dd
.ObeyDPad: ; 487c
ld hl, Function5000
jp Function5041
jp HandleMovementData
; 4882
.Movement08: ; 4882
ld hl, Function5015
jp Function5041
jp HandleMovementData
; 4888
.Movement09: ; 4888
ld hl, Function5026
jp Function5041
jp HandleMovementData
; 488e
.Movement0a: ; 488e
@ -1070,7 +1070,7 @@ Function47dd: ; 47dd
.Movement0d: ; 4897
ld hl, Function5000
jp Function5041
jp HandleMovementData
; 489d
.Movement0e: ; 489d
@ -1079,12 +1079,12 @@ Function47dd: ; 47dd
.Follow: ; 48a0
ld hl, Function54e6
jp Function5041
jp HandleMovementData
; 48a6
.Script: ; 48a6
ld hl, Function500e
jp Function5041
jp HandleMovementData
; 48ac
.Strength: ; 48ac
@ -1149,12 +1149,15 @@ Function47dd: ; 47dd
ld hl, OBJECT_MAP_X
add hl, bc
ld d, [hl]
ld hl, OBJECT_MAP_Y
add hl, bc
ld e, [hl]
ld hl, OBJECT_32
add hl, bc
ld a, [hl]
push bc
call GetObjectStruct
ld hl, OBJECT_DIRECTION_WALKING
@ -1162,6 +1165,7 @@ Function47dd: ; 47dd
ld a, [hl]
cp STANDING
jr z, .standing
ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld a, [hl]
@ -2400,11 +2404,14 @@ UpdateJumpPosition: ; 4fd5
; 5000
Function5000: ; unscripted?
; copy [wc3de] to [wc2df]
ld a, [wc2de]
ld hl, wc2df
ld [hl], a
ld a, $3e
; load [wc2de] with movement_step_sleep_1
ld a, movement_step_sleep_1
ld [wc2de], a
; recover the previous value of [wc2de]
ld a, [hl]
ret
; 500e
@ -2416,7 +2423,7 @@ Function500e: ; scripted
; 5015
Function5015: ; 5015
ld hl, OBJECT_27
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
ld e, [hl]
inc [hl]
@ -2431,7 +2438,7 @@ Function5015: ; 5015
; 5026
Function5026: ; 5026
ld hl, OBJECT_27
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
ld e, [hl]
inc [hl]
@ -2446,16 +2453,16 @@ Function5026: ; 5026
; 5037
Function5037: ; 5037
ld hl, Function503d
jp Function5041
ld hl, GetMovementPerson
jp HandleMovementData
; 503d
Function503d: ; 503d
GetMovementPerson: ; 503d
ld a, [wMovementPerson]
ret
; 5041
Function5041: ; 5041
HandleMovementData: ; 5041
call CopyMovementPointer
.loop
xor a
@ -2484,7 +2491,7 @@ GetMovementByte: ; 505e
jp [hl]
; 5065
Function5065: ; 5065
ContinueReadingMovement: ; 5065
ld a, 1
ld [wc2ea], a
ret
@ -2563,7 +2570,8 @@ Function54e6: ; 54e6
.done
call Function550a
ret c
ld a, $3e
ld a, movement_step_sleep_1
ret
; 550a
@ -2585,7 +2593,7 @@ Function550a: ; 550a
.nope
ld a, $ff
ld [wObjectFollow_Follower], a
ld a, $47
ld a, movement_step_end
scf
ret
; 5529
@ -2696,6 +2704,7 @@ Function5582: ; 5582
Function55ac: ; 55ac
call FindFirstEmptyObjectStruct
ret nc
ld d, h
ld e, l
callba Function8286
@ -2703,11 +2712,14 @@ Function55ac: ; 55ac
; 55b9
Function55b9: ; 55b9
; load into wc2f0:
; -1, -1, [de], [de + 1], [de + 2], [hMapObjectIndexBuffer], [MapX], [MapY], -1
ld hl, wc2f0
ld [hl], -1
inc hl
ld [hl], -1
inc hl
ld a, [de]
inc de
ld [hli], a
@ -2716,8 +2728,10 @@ Function55b9: ; 55b9
ld [hli], a
ld a, [de]
ld [hli], a
ld a, [hMapObjectIndexBuffer]
ld [hli], a
push hl
ld hl, OBJECT_MAP_X
add hl, bc
@ -2726,6 +2740,7 @@ Function55b9: ; 55b9
add hl, bc
ld e, [hl]
pop hl
ld [hl], d
inc hl
ld [hl], e
@ -2786,17 +2801,21 @@ Function561d: ; 561d
Function5629: ; 5629
cp NUM_OBJECTS
ret nc
call GetMapObject
ld hl, MAPOBJECT_OBJECT_STRUCT_ID
add hl, bc
ld a, [hl]
cp -1
ret z
cp NUM_OBJECT_STRUCTS
ret nc
call GetObjectStruct
call GetObjectSprite
ret z
call Function5673
ret
; 5645
@ -2977,9 +2996,9 @@ Function56cd: ; 56cd
.ok7
ld a, d
ld [$ffbf], a
ld [hFFBF], a
.loop
ld a, [$ffbf]
ld a, [hFFBF]
ld d, a
ld a, [hUsedSpriteTile]
add e
@ -3180,7 +3199,7 @@ ResetFollower: ; 5847
cp -1
ret z
call GetObjectStruct
callba Function58e3
callba Function58e3 ; no need to bankswitch
ld a, -1
ld [wObjectFollow_Follower], a
ret
@ -3294,16 +3313,19 @@ Function58e3: ; 58e3
add hl, bc
ld a, [hl]
cp -1
jp z, Function5903
jp z, Function5903 ; a jr would have been appropriate here
push bc
call GetMapObject
ld hl, MAPOBJECT_MOVEMENT
add hl, bc
ld a, [hl]
pop bc
ld hl, OBJECT_MOVEMENTTYPE
add hl, bc
ld [hl], a
ld hl, OBJECT_09
add hl, bc
ld [hl], 0
@ -3322,6 +3344,7 @@ Function5903: ; 5903
ld hl, OBJECT_MOVEMENTTYPE
add hl, bc
ld [hl], a
ld hl, OBJECT_09
add hl, bc
ld [hl], 0
@ -3495,7 +3518,7 @@ Function59f3: ; 59f3
.next
ld a, [hli]
ld d, a
and %11110000
and $f0
ret z
cp c
jr nz, .next
@ -3503,20 +3526,20 @@ Function59f3: ; 59f3
push bc
push hl
ld a, d
and %00001111
call Function5ac2
call Function5a0d
and $f
call .GetObjectStructPointer
call .asm_5a0d
pop hl
pop bc
jr .next
; 5a0d
Function5a0d: ; 5a0d
.asm_5a0d: ; 5a0d
ld hl, OBJECT_SPRITE_TILE
add hl, bc
ld a, [hl]
and %01111111
ld [$ffc1], a
ld [hFFC1], a
xor a
bit 7, [hl]
@ -3550,7 +3573,7 @@ Function5a0d: ; 5a0d
jr z, .skip4
or %10000000
.skip4
ld [$ffc2], a
ld [hFFC2], a
ld hl, OBJECT_SPRITE_X
add hl, bc
@ -3565,7 +3588,7 @@ Function5a0d: ; 5a0d
ld e, a
ld a, [wd14c]
add e
ld [$ffbf], a
ld [hFFBF], a
ld hl, OBJECT_SPRITE_Y
add hl, bc
@ -3580,7 +3603,7 @@ Function5a0d: ; 5a0d
ld e, a
ld a, [wd14d]
add e
ld [$ffc0], a
ld [hFFC0], a
ld hl, OBJECT_FACING_STEP
add hl, bc
@ -3609,14 +3632,14 @@ Function5a0d: ; 5a0d
jr nc, .full
.addsprite
ld a, [$ffc0]
ld a, [hFFC0]
add [hl]
inc hl
ld [bc], a
inc c
ld a, [$ffbf]
ld a, [hFFBF]
add [hl]
inc hl
@ -3626,7 +3649,7 @@ Function5a0d: ; 5a0d
ld e, [hl]
inc hl
ld a, [$ffc1]
ld a, [hFFC1]
bit 2, e
jr z, .nope1
xor a
@ -3640,7 +3663,7 @@ Function5a0d: ; 5a0d
ld a, e
bit 1, a
jr z, .nope2
ld a, [$ffc2]
ld a, [hFFC2]
or e
.nope2
and %11110000
@ -3665,7 +3688,7 @@ Function5a0d: ; 5a0d
ret
; 5ac2
Function5ac2: ; 5ac2
.GetObjectStructPointer: ; 5ac2
ld c, a
ld b, 0
ld hl, .Addresses

View File

@ -17,28 +17,28 @@ endr
; 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
dw MapSetupScript_Warp
dw MapSetupScript_Continue
dw MapSetupScript_ReloadMap
dw MapSetupScript_Teleport
dw MapSetupScript_Door
dw MapSetupScript_Fall
dw MapSetupScript_Connection
dw MapSetupScript_LinkReturn
dw MapSetupScript_Train
dw MapSetupScript_Submenu
dw MapSetupScript_BadWarp
dw MapSetupScript_Fly
; 1538f
MapSetupScript4: ; 1538f
MapSetupScript_Teleport: ; 1538f
db map_prolong_sprites
MapSetupScript12: ; 15390
MapSetupScript_Fly: ; 15390
db map_fade_out_palettes
db map_keep_roam
MapSetupScript1: ; 15392
MapSetupScript_Warp: ; 15392
db map_lcd_off
db map_sound_off
db map_load_spawn
@ -63,7 +63,7 @@ MapSetupScript1: ; 15392
db map_wildmons
db map_end_setup_script
MapSetupScript11: ; 153a9
MapSetupScript_BadWarp: ; 153a9
db map_load_spawn
db map_attributes
db map_change_callback
@ -87,7 +87,7 @@ MapSetupScript11: ; 153a9
db map_wildmons
db map_end_setup_script
MapSetupScript7: ; 153bf
MapSetupScript_Connection: ; 153bf
db map_animations_off
db map_load_connection
db map_attributes
@ -106,13 +106,13 @@ MapSetupScript7: ; 153bf
db map_animations_on
db map_end_setup_script
MapSetupScript6: ; 153d0
MapSetupScript_Fall: ; 153d0
db map_prolong_sprites
MapSetupScript5: ; 153d1
MapSetupScript_Door: ; 153d1
db map_fade_out_palettes
MapSetupScript9: ; 153d2
MapSetupScript_Train: ; 153d2
db map_load_warp
db map_attributes
db map_warp_face
@ -135,7 +135,7 @@ MapSetupScript9: ; 153d2
db map_update_roam
db map_end_setup_script
MapSetupScript3: ; 153e7
MapSetupScript_ReloadMap: ; 153e7
db map_fade
db map_clear_bg_palettes
db map_lcd_off
@ -153,7 +153,7 @@ MapSetupScript3: ; 153e7
db map_wildmons
db map_end_setup_script
MapSetupScript8: ; 153f7
MapSetupScript_LinkReturn: ; 153f7
db map_fade
db map_lcd_off
db map_sound_off
@ -172,7 +172,7 @@ MapSetupScript8: ; 153f7
db map_text_scroll_off
db map_end_setup_script
MapSetupScript2: ; 15408
MapSetupScript_Continue: ; 15408
db map_lcd_off
db map_sound_off
db map_attributes_2
@ -192,7 +192,7 @@ MapSetupScript2: ; 15408
db map_wildmons
db map_end_setup_script
MapSetupScript10: ; 1541a
MapSetupScript_Submenu: ; 1541a
db map_load_blocks
db map_connection_blocks
db map_end_setup_script
@ -245,7 +245,7 @@ endr
MapSetupCommands: ; 15440
dba EnableLCD ; 00
dba DisableLCD ; 01
dba SoundRestart ; 02
dba MapSetup_Sound_Off ; 02
dba PlayMapMusic ; 03
dba RestartMapMusic ; 04
dba FadeToMapMusic ; 05
@ -271,9 +271,9 @@ MapSetupCommands: ; 15440
dba LoadWarpData ; 19
dba LoadMapAttributes ; 1a
dba LoadMapAttributes_IgnoreHidden ; 1b
dba WhiteBGMap ; 1c
dba FadeBlackBGMap ; 1d
dba FadeInBGMap ; 1e
dba ClearBGPalettes ; 1c
dba FadeOutPalettes ; 1d
dba FadeInPalettes ; 1e
dba GetCoordOfUpperLeftCorner ; 1f
dba RestoreFacingAfterWarp ; 20
dba SpawnInFacingDown ; 21

View File

@ -61,32 +61,32 @@ MovementPointers: ; 5075
dw Movement_fix_facing ; 3b
dw Movement_3c ; 3c
dw Movement_hide_person ; 3d
dw Movement_show_person ; 3e
dw Movement_3f ; 3f
dw Movement_40 ; 40
dw Movement_41 ; 41
dw Movement_42 ; 42
dw Movement_43 ; 43
dw Movement_44 ; 44
dw Movement_accelerate_last ; 45
dw Movement_step_sleep_1 ; 3e
dw Movement_step_sleep_2 ; 3f
dw Movement_step_sleep_3 ; 40
dw Movement_step_sleep_4 ; 41
dw Movement_step_sleep_5 ; 42
dw Movement_step_sleep_6 ; 43
dw Movement_step_sleep_7 ; 44
dw Movement_step_sleep_8 ; 45
dw Movement_step_sleep ; 46
dw Movement_step_end ; 47
dw Movement_48 ; 48
dw Movement_remove_person ; 49
dw Movement_4a ; 4a
dw Movement_step_loop ; 4a
dw Movement_4b ; 4b
dw Movement_teleport_from ; 4c
dw Movement_teleport_to ; 4d
dw Movement_skyfall ; 4e
dw Movement_step_wait5 ; 4f
dw Movement_50 ; 50
dw Movement_51 ; 51
dw Movement_52 ; 52
dw Movement_fish_got_bite ; 51
dw Movement_fish_cast_rod ; 52
dw Movement_hide_emote ; 53
dw Movement_show_emote ; 54
dw Movement_step_shake ; 55
dw Movement_56 ; 56
dw Movement_57 ; 57
dw Movement_rock_smash ; 57
dw Movement_58 ; 58
dw Movement_59 ; 59
; 5129
@ -139,7 +139,7 @@ Movement_step_wait5: ; 5145
ld [hl], $3
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], $ff
ld [hl], STANDING
ret
; 516a
@ -156,14 +156,14 @@ Movement_58: ; 516a
ld [hl], a
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], $ff
ld [hl], STANDING
ld hl, OBJECT_09
add hl, bc
ld [hl], $12
ret
; 5189
Movement_51: ; 5189
Movement_fish_got_bite: ; 5189
ld hl, OBJECT_11
add hl, bc
ld [hl], $6
@ -173,7 +173,7 @@ Movement_51: ; 5189
ret
; 5196
Movement_57: ; 5196
Movement_rock_smash: ; 5196
call GetMovementByte
ld hl, OBJECT_STEP_DURATION
add hl, bc
@ -187,7 +187,7 @@ Movement_57: ; 5196
ret
; 51ab
Movement_52: ; 51ab
Movement_fish_cast_rod: ; 51ab
ld hl, OBJECT_11
add hl, bc
ld [hl], $6
@ -197,11 +197,11 @@ Movement_52: ; 51ab
ret
; 51b8
Movement_4a: ; 51b8
ld hl, OBJECT_27
Movement_step_loop: ; 51b8
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
ld [hl], $0
jp Function5065
jp ContinueReadingMovement
; 51c1
Movement_step_end: ; 51c1
@ -209,11 +209,14 @@ Movement_step_end: ; 51c1
ld hl, OBJECT_MOVEMENTTYPE
add hl, bc
ld [hl], a
ld hl, OBJECT_27
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
ld [hl], $0
ld hl, VramState
res 7, [hl]
ld hl, OBJECT_09
add hl, bc
ld [hl], $1
@ -225,16 +228,20 @@ Movement_48: ; 51db
ld hl, OBJECT_MOVEMENTTYPE
add hl, bc
ld [hl], a
ld hl, OBJECT_27
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
ld [hl], $0
call GetMovementByte
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
ld hl, OBJECT_09
add hl, bc
ld [hl], $3
ld hl, VramState
res 7, [hl]
ret
@ -245,10 +252,10 @@ Movement_remove_person: ; 51fd
ld hl, wObjectFollow_Leader
ld a, [hMapObjectIndexBuffer]
cp [hl]
jr nz, .asm_520a
ld [hl], $ff
jr nz, .not_leading
ld [hl], -1
.asm_520a
.not_leading
ld hl, VramState
res 7, [hl]
ret
@ -258,43 +265,45 @@ Movement_4b: ; 5210
ld hl, OBJECT_11
add hl, bc
ld [hl], $1
ld hl, OBJECT_09
add hl, bc
ld [hl], $4
ld hl, VramState
res 7, [hl]
ret
; 5222
Movement_show_person: ; 5222
Movement_step_sleep_1: ; 5222
ld a, $1
jr Function5247
Movement_3f: ; 5226
Movement_step_sleep_2: ; 5226
ld a, $2
jr Function5247
Movement_40: ; 522a
Movement_step_sleep_3: ; 522a
ld a, $3
jr Function5247
Movement_41: ; 522e
Movement_step_sleep_4: ; 522e
ld a, $4
jr Function5247
Movement_42: ; 5232
Movement_step_sleep_5: ; 5232
ld a, $5
jr Function5247
Movement_43: ; 5236
Movement_step_sleep_6: ; 5236
ld a, $6
jr Function5247
Movement_44: ; 523a
Movement_step_sleep_7: ; 523a
ld a, $7
jr Function5247
Movement_accelerate_last: ; 523e
Movement_step_sleep_8: ; 523e
ld a, $8
jr Function5247
@ -309,15 +318,18 @@ Function5247: ; 5247
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
ld hl, OBJECT_09
add hl, bc
ld [hl], $3
ld hl, OBJECT_11
add hl, bc
ld [hl], $1
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], $ff
ld [hl], STANDING
ret
; 525f
@ -334,7 +346,7 @@ Movement_50: ; 525f
ld [hl], $3
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], $ff
ld [hl], STANDING
ret
; 5279
@ -351,7 +363,7 @@ Movement_56: ; 5279
ld [hl], $b
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], $ff
ld [hl], STANDING
ret
; 5293
@ -359,52 +371,52 @@ Movement_38: ; 5293
ld hl, OBJECT_FLAGS1
add hl, bc
res 3, [hl]
jp Function5065
jp ContinueReadingMovement
; 529c
Movement_39: ; 529c
ld hl, OBJECT_FLAGS1
add hl, bc
set 3, [hl]
jp Function5065
jp ContinueReadingMovement
; 52a5
Movement_remove_fixed_facing: ; 52a5
ld hl, OBJECT_FLAGS1
add hl, bc
res 2, [hl]
jp Function5065
jp ContinueReadingMovement
; 52ae
Movement_fix_facing: ; 52ae
ld hl, OBJECT_FLAGS1
add hl, bc
set 2, [hl]
jp Function5065
jp ContinueReadingMovement
; 52b7
Movement_3c: ; 52b7
ld hl, OBJECT_FLAGS1
add hl, bc
res 0, [hl]
jp Function5065
jp ContinueReadingMovement
; 52c0
Movement_hide_person: ; 52c0
ld hl, OBJECT_FLAGS1
add hl, bc
set 0, [hl]
jp Function5065
jp ContinueReadingMovement
; 52c9
Movement_hide_emote: ; 52c9
call Function5579
jp Function5065
jp ContinueReadingMovement
; 52cf
Movement_show_emote: ; 52cf
call Function5547
jp Function5065
jp ContinueReadingMovement
; 52d5
Movement_step_shake: ; 52d5
@ -413,7 +425,7 @@ Movement_step_shake: ; 52d5
call GetMovementByte
call Function5565
jp Function5065
jp ContinueReadingMovement
; 52de
Movement_turn_head_down: ; 52de
@ -441,7 +453,7 @@ TurnHead: ; 52ee
ld [hl], $1
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], $ff
ld [hl], STANDING
ret
; 5300

View File

@ -40,7 +40,7 @@ NamingScreen: ; 116c1
; 116f8
Function116f8: ; 116f8
call WhiteBGMap
call ClearBGPalettes
ld b, $8
call GetSGBLayout
call DisableLCD

View File

@ -594,7 +594,7 @@ Function103fd: ; 103fd
ld [Options], a
ld a, $8
ld [PartyMenuActionText], a
call WhiteBGMap
call ClearBGPalettes
callba Function5004f
callba Function50405
callba Function503e0
@ -922,7 +922,7 @@ Function105dc: ; 105dc (4:45dc)
ret
.asm_1066c: ; 1066c (4:466c)
call WhiteBGMap
call ClearBGPalettes
jr .asm_1067e
.BattleOnly: ; 10671 (4:4671)
@ -1401,7 +1401,7 @@ Function108d4: ; 108d4 (4:48d4)
Function10955: ; 10955
call WhiteBGMap
call ClearBGPalettes
call ClearTileMap
call ClearSprites
call DisableLCD

View File

@ -2,10 +2,10 @@ SelectMonFromParty: ; 50000
call DisableSpriteUpdates
xor a
ld [PartyMenuActionText], a
call WhiteBGMap
call ClearBGPalettes
call Function5003f
call WaitBGMap
call Function32f9
call SetPalettes
call DelayFrame
call PartyMenuSelect
call Function2b74
@ -17,12 +17,12 @@ Function5001d: ; 5001d
ld a, b
ld [PartyMenuActionText], a
call DisableSpriteUpdates
call WhiteBGMap
call ClearBGPalettes
call Function5003f
call WaitBGMap
ld b, $a
call GetSGBLayout
call Function32f9
call SetPalettes
call DelayFrame
call PartyMenuSelect
call Function2b74
@ -57,43 +57,42 @@ WritePartyMenuTilemap: ; 0x5005f
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, " "
call ByteFill ; blank the tilemap
call Function50396 ; This reads from a pointer table???
call GetPartyMenuTilemapPointers ; This reads from a pointer table???
.loop
ld a, [hli]
cp -1
jr z, .asm_50084 ; 0x5007a $8
cp $ff
jr z, .end ; 0x5007a $8
push hl
ld hl, .jumptable
ld hl, .Jumptable
rst JumpTable
pop hl
jr .loop ; 0x50082 $f3
.asm_50084
.end
pop af
ld [Options], a
ret
; 0x50089
.jumptable: ; 50089
dw .displaynicks ; 0
dw .drawhpbars ; 1
dw Function50138 ; 2
dw Function50176 ; 3
dw Function501b2 ; 4
dw Function501e0 ; 5
dw Function5022f ; 6
dw Function502b1 ; 7
dw Function50307 ; 8
.Jumptable: ; 50089
dw PlacePartyNicknames
dw PlacePartyHPBar
dw PlacePartyMenuHPDigits
dw PlacePartyMonLevel
dw PlacePartyMonStatus
dw PlacePartyMonTMHMCompatibility
dw PlacePartyMonEvoStoneCompatibility
dw PlacePartyMonGender
dw PlacePartyMonMobileBattleSelection
; 5009b
.displaynicks: ; 5009b
PlacePartyNicknames: ; 5009b
hlcoord 3, 1
ld a, [PartyCount]
and a
jr z, .done
jr z, .end
ld c, a
ld b, $0
.loop2
.loop
push bc
push hl
push hl
@ -103,28 +102,28 @@ WritePartyMenuTilemap: ; 0x5005f
pop hl
call PlaceString
pop hl
ld de, $0028
ld de, 2 * SCREEN_WIDTH
add hl, de
pop bc
inc b
dec c
jr nz, .loop2
jr nz, .loop
.done
.end
rept 2
dec hl
endr
ld de, .cancelstring
ld de, .CANCEL
call PlaceString
ret
; 500c8
.cancelstring: ; 500c8
.CANCEL: ; 500c8
db "CANCEL@"
; 500cf
.drawhpbars: ; 500cf
PlacePartyHPBar: ; 500cf
xor a
ld [wcda9], a
ld a, [PartyCount]
@ -133,17 +132,17 @@ endr
ld c, a
ld b, $0
hlcoord 11, 2
.loop3
.loop
push bc
push hl
call Function50389
call PartyMenuCheckEgg
jr z, .skip
push hl
call _fillhpbar
call PlacePartymonHPBar
pop hl
ld d, 6
ld b, 0
call DrawHPBar
ld d, $6
ld b, $0
call DrawBattleHPBar
ld hl, wcd9b
ld a, [wcda9]
ld c, a
@ -157,31 +156,31 @@ endr
ld hl, wcda9
inc [hl]
pop hl
ld de, $0028
ld de, 2 * SCREEN_WIDTH
add hl, de
pop bc
inc b
dec c
jr nz, .loop3
jr nz, .loop
ld b, $a
call GetSGBLayout
ret
; 50117
_fillhpbar: ; 50117
PlacePartymonHPBar: ; 50117
ld a, b
ld bc, PartyMon2 - PartyMon1
ld bc, PARTYMON_STRUCT_LENGTH
ld hl, PartyMon1HP
call AddNTimes
ld a, [hli]
or [hl]
jr nz, .notfainted
jr nz, .not_fainted
xor a
ld e, a
ld c, a
ret
.notfainted
.not_fainted
dec hl
ld a, [hli]
ld b, a
@ -191,25 +190,25 @@ _fillhpbar: ; 50117
ld d, a
ld a, [hli]
ld e, a
predef ComputeHPBarLength
predef DrawPartyMenuHPBar
ret
; 50138
Function50138: ; 50138
PlacePartyMenuHPDigits: ; 50138
ld a, [PartyCount]
and a
ret z
ld c, a
ld b, $0
hlcoord 13, 1
.asm_50143
.loop
push bc
push hl
call Function50389
jr z, .asm_5016b
call PartyMenuCheckEgg
jr z, .next
push hl
ld a, b
ld bc, PartyMon2 - PartyMon1
ld bc, PARTYMON_STRUCT_LENGTH
ld hl, PartyMon1HP
call AddNTimes
ld e, l
@ -219,7 +218,7 @@ Function50138: ; 50138
lb bc, 2, 3
call PrintNum
pop de
ld a, $f3
ld a, "/"
ld [hli], a
rept 2
inc de
@ -227,32 +226,32 @@ endr
lb bc, 2, 3
call PrintNum
.asm_5016b
.next
pop hl
ld de, $0028
ld de, 2 * SCREEN_WIDTH
add hl, de
pop bc
inc b
dec c
jr nz, .asm_50143
jr nz, .loop
ret
; 50176
Function50176: ; 50176
PlacePartyMonLevel: ; 50176
ld a, [PartyCount]
and a
ret z
ld c, a
ld b, 0
hlcoord 8, 2
.asm_50181
.loop
push bc
push hl
call Function50389
jr z, .asm_501a7
call PartyMenuCheckEgg
jr z, .next
push hl
ld a, b
ld bc, PartyMon2 - PartyMon1
ld bc, PARTYMON_STRUCT_LENGTH
ld hl, PartyMon1Level
call AddNTimes
ld e, l
@ -260,70 +259,72 @@ Function50176: ; 50176
pop hl
ld a, [de]
cp 100 ; This is distinct from MAX_LEVEL.
jr nc, .asm_501a1
jr nc, .ThreeDigits
ld a, "<LV>"
ld [hli], a
ld bc, $4102
.asm_501a1
lb bc, PRINTNUM_RIGHTALIGN | 1, 2
; jr .okay
.ThreeDigits
lb bc, PRINTNUM_RIGHTALIGN | 1, 3
; .okay
call PrintNum
.asm_501a7
.next
pop hl
ld de, SCREEN_WIDTH * 2
add hl, de
pop bc
inc b
dec c
jr nz, .asm_50181
jr nz, .loop
ret
; 501b2
Function501b2: ; 501b2
PlacePartyMonStatus: ; 501b2
ld a, [PartyCount]
and a
ret z
ld c, a
ld b, 0
hlcoord 5, 2
.asm_501bd
.loop
push bc
push hl
call Function50389
jr z, .asm_501d5
call PartyMenuCheckEgg
jr z, .next
push hl
ld a, b
ld bc, PartyMon2 - PartyMon1
ld bc, PARTYMON_STRUCT_LENGTH
ld hl, PartyMon1Status
call AddNTimes
ld e, l
ld d, h
pop hl
call Function50d0a
call PlaceStatusString
.asm_501d5
.next
pop hl
ld de, SCREEN_WIDTH * 2
add hl, de
pop bc
inc b
dec c
jr nz, .asm_501bd
jr nz, .loop
ret
; 501e0
Function501e0: ; 501e0
PlacePartyMonTMHMCompatibility: ; 501e0
ld a, [PartyCount]
and a
ret z
ld c, a
ld b, 0
hlcoord 12, 2
.asm_501eb
.loop
push bc
push hl
call Function50389
jr z, .asm_5020a
call PartyMenuCheckEgg
jr z, .next
push hl
ld hl, PartySpecies
ld e, b
@ -333,56 +334,56 @@ Function501e0: ; 501e0
ld [CurPartySpecies], a
predef CanLearnTMHMMove
pop hl
call Function50215
call .PlaceAbleNotAble
call PlaceString
.asm_5020a
.next
pop hl
ld de, SCREEN_WIDTH * 2
add hl, de
pop bc
inc b
dec c
jr nz, .asm_501eb
jr nz, .loop
ret
; 50215
Function50215: ; 50215
.PlaceAbleNotAble: ; 50215
ld a, c
and a
jr nz, .asm_5021d
ld de, String_50226
jr nz, .able
ld de, .string_not_able
ret
.asm_5021d
ld de, String_50221
.able
ld de, .string_able
ret
; 50221
String_50221: ; 50221
.string_able: ; 50221
db "ABLE@"
; 50226
String_50226: ; 50226
.string_not_able: ; 50226
db "NOT ABLE@"
; 5022f
Function5022f: ; 5022f
PlacePartyMonEvoStoneCompatibility: ; 5022f
ld a, [PartyCount]
and a
ret z
ld c, a
ld b, 0
hlcoord 12, 2
.asm_5023a
.loop
push bc
push hl
call Function50389
jr z, .asm_5025d
call PartyMenuCheckEgg
jr z, .next
push hl
ld a, b
ld bc, PartyMon2 - PartyMon1
ld bc, PARTYMON_STRUCT_LENGTH
ld hl, PartyMon1Species
call AddNTimes
ld a, [hl]
@ -393,22 +394,22 @@ Function5022f: ; 5022f
rept 2
add hl, de
endr
call Function50268
call .DetermineCompatibility
pop hl
call PlaceString
.asm_5025d
.next
pop hl
ld de, $0028
ld de, 2 * SCREEN_WIDTH
add hl, de
pop bc
inc b
dec c
jr nz, .asm_5023a
jr nz, .loop
ret
; 50268
Function50268: ; 50268
.DetermineCompatibility: ; 50268
ld de, StringBuffer1
ld a, BANK(EvosAttacksPointers)
ld bc, 2
@ -422,15 +423,15 @@ Function50268: ; 50268
ld bc, $a
call FarCopyBytes
ld hl, StringBuffer1
.asm_50287
.loop2
ld a, [hli]
and a
jr z, .asm_5029f
jr z, .nope
rept 2
inc hl
endr
cp EVOLVE_ITEM
jr nz, .asm_50287
jr nz, .loop2
rept 2
dec hl
endr
@ -439,35 +440,35 @@ endr
rept 2
inc hl
endr
jr nz, .asm_50287
ld de, String_502a3
jr nz, .loop2
ld de, .string_able
ret
.asm_5029f
ld de, String_502a8
.nope
ld de, .string_not_able
ret
; 502a3
String_502a3: ; 502a3
.string_able: ; 502a3
db "ABLE@"
; 502a8
String_502a8: ; 502a8
.string_not_able: ; 502a8
db "NOT ABLE@"
; 502b1
Function502b1: ; 502b1
PlacePartyMonGender: ; 502b1
ld a, [PartyCount]
and a
ret z
ld c, a
ld b, 0
hlcoord 12, 2
.asm_502bc
.loop
push bc
push hl
call Function50389
jr z, .asm_502e3
call PartyMenuCheckEgg
jr z, .next
ld [CurPartySpecies], a
push hl
ld a, b
@ -475,86 +476,86 @@ Function502b1: ; 502b1
xor a
ld [MonType], a
call GetGender
ld de, String_502fe
jr c, .asm_502df
ld de, String_502ee
jr nz, .asm_502df
ld de, String_502f5
ld de, .unknown
jr c, .got_gender
ld de, .male
jr nz, .got_gender
ld de, .female
.asm_502df
.got_gender
pop hl
call PlaceString
.asm_502e3
.next
pop hl
ld de, $0028
ld de, 2 * SCREEN_WIDTH
add hl, de
pop bc
inc b
dec c
jr nz, .asm_502bc
jr nz, .loop
ret
; 502ee
String_502ee: ; 502ee
.male: ; 502ee
db "♂…MALE@"
; 502f5
String_502f5: ; 502f5
.female: ; 502f5
db "♀…FEMALE@"
; 502fe
String_502fe: ; 502fe
.unknown: ; 502fe
db "…UNKNOWN@"
; 50307
Function50307: ; 50307
PlacePartyMonMobileBattleSelection: ; 50307
ld a, [PartyCount]
and a
ret z
ld c, a
ld b, 0
hlcoord 12, 1
.asm_50312
.loop
push bc
push hl
ld de, String_50372
ld de, .String_Sanka_Shinai
call PlaceString
pop hl
ld de, $0028
ld de, 2 * SCREEN_WIDTH
add hl, de
pop bc
inc b
dec c
jr nz, .asm_50312
jr nz, .loop
ld a, l
ld e, $b
ld e, PKMN_NAME_LENGTH
sub e
ld l, a
ld a, h
sbc $0
ld h, a
ld de, String_50379
ld de, .String_Kettei_Yameru
call PlaceString
ld b, $3
ld c, $0
ld hl, wd002
ld a, [hl]
.asm_5033b
.loop2
push hl
push bc
hlcoord 12, 1
.asm_50340
.loop3
and a
jr z, .asm_5034a
ld de, $0028
jr z, .done
ld de, 2 * SCREEN_WIDTH
add hl, de
dec a
jr .asm_50340
jr .loop3
.asm_5034a
ld de, String_5036b
.done
ld de, .String_Banme
push hl
call PlaceString
pop hl
@ -562,7 +563,7 @@ Function50307: ; 50307
push bc
push hl
ld a, c
ld hl, Strings_50383
ld hl, .Strings_1_2_3
call GetNthString
ld d, h
ld e, l
@ -575,24 +576,24 @@ Function50307: ; 50307
inc c
dec b
ret z
jr .asm_5033b
jr .loop2
; 5036b
String_5036b: ; 5036b
.String_Banme: ; 5036b
db " ばんめ @" ; Place
; 50372
String_50372: ; 50372
.String_Sanka_Shinai: ; 50372
db "さんかしない@" ; Cancel
; 50379
String_50379: ; 50379
.String_Kettei_Yameru: ; 50379
db "けってい やめる@" ; Quit
; 50383
Strings_50383: ; 50383
.Strings_1_2_3: ; 50383
db "1@", "2@", "3@" ; 1st, 2nd, 3rd
; 50389
Function50389: ; 50389
PartyMenuCheckEgg: ; 50389
ld a, PartySpecies % $100
add b
ld e, a
@ -604,15 +605,15 @@ Function50389: ; 50389
ret
; 50396
Function50396: ; 50396
GetPartyMenuTilemapPointers: ; 50396
ld a, [PartyMenuActionText]
and $f0
jr nz, .override
jr nz, .skip
ld a, [PartyMenuActionText]
and $f
ld e, a
ld d, 0
ld hl, .selectmonmenuoptions
ld hl, .Pointers
rept 2
add hl, de
endr
@ -621,31 +622,32 @@ endr
ld l, a
ret
.override
ld hl, .default
.skip
ld hl, .Default
ret
; 503b2
.selectmonmenuoptions: ; 503b2
dw .default
dw .default
dw .default
dw .unknown1
dw .default
dw .unknown2
dw .trade
dw .trade
dw .default
dw .unknown3
.Pointers: ; 503b2
dw .Default
dw .Default
dw .Default
dw .TMHM
dw .Default
dw .EvoStone
dw .Gender
dw .Gender
dw .Default
dw .Mobile
; 503c6
.default: db 0, 1, 2, 3, 4, -1
.unknown1: db 0, 5, 3, 4, -1
.unknown2: db 0, 6, 3, 4, -1
.trade: db 0, 7, 3, 4, -1
.unknown3: db 0, 8, 3, 4, -1
.Default: db 0, 1, 2, 3, 4, $ff
.TMHM: db 0, 5, 3, 4, $ff
.EvoStone: db 0, 6, 3, 4, $ff
.Gender: db 0, 7, 3, 4, $ff
.Mobile: db 0, 8, 3, 4, $ff
; 503e0
Function503e0: ; 503e0
ld hl, PartyCount
ld a, [hli]
@ -653,7 +655,7 @@ Function503e0: ; 503e0
ret z
ld c, a
xor a
ld [hConnectedMapWidth], a
ld [hObjectStructIndexBuffer], a
.asm_503ea
push bc
push hl
@ -661,9 +663,9 @@ Function503e0: ; 503e0
ld a, BANK(Function8e83f)
ld e, $0
rst FarCall
ld a, [hConnectedMapWidth]
ld a, [hObjectStructIndexBuffer]
inc a
ld [hConnectedMapWidth], a
ld [hObjectStructIndexBuffer], a
pop hl
pop bc
dec c
@ -671,6 +673,7 @@ Function503e0: ; 503e0
callab Function8cf69
ret
; 50405
Function50405: ; 50405
xor a
ld [wd0e3], a
@ -692,7 +695,7 @@ Function50405: ; 50405
ld a, $1
.asm_50424
ld [wcfa9], a
ld [MenuSelection2], a
ld a, $3
ld [wcfa8], a
ret
@ -713,7 +716,7 @@ Function5042d: ; 0x5042d
.asm_50444
ld a, $1
.asm_50446
ld [wcfa9], a
ld [MenuSelection2], a
ld a, $3
ld [wcfa8], a
ret
@ -738,7 +741,7 @@ PartyMenuSelect: ; 0x50457
ld a, [PartyCount]
inc a
ld b, a
ld a, [wcfa9] ; menu selection?
ld a, [MenuSelection2] ; menu selection?
cp b
jr z, .exitmenu ; CANCEL
ld [wd0d8], a
@ -746,7 +749,7 @@ PartyMenuSelect: ; 0x50457
ld b, a
bit 1, b
jr nz, .exitmenu ; B button?
ld a, [wcfa9]
ld a, [MenuSelection2]
dec a
ld [CurPartyMon], a
ld c, a
@ -773,7 +776,7 @@ PartyMenuSelect: ; 0x50457
PrintPartyMenuText: ; 5049a
hlcoord 0, 14
ld bc, $0212
lb bc, 2, 18
call TextBox
ld a, [PartyCount]
and a
@ -920,6 +923,7 @@ UnknownText_0x505bc: ; 0x505bc
db "@"
; 0x505c1
Function505c1: ; 505c1
ld e, a
ld d, 0

View File

@ -60,7 +60,7 @@ Pokedex: ; 40000
; 40063
InitPokedex: ; 40063
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
call ClearTileMap
call Function414b7
@ -487,7 +487,7 @@ Function4034f: ; 4034f
ld [wcf64], a
pop af
ld [wcf65], a
call WhiteBGMap
call ClearBGPalettes
call DisableLCD
call Function414fb
call Function4038d

View File

@ -1079,9 +1079,11 @@ ApplyMovement: ; 971fa
ld a, c
callba SetFlagsForMovement_1
pop bc
push bc
call SetFlagsForMovement_2
pop bc
call GetScriptByte
ld l, a
call GetScriptByte
@ -1090,6 +1092,7 @@ ApplyMovement: ; 971fa
ld b, a
call GetMovementData
ret c
ld a, SCRIPT_WAIT_MOVEMENT
ld [ScriptMode], a
call StopScript
@ -1102,6 +1105,7 @@ SetFlagsForMovement_2: ; 0x97221
; 0x97228
Script_applymovement2: ; 0x97228
; apply movement to last talked
; script command 0x6a
; parameters:
; data (MovementPointerLabelParam)
@ -1426,12 +1430,12 @@ ShowEmoteScript: ; 973b6
.Show
show_emote
show_person
step_sleep_1
step_end
.Hide
hide_emote
show_person
step_sleep_1
step_end
; 973c7
@ -1460,8 +1464,8 @@ Script_earthquake: ; 0x973c7
; 973eb
EarthquakeMovement: ; 973eb
step_shake 16
step_sleep 16
step_shake 16 ; the 16 gets overwritten with the script byte
step_sleep 16 ; the 16 gets overwritten with the lower 6 bits of the script byte
step_end
EarthquakeMovementEnd
; 973f0
@ -2847,6 +2851,7 @@ Script_warp: ; 0x97a1d
call LoadMapStatus
call StopScript
ret
.not_ok
call GetScriptByte
call GetScriptByte
@ -3117,6 +3122,7 @@ Script_end: ; 0x97b74
call ExitScriptSubroutine
jr c, .resume
ret
.resume
xor a
ld [ScriptRunning], a

2112
engine/slot_machine.asm Executable file

File diff suppressed because it is too large Load Diff

View File

@ -65,14 +65,14 @@ SpecialsPointers:: ; c029
add_special Special_SlotMachine
add_special Special_CardFlip
add_special Special_DummyNonfunctionalGameCornerGame
add_special Special_WhiteBGMapBufferScreen
add_special FadeBlackBGMap
add_special Special_ClearBGPalettesBufferScreen
add_special FadeOutPalettes
add_special Special_BattleTowerFade
add_special Special_FadeBlackQuickly
add_special FadeInBGMap
add_special FadeInPalettes
add_special Special_FadeInQuickly
add_special Special_ReloadSpritesNoPalettes
add_special WhiteBGMap
add_special ClearBGPalettes
add_special UpdateTimePals
add_special ClearTileMap
add_special UpdateSprites
@ -465,8 +465,8 @@ UnknownText_0xc3d6: ; 0xc3d6
db "@"
; 0xc3db
Special_WhiteBGMapBufferScreen: ; c3db
call WhiteBGMap
Special_ClearBGPalettesBufferScreen: ; c3db
call ClearBGPalettes
call BufferScreen
ret
; c3e2

View File

@ -139,7 +139,7 @@ endr
; 126b7
.Clear ; 126b7
call WhiteBGMap
call ClearBGPalettes
call Call_ExitMenu
call Function2bae
call .DrawMenuAccount_
@ -529,7 +529,7 @@ StartMenu_Pokemon: ; 12976
.choosemenu
xor a
ld [PartyMenuActionText], a ; Choose a POKéMON.
call WhiteBGMap
call ClearBGPalettes
.menu
callba Function5004f
@ -1449,7 +1449,7 @@ MonMenu_RockSmash: ; 12f3b
; 12f50
MonMenu_SweetScent: ; 12f50
callba DoMovementFunctionc
callba SweetScentFromMenu
ld b, $4
ld a, $2
ret
@ -1466,7 +1466,7 @@ Function12f5b: ; 12f5b
ld a, b
ld [Options], a
push af
call WhiteBGMap
call ClearBGPalettes
pop af
ret
; 12f73
@ -1527,7 +1527,7 @@ ManagePokemonMoves: ; 12fba
call MoveScreenLoop
pop af
ld [Options], a
call WhiteBGMap
call ClearBGPalettes
.egg
ld a, $0
@ -1753,7 +1753,7 @@ String_1316b: ; 1316b
; 13172
SetUpMoveScreenBG: ; 13172
call WhiteBGMap
call ClearBGPalettes
call ClearTileMap
call ClearSprites
xor a

View File

@ -302,7 +302,7 @@ RadioTowerRocketsScript:
end
BugContestResultsWarpScript:
special WhiteBGMap
special ClearBGPalettes
scall BugContestResults_CopyContestantsToResults
setevent EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
clearevent EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY

View File

@ -116,7 +116,7 @@ _UpdateTimePals:: ; 8c070
ret
; 8c079
FadeInBGMap:: ; 8c079
FadeInPalettes:: ; 8c079
ld c, $12
call GetTimePalFade
ld b, $4
@ -124,7 +124,7 @@ FadeInBGMap:: ; 8c079
ret
; 8c084
FadeBlackBGMap:: ; 8c084
FadeOutPalettes:: ; 8c084
call Function8c0c1
ld c, $9
call GetTimePalFade

View File

@ -1,6 +1,6 @@
_TitleScreen: ; 10ed67
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
call ClearTileMap

34
event/basement_key.asm Executable file
View File

@ -0,0 +1,34 @@
_BasementKey: ; 507b4
; Are we even in the right map to use this?
ld a, [MapGroup]
cp GROUP_WAREHOUSE_ENTRANCE
jr nz, .nope
ld a, [MapNumber]
cp MAP_WAREHOUSE_ENTRANCE
jr nz, .nope
; Are we on the tile in front of the door?
call GetFacingTileCoord
ld a, d
cp 22
jr nz, .nope
ld a, e
cp 10
jr nz, .nope
; Let's use the Basement Key
ld hl, .BasementKeyScript
call QueueScript
ld a, 1
ld [wd0ec], a
ret
.nope
ld a, $0
ld [wd0ec], a
ret
; 507e1
.BasementKeyScript: ; 0x507e1
loadmovesprites
farjump BasementDoorScript
; 0x507e6

39
event/card_key.asm Executable file
View File

@ -0,0 +1,39 @@
_CardKey: ; 50779
; Are we even in the right map to use this?
ld a, [MapGroup]
cp GROUP_RADIO_TOWER_3F
jr nz, .nope
ld a, [MapNumber]
cp MAP_RADIO_TOWER_3F
jr nz, .nope
; Are we facing the slot?
ld a, [PlayerDirection]
and $c
cp OW_UP
jr nz, .nope
call GetFacingTileCoord
ld a, d
cp 18
jr nz, .nope
ld a, e
cp 6
jr nz, .nope
; Let's use the Card Key.
ld hl, .CardKeyScript
call QueueScript
ld a, $1
ld [wd0ec], a
ret
.nope
ld a, $0
ld [wd0ec], a
ret
; 507af
.CardKeyScript: ; 0x507af
loadmovesprites
farjump MapRadioTower3FSignpost2Script
; 0x507b4

162
event/poisonstep.asm Executable file
View File

@ -0,0 +1,162 @@
DoPoisonStep:: ; 505da
ld a, [PartyCount]
and a
jr z, .no_faint
xor a
ld c, 7
ld hl, EngineBuffer1
.loop_clearEngineBuffer1
ld [hli], a
dec c
jr nz, .loop_clearEngineBuffer1
xor a
ld [CurPartyMon], a
.loop_check_poison
call .DamageMonIfPoisoned
jr nc, .not_poisoned
; the output flag is stored in c, copy it to the ([CurPartyMon] + 2)nd EngineBuffer
; and set the corresponding flag in EngineBuffer1
ld a, [CurPartyMon]
ld e, a
ld d, 0
ld hl, EngineBuffer2
add hl, de
ld [hl], c
ld a, [EngineBuffer1]
or c
ld [EngineBuffer1], a
.not_poisoned
ld a, [PartyCount]
ld hl, CurPartyMon
inc [hl]
cp [hl]
jr nz, .loop_check_poison
ld a, [EngineBuffer1]
and %10
jr nz, .someone_has_fainted
ld a, [EngineBuffer1]
and %01
jr z, .no_faint
call .PlayPoisonSFX
xor a
ret
.someone_has_fainted
ld a, BANK(.Script_MonFaintedToPoison)
ld hl, .Script_MonFaintedToPoison
call CallScript
scf
ret
.no_faint
xor a
ret
; 5062e
.DamageMonIfPoisoned: ; 5062e
; check if mon is poisoned, return if not
ld a, MON_STATUS
call GetPartyParamLocation
ld a, [hl]
and 1 << PSN
ret z
; check if mon is already fainted, return if so
ld a, MON_HP
call GetPartyParamLocation
ld a, [hli]
ld b, a
ld c, [hl]
or c
ret z
; do 1 HP damage
dec bc
ld [hl], c
dec hl
ld [hl], b
; check if mon has fainted as a result of poison damage
ld a, b
or c
jr nz, .not_fainted
; the mon has fainted, reset its status, set carry, and return %10
ld a, MON_STATUS
call GetPartyParamLocation
ld [hl], 0
ld c, %10
scf
ret
.not_fainted
; set carry and return %01
ld c, %01
scf
ret
; 50658
.PlayPoisonSFX: ; 50658
ld de, SFX_POISON
call PlaySFX
ld b, $2
predef Functioncbcdd
call DelayFrame
ret
; 50669
.Script_MonFaintedToPoison: ; 50669
callasm .PlayPoisonSFX
loadfont
callasm .CheckWhitedOut
iffalse .whiteout
loadmovesprites
end
; 50677
.whiteout: ; 50677
farjump Script_OverworldWhiteout
; 5067b
.CheckWhitedOut: ; 5067b
xor a
ld [CurPartyMon], a
ld de, EngineBuffer2
.party_loop
push de
ld a, [de]
and %10
jr z, .mon_not_fainted
ld c, HAPPINESS_POISONFAINT
callba ChangeHappiness
callba GetPartyNick
ld hl, .PoisonFaintText
call PrintText
.mon_not_fainted
pop de
inc de
ld hl, CurPartyMon
inc [hl]
ld a, [PartyCount]
cp [hl]
jr nz, .party_loop
predef CheckPlayerPartyForFitPkmn
ld a, d
ld [ScriptVar], a
ret
; 506b2
.PoisonFaintText: ; 506b2
text_jump UnknownText_0x1c0acc
db "@"
; 506b7
.PoisonWhiteOutText: ; 506b7
text_jump UnknownText_0x1c0ada
db "@"
; 506bc

74
event/sacred_ash.asm Executable file
View File

@ -0,0 +1,74 @@
_SacredAsh: ; 507e6
ld a, $0
ld [wd0ec], a
call CheckAnyFaintedMon
ret nc
ld hl, SacredAshScript
call QueueScript
ld a, $1
ld [wd0ec], a
ret
; 507fb
CheckAnyFaintedMon: ; 507fb
ld de, PARTYMON_STRUCT_LENGTH
ld bc, PartySpecies
ld hl, PartyMon1HP
ld a, [PartyCount]
and a
ret z
.loop
push af
push hl
ld a, [bc]
inc bc
cp EGG
jr z, .next
ld a, [hli]
or [hl]
jr z, .done
.next
pop hl
add hl, de
pop af
dec a
jr nz, .loop
xor a
ret
.done
pop hl
pop af
scf
ret
; 50821
SacredAshScript: ; 0x50821
special HealParty
reloadmappart
playsound SFX_WARP_TO
special FadeOutPalettes
special FadeInPalettes
special FadeOutPalettes
special FadeInPalettes
special FadeOutPalettes
special FadeInPalettes
waitbutton
writetext UnknownText_0x50845
playsound SFX_CAUGHT_MON
waitbutton
closetext
loadmovesprites
end
; 0x50845
UnknownText_0x50845: ; 0x50845
; 's #MON were all healed!
text_jump UnknownText_0x1c0b65
db "@"
; 0x5084a

51
event/squirtbottle.asm Executable file
View File

@ -0,0 +1,51 @@
_Squirtbottle: ; 50730
ld hl, UnknownScript_0x5073c
call QueueScript
ld a, $1
ld [wd0ec], a
ret
; 5073c
UnknownScript_0x5073c: ; 0x5073c
reloadmappart
special UpdateTimePals
callasm Function50753
iffalse UnknownScript_0x5074b
farjump WateredWeirdTreeScript
; 0x5074b
UnknownScript_0x5074b: ; 0x5074b
jumptext UnknownText_0x5074e
; 0x5074e
UnknownText_0x5074e: ; 0x5074e
; sprinkled water. But nothing happened…
text_jump UnknownText_0x1c0b3b
db "@"
; 0x50753
Function50753: ; 50753
ld a, [MapGroup]
cp GROUP_ROUTE_36
jr nz, .asm_50774
ld a, [MapNumber]
cp MAP_ROUTE_36
jr nz, .asm_50774
callba GetFacingObject
jr c, .asm_50774
ld a, d
cp $17
jr nz, .asm_50774
ld a, $1
ld [ScriptVar], a
ret
.asm_50774
xor a
ld [ScriptVar], a
ret
; 50779

75
event/sweet_scent.asm Executable file
View File

@ -0,0 +1,75 @@
SweetScentFromMenu: ; 506bc
ld hl, UnknownScript_0x506c8
call QueueScript
ld a, $1
ld [wd0ec], a
ret
; 506c8
UnknownScript_0x506c8: ; 0x506c8
reloadmappart
special UpdateTimePals
callasm GetPartyNick
writetext UnknownText_0x50726
closetext
callasm SweetScentEncounter
iffalse UnknownScript_0x506e9
checkflag ENGINE_BUG_CONTEST_TIMER
iftrue UnknownScript_0x506e5
battlecheck
startbattle
returnafterbattle
end
; 0x506e5
UnknownScript_0x506e5: ; 0x506e5
farjump BugCatchingContestBattleScript
; 0x506e9
UnknownScript_0x506e9: ; 0x506e9
writetext UnknownText_0x5072b
closetext
loadmovesprites
end
; 0x506ef
SweetScentEncounter: ; 506ef
callba CanUseSweetScent
jr nc, .no_battle
ld hl, StatusFlags2
bit 2, [hl]
jr nz, .not_in_bug_contest
callba GetMapEncounterRate
ld a, b
and a
jr z, .no_battle
callba ChooseWildEncounter
jr nz, .no_battle
jr .start_battle
.not_in_bug_contest
callba ChooseWildEncounter_BugContest
.start_battle
ld a, $1
ld [ScriptVar], a
ret
.no_battle
xor a
ld [ScriptVar], a
ld [BattleType], a
ret
; 50726
UnknownText_0x50726: ; 0x50726
; used SWEET SCENT!
text_jump UnknownText_0x1c0b03
db "@"
; 0x5072b
UnknownText_0x5072b: ; 0x5072b
; Looks like there's nothing here…
text_jump UnknownText_0x1c0b1a
db "@"
; 0x50730

View File

@ -10,7 +10,7 @@ Script_OverworldWhiteout:: ; 0x124c8
Script_Whiteout: ; 0x124ce
writetext .WhitedOutText
closetext
special FadeBlackBGMap
special FadeOutPalettes
pause 40
special HealParty
checkflag ENGINE_BUG_CONTEST_TIMER

View File

@ -530,7 +530,7 @@ CompareLong:: ; 31e4
; 31f3
WhiteBGMap:: ; 31f3
ClearBGPalettes:: ; 31f3
call ClearPalettes
WaitBGMap:: ; 31f6
; Tell VBlank to update BG Map

View File

@ -1,6 +1,6 @@
; Audio interfaces.
SoundRestart:: ; 3b4e
MapSetup_Sound_Off:: ; 3b4e
push hl
push de
@ -9,11 +9,11 @@ SoundRestart:: ; 3b4e
ld a, [hROMBank]
push af
ld a, BANK(_SoundRestart)
ld a, BANK(_MapSetup_Sound_Off)
ld [hROMBank], a
ld [MBC3RomBank], a
call _SoundRestart
call _MapSetup_Sound_Off
pop af
ld [hROMBank], a
@ -81,7 +81,7 @@ PlayMusic:: ; 3b97
ld a, [hROMBank]
push af
ld a, BANK(_PlayMusic) ; and BANK(_SoundRestart)
ld a, BANK(_PlayMusic) ; and BANK(_MapSetup_Sound_Off)
ld [hROMBank], a
ld [MBC3RomBank], a
@ -93,7 +93,7 @@ PlayMusic:: ; 3b97
jr .end
.nomusic
call _SoundRestart
call _MapSetup_Sound_Off
.end
pop af

View File

@ -1,6 +1,6 @@
Reset:: ; 150
di
call SoundRestart
call MapSetup_Sound_Off
xor a
ld [hMapAnims], a
call ClearPalettes
@ -168,7 +168,7 @@ Init:: ; 17d
predef Function9853
call SoundRestart
call MapSetup_Sound_Off
xor a
ld [wMapMusic], a
jp GameInit

View File

@ -209,8 +209,8 @@ endr
ret
; 222a
Function222a:: ; 222a
ld a, MAPSETUP_10
ReturnToMapFromSubmenu:: ; 222a
ld a, MAPSETUP_SUBMENU
ld [hMapEntryMethod], a
callba RunMapSetupScript
xor a
@ -1099,13 +1099,14 @@ Call_a_de:: ; 26b7
; 26c7
GetMovementData:: ; 26c7
; Initialize the movement data for person c at b:hl
ld a, [hROMBank]
push af
ld a, b
rst Bankswitch
ld a, c
call Function19e9
call LoadMovementDataPointer
pop hl
ld a, h
@ -1964,7 +1965,7 @@ FadeToMenu:: ; 2b29
xor a
ld [hBGMapMode], a
call LoadStandardMenuDataHeader
callba FadeBlackBGMap
callba FadeOutPalettes
call ClearSprites
call DisableSpriteUpdates
ret
@ -1972,7 +1973,7 @@ FadeToMenu:: ; 2b29
Function2b3c:: ; 2b3c
call WhiteBGMap
call ClearBGPalettes
call Function2bae
call UpdateSprites
call Call_ExitMenu
@ -1981,7 +1982,7 @@ Function2b3c:: ; 2b3c
; 2b4d
Function2b4d:: ; 2b4d
call WhiteBGMap
call ClearBGPalettes
call Call_ExitMenu
call Function2bae
call UpdateSprites
@ -1993,7 +1994,7 @@ Function2b5c:: ; 2b5c
call GetSGBLayout
callba Function49409
call Function3200
callba FadeInBGMap
callba FadeInPalettes
call EnableSpriteUpdates
ret
; 2b74
@ -2003,7 +2004,7 @@ Function2b74:: ; 0x2b74
push af
ld a, $1
ld [wc2ce], a
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
call Function2bae
hlcoord 0, 12

View File

@ -428,7 +428,8 @@ Function19b8:: ; 19b8
Function19e9:: ; 19e9
LoadMovementDataPointer:: ; 19e9
; Load the movement data pointer for person a.
ld [wMovementPerson], a
ld a, [hROMBank]
ld [wMovementDataPointer], a
@ -439,12 +440,15 @@ Function19e9:: ; 19e9
ld a, [wMovementPerson]
call CheckObjectVisibility
ret c
ld hl, OBJECT_MOVEMENTTYPE
add hl, bc
ld [hl], SPRITEMOVEDATA_SCRIPTED
ld hl, OBJECT_09
add hl, bc
ld [hl], 0
ld hl, VramState
set 7, [hl]
and a
@ -589,14 +593,15 @@ endr
; 1aae
Function1aae:: ; 1aae
; Switch to the movement data bank
ld a, [hROMBank]
push af
ld a, [hli]
rst Bankswitch
; Load the current script byte as given by OBJECT_MOVEMENT_BYTE_INDEX, and increment OBJECT_MOVEMENT_BYTE_INDEX
ld a, [hli]
ld d, [hl]
ld hl, OBJECT_27
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
add [hl]
ld e, a

View File

@ -6,7 +6,7 @@ Serial:: ; 6ef
push de
push hl
ld a, [$ffc9]
ld a, [hFFC9]
and a
jr nz, .asm_71c
@ -77,7 +77,7 @@ Serial:: ; 6ef
.asm_752
ld a, $1
ld [$ffca], a
ld [hFFCA], a
ld a, $fe
ld [hSerialSend], a
@ -91,7 +91,7 @@ Serial:: ; 6ef
Function75f:: ; 75f
ld a, $1
ld [$ffcc], a
ld [hFFCC], a
.asm_763
ld a, [hl]
ld [hSerialSend], a
@ -103,7 +103,7 @@ Function75f:: ; 75f
.asm_76e
dec a
jr nz, .asm_76e
ld a, [$ffcc]
ld a, [hFFCC]
and a
ld a, b
pop bc
@ -112,7 +112,7 @@ Function75f:: ; 75f
cp $fd
jr nz, .asm_763
xor a
ld [$ffcc], a
ld [hFFCC], a
jr .asm_763
.asm_782
@ -127,7 +127,7 @@ Function75f:: ; 75f
Function78a:: ; 78a
xor a
ld [$ffca], a
ld [hFFCA], a
ld a, [hLinkPlayerNumber]
cp $2
jr nz, .asm_79b
@ -137,7 +137,7 @@ Function78a:: ; 78a
ld [rSC], a
.asm_79b
ld a, [$ffca]
ld a, [hFFCA]
and a
jr nz, .asm_7e5
ld a, [hLinkPlayerNumber]
@ -182,7 +182,7 @@ Function78a:: ; 78a
.asm_7e5
xor a
ld [$ffca], a
ld [hFFCA], a
ld a, [rIE]
and $f
sub $8
@ -251,7 +251,7 @@ Function83b:: ; 83b
ld de, wcf51
ld c, $2
ld a, $1
ld [$ffcc], a
ld [hFFCC], a
.asm_847
call DelayFrame
ld a, [hl]
@ -259,10 +259,10 @@ Function83b:: ; 83b
call Function78a
ld b, a
inc hl
ld a, [$ffcc]
ld a, [hFFCC]
and a
ld a, $0
ld [$ffcc], a
ld [hFFCC], a
jr nz, .asm_847
ld a, b
ld [de], a

View File

@ -68,14 +68,18 @@ hPrintNum10 EQU $ffbc
hUsedSpriteIndex EQU $ffbd
hUsedSpriteTile EQU $ffbe
hFFBF EQU $ffbf
hFFC0 EQU $ffc0
hFFC1 EQU $ffc1
hFFC2 EQU $ffc2
hMoneyTemp EQU $ffc3
hLCDStatCustom EQU $ffc6
hFFC9 EQU $ffc9
hFFCA EQU $ffca
hLinkPlayerNumber EQU $ffcb
hFFCC EQU $ffcc
hSerialSend EQU $ffcd
hSerialReceive EQU $ffce

View File

@ -714,7 +714,7 @@ endr
and a
jr z, .toss
call WhiteBGMap
call ClearBGPalettes
call ClearTileMap
.toss
@ -1866,7 +1866,7 @@ UseItem_SelectMon: ; f1f9 (3:71f9)
push hl
push de
push bc
call WhiteBGMap
call ClearBGPalettes
call Functionf21c
pop bc
pop de

View File

@ -303,16 +303,44 @@ hide_person: macro
db movement_hide_person ; $3d
endm
enum movement_show_person
show_person: macro
db movement_show_person ; $3e
enum movement_step_sleep_1
step_sleep_1: macro
db movement_step_sleep_1 ; $3e
endm
__enum__ = $45
enum movement_step_sleep_2
step_sleep_2: macro
db movement_step_sleep_2 ; $3f
endm
enum movement_accelerate_last
accelerate_last: macro
db movement_accelerate_last ; $45
enum movement_step_sleep_3
step_sleep_3: macro
db movement_step_sleep_3 ; $40
endm
enum movement_step_sleep_4
step_sleep_4: macro
db movement_step_sleep_4 ; $41
endm
enum movement_step_sleep_5
step_sleep_5: macro
db movement_step_sleep_5 ; $42
endm
enum movement_step_sleep_6
step_sleep_6: macro
db movement_step_sleep_6 ; $43
endm
enum movement_step_sleep_7
step_sleep_7: macro
db movement_step_sleep_7 ; $44
endm
enum movement_step_sleep_8
step_sleep_8: macro
db movement_step_sleep_8 ; $45
endm
enum movement_step_sleep
@ -333,6 +361,11 @@ remove_person: macro
db movement_remove_person ; $49
endm
enum movement_step_loop
step_loop: macro
db movement_step_loop ; $4a
endm
__enum__ = $4c
enum movement_teleport_from
@ -362,9 +395,9 @@ fish_got_bite: macro
db movement_fish_got_bite ; $51
endm
enum movement_fish_got_bite_2
fish_got_bite_2: macro
db movement_fish_got_bite_2 ; $52
enum movement_fish_cast_rod
fish_cast_rod: macro
db movement_fish_cast_rod ; $52
endm
enum movement_hide_emote

11373
main.asm

File diff suppressed because it is too large Load Diff

View File

@ -31,7 +31,7 @@ Script_BattleRoomLoop: ; 0x9f425
keeptextopen
loadmovesprites
special BattleTowerBattle ; calls predef startbattle
special FadeBlackBGMap
special FadeOutPalettes
reloadmap
if_not_equal $0, Script_FailedBattleTowerChallenge
copybytetovar wNrOfBeatenBattleTowerTrainers ; wcf64
@ -46,10 +46,10 @@ Script_BattleRoomLoop: ; 0x9f425
closetext
loadmovesprites
playmusic MUSIC_HEAL
special FadeBlackBGMap
special FadeOutPalettes
special LoadMapPalettes
pause 60
special FadeInBGMap
special FadeInPalettes
special RestartMapMusic
loadfont
writetext Text_NextUpOpponentNo
@ -73,7 +73,7 @@ Script_DontBattleNextOpponent: ; 0x9f483
special BattleTowerAction
playsound SFX_SAVE
waitbutton
special FadeBlackBGMap
special FadeOutPalettes
special Reset
Script_DontSaveAndEndTheSession: ; 0x9f4a3
writetext Text_CancelYourBattleRoomChallenge
@ -84,7 +84,7 @@ Script_DontSaveAndEndTheSession: ; 0x9f4a3
writebyte BATTLE_TOWER_ACTION_06
special BattleTowerAction
loadmovesprites
special FadeBlackBGMap
special FadeOutPalettes
warpfacing UP, BATTLE_TOWER_1F, $7, $7
loadfont
jump UnknownScript_0x9e4b0

View File

@ -30,10 +30,10 @@ UnknownScript_0x19b0de:
writetext UnknownText_0x19b266
closetext
loadmovesprites
special FadeBlackBGMap
special FadeOutPalettes
playmusic MUSIC_HEAL
pause 60
special FadeInBGMap
special FadeInPalettes
special RestartMapMusic
loadfont
writetext UnknownText_0x19b296

View File

@ -176,8 +176,8 @@ MovementData_0x1884eb:
jump_step_up
db $38 ; movement
remove_fixed_facing
accelerate_last
accelerate_last
step_sleep_8
step_sleep_8
step_down
step_down
step_end

View File

@ -49,7 +49,7 @@ ColosseumScript_Initialize:
MapColosseumSignpost1Script:
special Special_Colosseum
newloadmap MAPSETUP_08
newloadmap MAPSETUP_LINKRETURN
end
ChrisScript_0x193499:

View File

@ -84,7 +84,7 @@ UnknownScript_0x99dc6:
follow PLAYER, $8
applymovement PLAYER, MovementData_0x99e5f
stopfollow
special FadeBlackBGMap
special FadeOutPalettes
playsound SFX_ENTER_DOOR
waitbutton
warp ECRUTEAK_CITY, $6, $1b

View File

@ -64,7 +64,7 @@ SailorScript_0x75160:
loadmovesprites
scall .LetThePlayerOut
playsound SFX_EXIT_BUILDING
special FadeBlackBGMap
special FadeOutPalettes
waitbutton
setevent EVENT_VERMILION_PORT_SAILOR_AT_GANGWAY
domaptrigger VERMILION_PORT, $1
@ -77,7 +77,7 @@ SailorScript_0x75160:
loadmovesprites
scall .LetThePlayerOut
playsound SFX_EXIT_BUILDING
special FadeBlackBGMap
special FadeOutPalettes
waitbutton
setevent EVENT_OLIVINE_PORT_SAILOR_AT_GANGWAY
domaptrigger OLIVINE_PORT, $1

View File

@ -35,7 +35,7 @@ OfficerScript_0x550ec:
writebyte $0
special Special_MagnetTrain
warpcheck
newloadmap MAPSETUP_09
newloadmap MAPSETUP_TRAIN
applymovement PLAYER, .MovementBoardTheTrain
wait $14
end

View File

@ -572,8 +572,8 @@ MovementData_0x6eed2:
big_step_down
fix_facing
jump_step_up
accelerate_last
accelerate_last
step_sleep_8
step_sleep_8
remove_fixed_facing
big_step_up
big_step_up
@ -664,8 +664,8 @@ MovementData_0x6ef23:
big_step_left
fix_facing
jump_step_right
accelerate_last
accelerate_last
step_sleep_8
step_sleep_8
remove_fixed_facing
big_step_left
big_step_left
@ -694,8 +694,8 @@ MovementData_0x6ef3d:
big_step_left
fix_facing
jump_step_right
accelerate_last
accelerate_last
step_sleep_8
step_sleep_8
remove_fixed_facing
big_step_right
big_step_right

View File

@ -154,7 +154,7 @@ TeleportGuyScript:
closetext
loadmovesprites
playsound SFX_WARP_TO
special FadeBlackBGMap
special FadeOutPalettes
waitbutton
warp NEW_BARK_TOWN, $d, $6
end

View File

@ -125,7 +125,7 @@ LanceScript_0x180e7b:
pause 30
loadmovesprites
applymovement $3, MovementData_0x180f5b
special FadeBlackBGMap
special FadeOutPalettes
pause 15
warpfacing UP, HALL_OF_FAME, $4, $d
end

View File

@ -35,11 +35,11 @@ MapMobileBattleRoomSignpost0Script:
writetext MobileBattleRoom_HealText
pause 20
loadmovesprites
special FadeBlackBGMap
special FadeOutPalettes
playmusic MUSIC_HEAL
special LoadMapPalettes
pause 60
special FadeInBGMap
special FadeInPalettes
special RestartMapMusic
refreshscreen $0
.two_:

View File

@ -42,9 +42,9 @@ UnknownScript_0x60bab:
loadmovesprites
special RestartMapMusic
cry AMPHAROS
special FadeBlackBGMap
special FadeOutPalettes
pause 10
special FadeInBGMap
special FadeInPalettes
loadfont
writetext UnknownText_0x60f3d
closetext
@ -116,10 +116,10 @@ UnknownScript_0x60c51:
cry AMPHAROS
closetext
loadmovesprites
special FadeBlackBGMap
special FadeInBGMap
special FadeBlackBGMap
special FadeInBGMap
special FadeOutPalettes
special FadeInPalettes
special FadeOutPalettes
special FadeInPalettes
end
ItemFragment_0x60c66:
@ -131,8 +131,8 @@ MovementData_0x60c68:
slow_step_right
slow_step_up
slow_step_up
accelerate_last
accelerate_last
step_sleep_8
step_sleep_8
step_end
MovementData_0x60c70:
@ -153,7 +153,7 @@ MovementData_0x60c79:
slow_step_up
slow_step_up
slow_step_up
accelerate_last
step_sleep_8
step_end
UnknownText_0x60c81:

View File

@ -39,7 +39,7 @@ SailorScript_0x748c0:
waitbutton
applymovement PLAYER, MovementData_0x74a30
playsound SFX_EXIT_BUILDING
special FadeBlackBGMap
special FadeOutPalettes
waitbutton
checkevent EVENT_FAST_SHIP_FIRST_TIME
iffalse UnknownScript_0x7490a

View File

@ -75,7 +75,7 @@ Route35NationalParkgate_GoBackIn:
loadmovesprites
scall Route35NationalParkgate_EnterContest
playsound SFX_ENTER_DOOR
special FadeBlackBGMap
special FadeOutPalettes
waitbutton
warpfacing UP, NATIONAL_PARK_BUG_CONTEST, $a, $2f
end
@ -112,7 +112,7 @@ Route35NationalParkgate_OkayToProceed:
special Special_GiveParkBalls
scall Route35NationalParkgate_EnterContest
playsound SFX_ENTER_DOOR
special FadeBlackBGMap
special FadeOutPalettes
waitbutton
special Special_SelectRandomBugContestContestants
warpfacing UP, NATIONAL_PARK_BUG_CONTEST, $a, $2f

View File

@ -83,7 +83,7 @@ Route36NationalParkgate_MapScriptHeader:
loadmovesprites
spriteface PLAYER, LEFT
playsound SFX_EXIT_BUILDING
special FadeBlackBGMap
special FadeOutPalettes
waitbutton
warpfacing LEFT, NATIONAL_PARK_BUG_CONTEST, $21, $12
end
@ -166,7 +166,7 @@ Route36OfficerScriptContest:
special Special_GiveParkBalls
spriteface PLAYER, LEFT
playsound SFX_EXIT_BUILDING
special FadeBlackBGMap
special FadeOutPalettes
waitbutton
special Special_SelectRandomBugContestContestants
warpfacing LEFT, NATIONAL_PARK_BUG_CONTEST, $21, $12

View File

@ -35,7 +35,7 @@ OfficerScript_0x18a81e:
writebyte $1
special Special_MagnetTrain
warpcheck
newloadmap MAPSETUP_09
newloadmap MAPSETUP_TRAIN
applymovement PLAYER, .MovementBoardTheTrain
wait $14
end

View File

@ -56,7 +56,7 @@ GruntM1Script:
clearevent EVENT_AZALEA_TOWN_SLOWPOKES
clearevent EVENT_KURTS_HOUSE_SLOWPOKE
clearevent EVENT_KURTS_HOUSE_KURT_1
special FadeBlackBGMap
special FadeOutPalettes
special HealParty
pause 15
warp KURTS_HOUSE, $3, $3
@ -121,15 +121,15 @@ KurtSlowpokeWellVictoryMovementData:
step_left
step_left
step_up
accelerate_last
accelerate_last
accelerate_last
step_sleep_8
step_sleep_8
step_sleep_8
step_left
step_up
step_up
accelerate_last
accelerate_last
accelerate_last
step_sleep_8
step_sleep_8
step_sleep_8
turn_head_left
step_end

View File

@ -445,9 +445,9 @@ ExplodingTrap22:
end
VoltorbExplodingTrap:
special FadeBlackBGMap
special FadeOutPalettes
cry VOLTORB
special FadeInBGMap
special FadeInPalettes
setlasttalked $ff
writecode VAR_BATTLETYPE, BATTLETYPE_TRAP
loadpokedata VOLTORB, 23
@ -455,9 +455,9 @@ VoltorbExplodingTrap:
end
GeodudeExplodingTrap:
special FadeBlackBGMap
special FadeOutPalettes
cry GEODUDE
special FadeInBGMap
special FadeInPalettes
setlasttalked $ff
writecode VAR_BATTLETYPE, BATTLETYPE_TRAP
loadpokedata GEODUDE, 21
@ -465,9 +465,9 @@ GeodudeExplodingTrap:
end
KoffingExplodingTrap:
special FadeBlackBGMap
special FadeOutPalettes
cry KOFFING
special FadeInBGMap
special FadeInPalettes
setlasttalked $ff
writecode VAR_BATTLETYPE, BATTLETYPE_TRAP
loadpokedata KOFFING, 21

View File

@ -155,11 +155,11 @@ UnknownScript_0x6d091:
writetext UnknownText_0x6da97
closetext
loadmovesprites
special FadeBlackBGMap
special FadeOutPalettes
special Mobile_HealParty
playsound SFX_FULL_HEAL
special HealParty
special FadeInBGMap
special FadeInPalettes
loadfont
writetext UnknownText_0x6daf7
closetext
@ -449,17 +449,17 @@ MovementData_0x6d254:
step_end
MovementData_0x6d258:
accelerate_last
step_sleep_8
step_left
step_left
turn_head_up
accelerate_last
step_sleep_8
step_right
step_right
step_right
step_right
turn_head_up
accelerate_last
step_sleep_8
step_left
step_left
turn_head_down

View File

@ -254,8 +254,8 @@ MovementData_0x6e147:
fix_facing
fast_jump_step_left
remove_fixed_facing
accelerate_last
accelerate_last
step_sleep_8
step_sleep_8
slow_step_right
big_step_down
big_step_down

View File

@ -39,7 +39,7 @@ TimeCapsule_Initialize:
MapTimeCapsuleSignpost1Script:
special Special_TimeCapsule
newloadmap MAPSETUP_08
newloadmap MAPSETUP_LINKRETURN
end
ChrisScript_0x19351a:

View File

@ -39,7 +39,7 @@ TradeCenter_Initialize:
MapTradeCenterSignpost1Script:
special Special_TradeCenter
newloadmap MAPSETUP_08
newloadmap MAPSETUP_LINKRETURN
end
ChrisScript_0x19340b:

View File

@ -51,7 +51,7 @@ SailorScript_0x74dc4:
waitbutton
applymovement PLAYER, MovementData_0x74ef1
playsound SFX_EXIT_BUILDING
special FadeBlackBGMap
special FadeOutPalettes
waitbutton
setevent EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
clearevent EVENT_FAST_SHIP_PASSENGERS_WESTBOUND

View File

@ -226,10 +226,10 @@ OlderHaircutBrotherScript:
writetext UnknownText_0x7c6b8
closetext
loadmovesprites
special FadeBlackBGMap
special FadeOutPalettes
playmusic MUSIC_HEAL
pause 60
special FadeInBGMap
special FadeInPalettes
special RestartMapMusic
loadfont
writetext UnknownText_0x7c6d8
@ -309,10 +309,10 @@ YoungerHaircutBrotherScript:
writetext UnknownText_0x7c80e
closetext
loadmovesprites
special FadeBlackBGMap
special FadeOutPalettes
playmusic MUSIC_HEAL
pause 60
special FadeInBGMap
special FadeInPalettes
special RestartMapMusic
loadfont
writetext UnknownText_0x7c82a

View File

@ -371,7 +371,7 @@ Function11c1ca: ; 11c1ca
ld a, [MenuSelection2]
dec a
call Function11c254
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
call ClearScreen
call Function11d323

View File

@ -1801,7 +1801,7 @@ Function89b07: ; 89b07
; 89b14
Function89b14: ; 89b14
call WhiteBGMap
call ClearBGPalettes
call Function89b07
call Function89b00
ret
@ -1814,7 +1814,7 @@ Function89b1e: ; 89b1e (22:5b1e)
Function89b28: ; 89b28 (22:5b28)
call Function891de
call WhiteBGMap
call ClearBGPalettes
call Function893e2
call Call_ExitMenu
call Function891ab
@ -2414,7 +2414,7 @@ Function89eb9: ; 89eb9 (22:5eb9)
jp Function89e36
Function89ee1: ; 89ee1 (22:5ee1)
call WhiteBGMap
call ClearBGPalettes
call Function893e2
call Function8923c
callba Function4a3a7
@ -2602,7 +2602,7 @@ Function89fed: ; 89fed (22:5fed)
Function89ff6: ; 89ff6 (22:5ff6)
call Function891fe
call WhiteBGMap
call ClearBGPalettes
call Function893cc
call Function89807
call Function89492
@ -2937,14 +2937,14 @@ Function8a241: ; 8a241 (22:6241)
ret
.asm_8a254
call Function891de
call WhiteBGMap
call ClearBGPalettes
call Call_ExitMenu
call Function891de
and a
ret
Function8a262: ; 8a262 (22:6262)
call WhiteBGMap
call ClearBGPalettes
call Function893e2
call Function8923c
callba Function4a3a7
@ -3501,7 +3501,7 @@ Jumptable_8a671: ; 8a671 (22:6671)
Function8a679: ; 8a679 (22:6679)
call Function891de
call WhiteBGMap
call ClearBGPalettes
call Function893cc
call OpenSRAMBank4
call Function8931b
@ -3546,7 +3546,7 @@ Function8a6c5: ; 8a6c5 (22:66c5)
Function8a6cd: ; 8a6cd (22:66cd)
call Function891de
call WhiteBGMap
call ClearBGPalettes
call Function893cc
call OpenSRAMBank4
call Function8931b
@ -3594,7 +3594,7 @@ Function8a6cd: ; 8a6cd (22:66cd)
.asm_8a73f
call CloseSRAM
.asm_8a742
call WhiteBGMap
call ClearBGPalettes
call Function89448
call Function891d3
call Function8b677
@ -3657,7 +3657,7 @@ Function8a78c: ; 8a78c (22:678c)
call DelayFrame
call JoyTextDelay
call Function891de
call WhiteBGMap
call ClearBGPalettes
call Function893cc
call OpenSRAMBank4
pop bc
@ -3687,7 +3687,7 @@ Function8a7cb: ; 8a7cb (22:67cb)
pop af
ld [MenuSelection], a
call Function891de
call WhiteBGMap
call ClearBGPalettes
call Function893cc
call OpenSRAMBank4
call Function8931b
@ -3781,7 +3781,7 @@ Function8a8a1: ; 8a8a1 (22:68a1)
Function8a8c3: ; 8a8c3 (22:68c3)
call Function891de
call WhiteBGMap
call ClearBGPalettes
call Function893cc
call OpenSRAMBank4
call Function8931b
@ -3969,7 +3969,7 @@ Function8aa0a: ; 8aa0a (22:6a0a)
call Function89381
call CloseSRAM
call Function891fe
call WhiteBGMap
call ClearBGPalettes
call Function893cc
call Function89807
call Function89492
@ -4027,7 +4027,7 @@ Function8aa73: ; 8aa73 (22:6a73)
call Function89193
.asm_8aa9d
call Function891fe
call WhiteBGMap
call ClearBGPalettes
call Function893cc
call Function89807
call Function89492
@ -4101,7 +4101,7 @@ Function8ab11: ; 8ab11 (22:6b11)
Function8ab3b: ; 8ab3b (22:6b3b)
call Function891fe
call WhiteBGMap
call ClearBGPalettes
call Function893cc
call Function89807
call Function89492
@ -4140,7 +4140,7 @@ Function8ab77: ; 8ab77 (22:6b77)
ret
Function8ab93: ; 8ab93 (22:6b93)
call WhiteBGMap
call ClearBGPalettes
call LoadStandardMenuDataHeader
callba Function105688
call ClearSprites
@ -4183,7 +4183,7 @@ Function8aba9: ; 8aba9
call PlayClickSFX
.asm_8abe5
call Function891de
call WhiteBGMap
call ClearBGPalettes
call Function893cc
call OpenSRAMBank4
call Function8931b
@ -4228,7 +4228,7 @@ Function8ac4e: ; 8ac4e
ld [MenuSelection], a
push de
call Function891de
call WhiteBGMap
call ClearBGPalettes
call Function893cc
pop bc
call Function89844
@ -4337,7 +4337,7 @@ Function8ad0b: ; 8ad0b
ld a, [MenuSelection]
ld [wd02f], a
call Function891de
call WhiteBGMap
call ClearBGPalettes
call Function893cc
call OpenSRAMBank4
call Function8931b

View File

@ -574,7 +574,7 @@ Function8b664: ; 8b664 (22:7664)
ret
Function8b677: ; 8b677
call WhiteBGMap
call ClearBGPalettes
call DisableLCD
call Function8b690
call Function8b6bb

View File

@ -48,7 +48,7 @@ Function100022: ; 100022
Function100057: ; 100057
call Function1000a4
call Function222a
call ReturnToMapFromSubmenu
ld hl, VramState
res 1, [hl]
ret
@ -74,7 +74,7 @@ Function100063: ; 100063
Function100082: ; 100082
xor a
ld hl, OverworldMap
ld bc, 1300
ld bc, OverworldMapEnd - OverworldMap
call ByteFill
di
call DoubleSpeed
@ -312,7 +312,7 @@ Function10016f: ; 10016f
Function10020b: ; 10020b
xor a
ld [wc303], a
callba FadeBlackBGMap
callba FadeOutPalettes
callba Function106464
call HideSprites
call DelayFrame
@ -412,7 +412,7 @@ Function1002c9: ; 1002c9
; 1002dc
Function1002dc: ; 1002dc
ld a, MAPSETUP_08
ld a, MAPSETUP_LINKRETURN
ld [hMapEntryMethod], a
callba RunMapSetupScript
xor a
@ -3048,7 +3048,7 @@ Function10138b: ; 10138b
; 1013aa
Function1013aa: ; 1013aa
call WhiteBGMap
call ClearBGPalettes
call Call_ExitMenu
call Function2bae
callba Function106464

View File

@ -951,7 +951,7 @@ Function106442: ; 106442
call Function3e32
xor a
ld [hMobile], a
ld [$ffc9], a
ld [hFFC9], a
ld a, [wcd25]
inc a
ld [wcd25], a

View File

@ -125,7 +125,7 @@ Function108089: ; 108089
Function1080b7: ; 1080b7
xor a
ld [wJumptableIndex], a
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD
@ -188,7 +188,7 @@ Function1080b7: ; 1080b7
Function108157: ; 108157
xor a
ld [wJumptableIndex], a
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD
@ -508,7 +508,7 @@ Function10830e: ; 10830e
; 10839b
Function10839b: ; 10839b
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD
@ -643,7 +643,7 @@ Function10842c: ; 10842c
; 1084d7
Function1084d7: ; 1084d7
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD
@ -712,7 +712,7 @@ Function1084d7: ; 1084d7
; 108589
Function108589: ; 108589
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD
@ -781,7 +781,7 @@ Function108589: ; 108589
Function108638: ; 108638
callba Function8d03d
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
call ClearTileMap
xor a
@ -817,7 +817,7 @@ Function108638: ; 108638
Function108689: ; 108689
callba Function8d03d
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
call ClearTileMap
xor a
@ -862,7 +862,7 @@ Function108689: ; 108689
; 1086f4
Function1086f4: ; 1086f4
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
call ClearTileMap
xor a
@ -1162,7 +1162,7 @@ Function108919: ; 108919
ld c, $28
call Function1082cc
callba Function8d03d
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD

View File

@ -7708,7 +7708,7 @@ Function117699: ; 117699 (45:7699)
ld hl, wc708
ld bc, $11
call ByteFill
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
callba Function171c87
callba Function104061
@ -7726,7 +7726,7 @@ Function1176ee: ; 1176ee (45:76ee)
jr Function1176ee
.asm_117709
callba Function8cf53
call WhiteBGMap
call ClearBGPalettes
call ClearScreen
call ClearSprites
ret
@ -8172,7 +8172,7 @@ Function117a94: ; 0x117a94
ld [wcf64], a
ld [wcf65], a
ld [wcf66], a
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
callba Function172e78
callba Function104000
@ -8180,7 +8180,7 @@ Function117a94: ; 0x117a94
; 0x117ab4
Function117ab4: ; 0x117ab4
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
callba Function172e78
callba Function172eb9
@ -8197,7 +8197,7 @@ Function117acd: ; 0x117acd
callba Function104000
jr Function117acd
.asm_117ae2
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
ret

View File

@ -43,7 +43,7 @@ asm_11800b
pop af
ld [rSVBK], a
call Function118452
call Function222a
call ReturnToMapFromSubmenu
Function11805e: ; 11805e (46:405e)
ret
; 11805f
@ -84,7 +84,7 @@ Function11805f: ; 11805f
pop af
ld [rSVBK], a
call Function118452
call Function222a
call ReturnToMapFromSubmenu
ret
; 1180b8
@ -130,7 +130,7 @@ Function1180b8: ; 1180b8
pop af
ld [rSVBK], a
call Function118452
call Function222a
call ReturnToMapFromSubmenu
ret
; 11811a
@ -180,7 +180,7 @@ Function118125: ; 118125
ld [rSVBK], a
call Function118452
call Function118180
call Function222a
call ReturnToMapFromSubmenu
ret
; 118180
@ -262,7 +262,7 @@ Function1181da: ; 1181da
pop af
ld [rSVBK], a
call Function118452
call Function222a
call ReturnToMapFromSubmenu
ret
; 118233
@ -374,7 +374,7 @@ Function1182d5: ; 1182d5
pop af
ld [rSVBK], a
call Function118452
call Function222a
call ReturnToMapFromSubmenu
ret
; 118329
@ -482,7 +482,7 @@ Function1183cb: ; 1183cb
ld a, $f
ld [rIE], a
ld a, $1
ld [$ffc9], a
ld [hFFC9], a
ld [hMobile], a
ei
callba Function106462
@ -512,7 +512,7 @@ Function118440: ; 118440
Function118452: ; 118452
di
xor a
ld [$ffc9], a
ld [hFFC9], a
ld [hMobile], a
ld [hVBlank], a
call NormalSpeed
@ -5682,7 +5682,7 @@ Function11a9c0: ; 11a9c0
; 11a9ce
Function11a9ce: ; 11a9ce
call WhiteBGMap
call ClearBGPalettes
call Function2bae
call Call_ExitMenu
callba Function106462
@ -5950,7 +5950,7 @@ Function11acb7: ; 11acb7
; 11ad1b
Function11ad1b: ; 11ad1b
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
call ClearTileMap
callba Function17c000

View File

@ -140,7 +140,7 @@ Function16c0dc: ; 16c0dc
; 16c0ec
Function16c0ec: ; 16c0ec
call WhiteBGMap
call ClearBGPalettes
call ClearScreen
push af
ld a, $ff
@ -885,7 +885,7 @@ Function16d42e: ; 16d42e
Function16d43b: ; 16d43b
call LoadStandardMenuDataHeader
call WhiteBGMap
call ClearBGPalettes
call ClearTileMap
call ClearSprites
callba Function16d421

View File

@ -283,7 +283,7 @@ Function1704e1: ; 1704e1
; 1704f1
Function1704f1: ; 1704f1
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
call ClearScreen
.asm_1704fa
@ -1590,7 +1590,7 @@ Function1719ed: ; 1719ed (5c:59ed)
ld [wcd4a], a
dec a
ld [wcd4b], a
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
callba Function171d2b
callba Function104061
@ -1883,7 +1883,7 @@ Function171c2c: ; 171c2c (5c:5c2c)
dec [hl]
ret nz
call ExitMenu
call WhiteBGMap
call ClearBGPalettes
jr asm_171c60
Function171c39: ; 171c39 (5c:5c39)
@ -1895,7 +1895,7 @@ Function171c41: ; 171c41 (5c:5c41)
ld hl, wcd4c
dec [hl]
ret nz
call WhiteBGMap
call ClearBGPalettes
callba Function106462
callba Function106464
ld a, $2

View File

@ -561,7 +561,7 @@ Function17d2ce: ; 17d2ce
ld a, d
ld [MusicFadeIDHi], a
call PlayMusic
call Function222a
call ReturnToMapFromSubmenu
call Function2b3c
ret
; 17d314
@ -626,7 +626,7 @@ Function17d370: ; 17d370
ld [wcd79], a
dec a
ld [wcd6c], a
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
call ClearScreen
callba Function104061
@ -672,7 +672,7 @@ Function17d370: ; 17d370
; 17d3f6
Function17d3f6: ; 17d3f6
call WhiteBGMap
call ClearBGPalettes
call ClearSprites
call ClearScreen
callba Function104061
@ -1245,7 +1245,7 @@ Function17d78d: ; 17d78d
call CloseSRAM
xor a
ld [wcd77], a
call WhiteBGMap
call ClearBGPalettes
ret
; 17d7b4

View File

@ -3,7 +3,7 @@ SECTION "bank43", ROMX, BANK[$43]
UnusedTitleScreen: ; 10c000
call WhiteBGMap
call ClearBGPalettes
call ClearTileMap
call DisableLCD
xor a

View File

@ -321,10 +321,10 @@ ScriptVar:: ; c2dd
wc2de:: ds 1
wc2df:: ds 3
wMovementPerson:: ds 1
wMovementDataPointer:: ds 3
wMovementDataPointer:: ds 3 ; dba
wc2e6:: ds 4
wc2ea:: ds 1
wMovementPointer:: ds 2
wMovementPointer:: ds 2 ; c2eb
ds 3
wc2f0:: ds 1
wc2f1:: ds 1
@ -334,7 +334,8 @@ wc2f4:: ds 1
wc2f5:: ds 1
wc2f6:: ds 1
wc2f7:: ds 1
wc2f8:: ds 2
wc2f8:: ds 1
ds 1
TileDown:: ; c2fa
ds 1
@ -1478,6 +1479,10 @@ wd014:: ds 2
wd016:: ds 1
wMartItem8BCD::
wd017:: ds 1
wd018_Mon:: party_struct wd018_Mon
ds wd018_Mon - @
wd018:: ds 1
wd019:: ds 1
wMartItem9BCD::
@ -1506,6 +1511,7 @@ CurFruitTree::
CurInput::
EngineBuffer1:: ; d03e
ds 1
wd03f::
wJumpStdScriptBuffer::
CurFruit:: ; d03f
@ -2153,7 +2159,7 @@ object_struct: MACRO
\1Palette:: ds 1
\1Walking:: ds 1
\1Direction:: ds 1
ds 1
\1Object09:: ds 1
\1StepDuration:: ds 1
\1Action:: ds 1
\1Object12:: ds 1