summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rw-r--r--engine/battle_start.asm2
-rw-r--r--engine/color.asm6
-rwxr-xr-xengine/crystal_intro.asm40
-rwxr-xr-xengine/decorations.asm1
-rwxr-xr-xengine/evolution_animation.asm6
-rwxr-xr-xengine/intro_menu.asm1427
-rwxr-xr-xengine/link.asm10
-rwxr-xr-xengine/main_menu.asm6
-rw-r--r--engine/map_setup.asm12
-rw-r--r--engine/phone.asm4
-rwxr-xr-xengine/pokegear.asm10
-rw-r--r--engine/save.asm6
-rwxr-xr-xengine/slot_machine.asm2
-rw-r--r--engine/specials.asm10
-rwxr-xr-xengine/time_capsule/conversion.asm2
-rw-r--r--engine/timeofdaypals.asm6
-rwxr-xr-xengine/timeset.asm4
-rw-r--r--engine/title.asm54
18 files changed, 1518 insertions, 90 deletions
diff --git a/engine/battle_start.asm b/engine/battle_start.asm
index 5bcaad99c..2b32e41b9 100644
--- a/engine/battle_start.asm
+++ b/engine/battle_start.asm
@@ -84,7 +84,7 @@ endr
Function8c2a0: ; 8c2a0
call LoadTrainerBattlePokeballTiles
- ld hl, VBGMap0
+ hlbgcoord 0, 0
call Function8c2cf
ret
; 8c2aa
diff --git a/engine/color.asm b/engine/color.asm
index c44b296d4..bf428f51c 100644
--- a/engine/color.asm
+++ b/engine/color.asm
@@ -319,7 +319,7 @@ Function8bec: ; 8bec
ld a, [EnemySafeguardCount]
and $3
call FillBoxCGB
- call LoadDETile
+ call LoadEDTile
ret
; 8c1d
@@ -702,7 +702,7 @@ Function96b3: ; 96b3
.asm_96d0
hlcoord 0, 0, AttrMap
- ld de, VBGMap0
+ debgcoord 0, 0
ld b, $12
ld a, $1
ld [rVBK], a
@@ -1293,7 +1293,7 @@ ClearBytes: ; 0x9a5b
DrawDefaultTiles: ; 0x9a64
; Draw 240 tiles (2/3 of the screen) from tiles in VRAM
- ld hl, VBGMap0 ; BG Map 0
+ hlbgcoord 0, 0 ; BG Map 0
ld de, 32 - 20
ld a, $80 ; starting tile
ld c, 12 + 1
diff --git a/engine/crystal_intro.asm b/engine/crystal_intro.asm
index 7849a9f48..0ed427de4 100755
--- a/engine/crystal_intro.asm
+++ b/engine/crystal_intro.asm
@@ -506,7 +506,7 @@ IntroScene1: ; e495b (39:495b)
ld a, $1
ld [rVBK], a
ld hl, IntroTilemap001
- ld de, VBGMap0 tile $00
+ debgcoord 0, 0
call Functione54fa
ld a, $0
ld [rVBK], a
@@ -517,7 +517,7 @@ IntroScene1: ; e495b (39:495b)
ld de, VTiles0 tile $00
call Functione54c2
ld hl, IntroTilemap002
- ld de, VBGMap0 tile $00
+ debgcoord 0, 0
call Functione54fa
ld a, [rSVBK]
push af
@@ -582,7 +582,7 @@ IntroScene3: ; e49fd (39:49fd)
ld a, $1
ld [rVBK], a
ld hl, IntroTilemap003
- ld de, VBGMap0 tile $00
+ debgcoord 0, 0
call Functione54fa
ld a, $0
ld [rVBK], a
@@ -590,7 +590,7 @@ IntroScene3: ; e49fd (39:49fd)
ld de, VTiles2 tile $00
call Functione54c2
ld hl, IntroTilemap004
- ld de, VBGMap0 tile $00
+ debgcoord 0, 0
call Functione54fa
ld a, [rSVBK]
push af
@@ -644,7 +644,7 @@ IntroScene5: ; e4a7a (39:4a7a)
ld a, $1
ld [rVBK], a
ld hl, IntroTilemap005
- ld de, VBGMap0 tile $00
+ debgcoord 0, 0
call Functione54fa
ld a, $0
ld [rVBK], a
@@ -655,7 +655,7 @@ IntroScene5: ; e4a7a (39:4a7a)
ld de, VTiles0 tile $00
call Functione54c2
ld hl, IntroTilemap006
- ld de, VBGMap0 tile $00
+ debgcoord 0, 0
call Functione54fa
ld a, [rSVBK]
push af
@@ -738,7 +738,7 @@ IntroScene7: ; e4b3f (39:4b3f)
ld a, $1
ld [rVBK], a
ld hl, IntroTilemap003
- ld de, VBGMap0 tile $00
+ debgcoord 0, 0
call Functione54fa
ld hl, IntroPichuWooperGFX
ld de, VTiles0 tile $00
@@ -752,7 +752,7 @@ IntroScene7: ; e4b3f (39:4b3f)
ld de, VTiles2 tile $00
call Functione54c2
ld hl, IntroTilemap004
- ld de, VBGMap0 tile $00
+ debgcoord 0, 0
call Functione54fa
ld a, [rSVBK]
push af
@@ -894,7 +894,7 @@ IntroScene11: ; e4c86 (39:4c86)
ld a, $1
ld [rVBK], a
ld hl, IntroTilemap007
- ld de, VBGMap0 tile $00
+ debgcoord 0, 0
call Functione54fa
ld a, $0
ld [rVBK], a
@@ -902,7 +902,7 @@ IntroScene11: ; e4c86 (39:4c86)
ld de, VTiles2 tile $00
call Functione54c2
ld hl, IntroTilemap008
- ld de, VBGMap0 tile $00
+ debgcoord 0, 0
call Functione54fa
ld a, [rSVBK]
push af
@@ -1016,7 +1016,7 @@ IntroScene13: ; e4d6d (39:4d6d)
ld a, $1
ld [rVBK], a
ld hl, IntroTilemap003
- ld de, VBGMap0 tile $00
+ debgcoord 0, 0
call Functione54fa
ld a, $0
ld [rVBK], a
@@ -1027,7 +1027,7 @@ IntroScene13: ; e4d6d (39:4d6d)
ld de, VTiles2 tile $00
call Functione54c2
ld hl, IntroTilemap004
- ld de, VBGMap0 tile $00
+ debgcoord 0, 0
call Functione54fa
ld a, [rSVBK]
push af
@@ -1120,7 +1120,7 @@ IntroScene15: ; e4e40 (39:4e40)
ld a, $1
ld [rVBK], a
ld hl, IntroTilemap009
- ld de, VBGMap0 tile $00
+ debgcoord 0, 0
call Functione54fa
ld a, $0
ld [rVBK], a
@@ -1135,7 +1135,7 @@ IntroScene15: ; e4e40 (39:4e40)
lb bc, BANK(GFX_e7a5d), 1
call Request2bpp
ld hl, IntroTilemap010
- ld de, VBGMap0 tile $00
+ debgcoord 0, 0
call Functione54fa
call Functione541b
ld a, [rSVBK]
@@ -1202,7 +1202,7 @@ IntroScene17: ; e4ef5 (39:4ef5)
ld a, $1
ld [rVBK], a
ld hl, IntroTilemap011
- ld de, VBGMap0 tile $00
+ debgcoord 0, 0
call Functione54fa
ld a, $0
ld [rVBK], a
@@ -1210,7 +1210,7 @@ IntroScene17: ; e4ef5 (39:4ef5)
ld de, VTiles1 tile $00
call Functione54de
ld hl, IntroTilemap012
- ld de, VBGMap0 tile $00
+ debgcoord 0, 0
call Functione54fa
ld a, [rSVBK]
push af
@@ -1268,7 +1268,7 @@ IntroScene19: ; e4f7e (39:4f7e)
ld a, $1
ld [rVBK], a
ld hl, IntroTilemap013
- ld de, VBGMap0 tile $00
+ debgcoord 0, 0
call Functione54fa
ld a, $0
ld [rVBK], a
@@ -1283,7 +1283,7 @@ IntroScene19: ; e4f7e (39:4f7e)
lb bc, BANK(GFX_e7a5d), 1
call Request2bpp
ld hl, IntroTilemap014
- ld de, VBGMap0 tile $00
+ debgcoord 0, 0
call Functione54fa
call Functione541b
ld a, [rSVBK]
@@ -1444,7 +1444,7 @@ IntroScene26: ; e50bb (39:50bb)
ld a, $1
ld [rVBK], a
ld hl, IntroTilemap015
- ld de, VBGMap0 tile $00
+ debgcoord 0, 0
call Functione54fa
ld a, $0
ld [rVBK], a
@@ -1452,7 +1452,7 @@ IntroScene26: ; e50bb (39:50bb)
ld de, VTiles2 tile $00
call Functione54c2
ld hl, IntroTilemap017
- ld de, VBGMap0 tile $00
+ debgcoord 0, 0
call Functione54fa
ld a, [rSVBK]
push af
diff --git a/engine/decorations.asm b/engine/decorations.asm
index a46d359a5..519f88d7c 100755
--- a/engine/decorations.asm
+++ b/engine/decorations.asm
@@ -1195,6 +1195,7 @@ DecorationIDs: ; 26f2b
db DECO_BIG_SNORLAX_DOLL ; 1a
db DECO_BIG_ONIX_DOLL ; 1b
db DECO_BIG_LAPRAS_DOLL ; 1c
+Trophys:
db DECO_GOLD_TROPHY_DOLL ; 33
db DECO_SILVER_TROPHY_DOLL ; 34
db -1
diff --git a/engine/evolution_animation.asm b/engine/evolution_animation.asm
index ce7dbd7f5..8e0a4af6d 100755
--- a/engine/evolution_animation.asm
+++ b/engine/evolution_animation.asm
@@ -378,7 +378,7 @@ Function4e881: ; 4e881
call DisableLCD
call LoadStandardFont
call LoadFontsBattleExtra
- ld hl, VBGMap0
+ hlbgcoord 0, 0
ld bc, VBGMap1 - VBGMap0
ld a, " "
call ByteFill
@@ -411,7 +411,7 @@ Function4e8c2: ; 4e8c2
call DisableLCD
call LoadStandardFont
call LoadFontsBattleExtra
- ld hl, VBGMap0
+ hlbgcoord 0, 0
ld bc, VBGMap1 - VBGMap0
ld a, " "
call ByteFill
@@ -446,7 +446,7 @@ Function4e906: ; 4e906
ld bc, w6_d400 - w6_d000
ld a, " "
call ByteFill
- ld hl, VBGMap0
+ hlbgcoord 0, 0
ld de, w6_d000
ld b, $0
ld c, $40
diff --git a/engine/intro_menu.asm b/engine/intro_menu.asm
new file mode 100755
index 000000000..cf5bcf8a0
--- /dev/null
+++ b/engine/intro_menu.asm
@@ -0,0 +1,1427 @@
+_MainMenu: ; 5ae8
+ ld de, MUSIC_NONE
+ call PlayMusic
+ call DelayFrame
+ ld de, MUSIC_MAIN_MENU
+ ld a, e
+ ld [wMapMusic], a
+ call PlayMusic
+ callba MainMenu
+ jp Function6219
+; 5b04
+
+; unreferenced
+ ret
+; 5b05
+
+PrintDayOfWeek: ; 5b05
+ push de
+ ld hl, .Days
+ ld a, b
+ call GetNthString
+ ld d, h
+ ld e, l
+ pop hl
+ call PlaceString
+ ld h, b
+ ld l, c
+ ld de, .Day
+ call PlaceString
+ ret
+; 5b1c
+
+.Days ; 5b1c
+ db "SUN@"
+ db "MON@"
+ db "TUES@"
+ db "WEDNES@"
+ db "THURS@"
+ db "FRI@"
+ db "SATUR@"
+; 5b40
+
+.Day ; 5b40
+ db "DAY@"
+; 5b44
+
+NewGame_ClearTileMapEtc: ; 5b44
+ xor a
+ ld [hMapAnims], a
+ call ClearTileMap
+ call LoadFontsExtra
+ call LoadStandardFont
+ call ResetTextRelatedRAM
+ ret
+; 5b54
+
+MysteryGift: ; 5b54
+ call UpdateTime
+ callba DoMysteryGiftIfDayHasPassed
+ callba DoMysteryGift
+ ret
+; 5b64
+
+OptionsMenu: ; 5b64
+ callba _OptionsMenu
+ ret
+; 5b6b
+
+NewGame: ; 5b6b
+ xor a
+ ld [wc2cc], a
+ call ResetWRAM
+ call NewGame_ClearTileMapEtc
+ call AreYouABoyOrAreYouAGirl
+ call OakSpeech
+ call InitializeWorld
+ ld a, 1
+ ld [wPreviousLandmark], a
+
+ ld a, SPAWN_HOME
+ ld [DefaultSpawnpoint], a
+
+ ld a, MAPSETUP_WARP
+ ld [hMapEntryMethod], a
+ jp FinishContinueFunction
+; 5b8f
+
+AreYouABoyOrAreYouAGirl: ; 5b8f
+ callba Function10632f ; some mobile stuff
+ jr c, .ok
+ callba InitGender
+ ret
+
+.ok
+ ld c, 0
+ callba InitMobileProfile ; mobile
+ ret
+; 5ba7
+
+ResetWRAM: ; 5ba7
+ xor a
+ ld [hBGMapMode], a
+ call _ResetWRAM
+ ret
+; 5bae
+
+_ResetWRAM: ; 5bae
+
+ ld hl, Sprites
+ ld bc, Options - Sprites
+ xor a
+ call ByteFill
+
+ ld hl, wd000
+ ld bc, wGameData - wd000
+ xor a
+ call ByteFill
+
+ ld hl, wGameData
+ ld bc, wGameDataEnd - wGameData
+ xor a
+ call ByteFill
+
+ ld a, [rLY]
+ ld [hSecondsBackup], a
+ call DelayFrame
+ ld a, [hRandomSub]
+ ld [PlayerID], a
+
+ ld a, [rLY]
+ ld [hSecondsBackup], a
+ call DelayFrame
+ ld a, [hRandomAdd]
+ ld [PlayerID + 1], a
+
+ call Random
+ ld [wSecretID], a
+ call DelayFrame
+ call Random
+ ld [wSecretID + 1], a
+
+ ld hl, PartyCount
+ call InitList
+
+ xor a
+ ld [wCurBox], a
+ ld [wSavedAtLeastOnce], a
+
+ call SetDefaultBoxNames
+
+ ld a, BANK(sBoxCount)
+ call GetSRAMBank
+ ld hl, sBoxCount
+ call InitList
+ call CloseSRAM
+
+ ld hl, NumItems
+ call InitList
+
+ ld hl, NumKeyItems
+ call InitList
+
+ ld hl, NumBalls
+ call InitList
+
+ ld hl, PCItems
+ call InitList
+
+ xor a
+ ld [wRoamMon1Species], a
+ ld [wRoamMon2Species], a
+ ld [wRoamMon3Species], a
+ ld a, -1
+ ld [wRoamMon1MapGroup], a
+ ld [wRoamMon2MapGroup], a
+ ld [wRoamMon3MapGroup], a
+ ld [wRoamMon1MapNumber], a
+ ld [wRoamMon2MapNumber], a
+ ld [wRoamMon3MapNumber], a
+
+ ld a, BANK(sMysteryGiftItem)
+ call GetSRAMBank
+ ld hl, sMysteryGiftItem
+ xor a
+ ld [hli], a
+ dec a
+ ld [hl], a
+ call CloseSRAM
+
+ call LoadOrRegenerateLuckyIDNumber
+ call InitializeMagikarpHouse
+
+ xor a
+ ld [MonType], a
+
+ ld [JohtoBadges], a
+ ld [KantoBadges], a
+
+ ld [Coins], a
+ ld [Coins + 1], a
+
+START_MONEY EQU 3000
+
+IF START_MONEY / $10000
+ ld a, START_MONEY / $10000
+ENDC
+ ld [Money], a
+ ld a, START_MONEY / $100 % $100
+ ld [Money + 1], a
+ ld a, START_MONEY % $100
+ ld [Money + 2], a
+
+ xor a
+ ld [wdc17], a
+
+ ld hl, wdc19
+ ld [hl], 2300 / $10000
+ inc hl
+ ld [hl], 2300 / $100 % $100
+ inc hl
+ ld [hl], 2300 % $100
+
+ call InitializeNPCNames
+
+ callba InitDecorations
+
+ callba DeletePartyMonMail
+
+ callba DeleteMobileEventIndex
+
+ call ResetGameTime
+ ret
+; 5ca1
+
+InitList: ; 5ca1
+; Loads 0 in the count and -1 in the first item or mon slot.
+ xor a
+ ld [hli], a
+ dec a
+ ld [hl], a
+ ret
+; 5ca6
+
+SetDefaultBoxNames: ; 5ca6
+ ld hl, wBoxNames
+ ld c, 0
+.loop
+ push hl
+ ld de, .Box
+ call CopyName2
+ dec hl
+ ld a, c
+ inc a
+ cp 10
+ jr c, .less
+ sub 10
+ ld [hl], "1"
+ inc hl
+
+.less
+ add "0"
+ ld [hli], a
+ ld [hl], "@"
+ pop hl
+ ld de, 9
+ add hl, de
+ inc c
+ ld a, c
+ cp NUM_BOXES
+ jr c, .loop
+ ret
+
+.Box
+ db "BOX@"
+; 5cd3
+
+InitializeMagikarpHouse: ; 5cd3
+ ld hl, wBestMagikarpLengthFeet
+ ld a, $3
+ ld [hli], a
+ ld a, $6
+ ld [hli], a
+ ld de, .Ralph
+ call CopyName2
+ ret
+; 5ce3
+
+.Ralph ; 5ce3
+ db "RALPH@"
+; 5ce9
+
+InitializeNPCNames: ; 5ce9
+ ld hl, .Rival
+ ld de, RivalName
+ call .Copy
+
+ ld hl, .Mom
+ ld de, MomsName
+ call .Copy
+
+ ld hl, .Red
+ ld de, RedsName
+ call .Copy
+
+ ld hl, .Green
+ ld de, GreensName
+
+.Copy
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ret
+
+.Rival db "???@"
+.Red db "RED@"
+.Green db "GREEN@"
+.Mom db "MOM@"
+; 5d23
+
+InitializeWorld: ; 5d23
+ call ShrinkPlayer
+ callba GetSpawnCoord
+ callba _InitializeStartDay
+ ret
+; 5d33
+
+LoadOrRegenerateLuckyIDNumber: ; 5d33
+ ld a, BANK(sLuckyIDNumber)
+ call GetSRAMBank
+ ld a, [CurDay]
+ inc a
+ ld b, a
+ ld a, [sLuckyNumberDay]
+ cp b
+ ld a, [sLuckyIDNumber + 1]
+ ld c, a
+ ld a, [sLuckyIDNumber]
+ jr z, .skip
+ ld a, b
+ ld [sLuckyNumberDay], a
+ call Random
+ ld c, a
+ call Random
+
+.skip
+ ld [wLuckyIDNumber], a
+ ld [sLuckyIDNumber], a
+ ld a, c
+ ld [wLuckyIDNumber + 1], a
+ ld [sLuckyIDNumber + 1], a
+ jp CloseSRAM
+; 5d65
+
+Continue: ; 5d65
+ callba TryLoadSaveFile
+ jr c, .FailToLoad
+ callba Function150b9
+ call LoadStandardMenuDataHeader
+ call DisplaySaveInfoOnContinue
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, 20
+ call DelayFrames
+ call ConfirmContinue
+ jr nc, .Check1Pass
+ call WriteBackup
+ jr .FailToLoad
+
+.Check1Pass
+ call Continue_CheckRTC_RestartClock
+ jr nc, .Check2Pass
+ call WriteBackup
+ jr .FailToLoad
+
+.Check2Pass
+ ld a, $8
+ ld [MusicFade], a
+ ld a, MUSIC_NONE % $100
+ ld [MusicFadeIDLo], a
+ ld a, MUSIC_NONE / $100
+ ld [MusicFadeIDHi], a
+ call ClearBGPalettes
+ call Continue_MobileAdapterMenu
+ call WriteBackup
+ call ClearTileMap
+ ld c, 20
+ call DelayFrames
+ callba JumpRoamMons
+ callba Function105091 ; Mystery Gift
+ callba Function140ae ; time-related
+ ld a, [wSpawnAfterChampion]
+ cp SPAWN_LANCE
+ jr z, .SpawnAfterE4
+ ld a, MAPSETUP_CONTINUE
+ ld [hMapEntryMethod], a
+ jp FinishContinueFunction
+
+.FailToLoad
+ ret
+
+.SpawnAfterE4
+ ld a, SPAWN_NEW_BARK
+ ld [wd001], a
+ call PostCreditsSpawn
+ jp FinishContinueFunction
+; 5de2
+
+SpawnAfterRed: ; 5de2
+ ld a, SPAWN_MT_SILVER
+ ld [wd001], a
+; 5de7
+
+PostCreditsSpawn: ; 5de7
+ xor a
+ ld [wSpawnAfterChampion], a
+ ld a, MAPSETUP_WARP
+ ld [hMapEntryMethod], a
+ ret
+; 5df0
+
+Continue_MobileAdapterMenu: ; 5df0
+ callba Function10632f ; mobile check
+ ret nc
+ ld hl, wd479
+ bit 1, [hl]
+ ret nz
+ ld a, 5
+ ld [MusicFade], a
+ ld a, MUSIC_MOBILE_ADAPTER_MENU % $100
+ ld [MusicFadeIDLo], a
+ ld a, MUSIC_MOBILE_ADAPTER_MENU / $100
+ ld [MusicFadeIDHi], a
+ ld c, 20
+ call DelayFrames
+ ld c, $1
+ callba InitMobileProfile ; mobile
+ callba _SaveData
+ ld a, 8
+ ld [MusicFade], a
+ ld a, MUSIC_NONE % $100
+ ld [MusicFadeIDLo], a
+ ld a, MUSIC_NONE / $100
+ ld [MusicFadeIDHi], a
+ ld c, 35
+ call DelayFrames
+ ret
+; 5e34
+
+ConfirmContinue: ; 5e34
+.loop
+ call DelayFrame
+ call GetJoypad
+ ld hl, hJoyPressed
+ bit 0, [hl]
+ jr nz, .PressA
+ bit 1, [hl]
+ jr z, .loop
+ scf
+ ret
+
+.PressA
+ ret
+; 5e48
+
+Continue_CheckRTC_RestartClock: ; 5e48
+ call CheckRTCStatus
+ and %10000000 ; Day count exceeded 16383
+ jr z, .pass
+ callba RestartClock
+ ld a, c
+ and a
+ jr z, .pass
+ scf
+ ret
+
+.pass
+ xor a
+ ret
+; 5e5d
+
+FinishContinueFunction: ; 5e5d
+.loop
+ xor a
+ ld [wc2c1], a
+ ld [wLinkMode], a
+ ld hl, GameTimerPause
+ set 0, [hl]
+ res 7, [hl]
+ ld hl, wEnteredMapFromContinue
+ set 1, [hl]
+ callba OverworldLoop
+ ld a, [wSpawnAfterChampion]
+ cp SPAWN_RED
+ jr z, .AfterRed
+ jp Reset
+
+.AfterRed
+ call SpawnAfterRed
+ jr .loop
+; 5e85
+
+DisplaySaveInfoOnContinue: ; 5e85
+ call CheckRTCStatus
+ and %10000000
+ jr z, .clock_ok
+ lb de, 4, 8
+ call DisplayContinueDataWithRTCError
+ ret
+
+.clock_ok
+ lb de, 4, 8
+ call DisplayNormalContinueData
+ ret
+; 5e9a
+
+DisplaySaveInfoOnSave: ; 5e9a
+ lb de, 4, 0
+ jr DisplayNormalContinueData
+; 5e9f
+
+DisplayNormalContinueData: ; 5e9f
+ call Continue_LoadMenuHeader
+ call Continue_DisplayBadgesDexPlayerName
+ call Continue_PrintGameTime
+ call LoadFontsExtra
+ call UpdateSprites
+ ret
+; 5eaf
+
+DisplayContinueDataWithRTCError: ; 5eaf
+ call Continue_LoadMenuHeader
+ call Continue_DisplayBadgesDexPlayerName
+ call Continue_UnknownGameTime
+ call LoadFontsExtra
+ call UpdateSprites
+ ret
+; 5ebf
+
+Continue_LoadMenuHeader: ; 5ebf
+ xor a
+ ld [hBGMapMode], a
+ ld hl, .MenuDataHeader_Dex
+ ld a, [StatusFlags]
+ bit 0, a ; pokedex
+ jr nz, .pokedex_header
+ ld hl, .MenuDataHeader_NoDex
+
+.pokedex_header
+ call Function1e35
+ call MenuBox
+ call Function1c89
+ ret
+; 5ed9
+
+.MenuDataHeader_Dex: ; 5ed9
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 09, 15 ; end coords
+ dw .MenuData2_Dex
+ db 1 ; default option
+; 5ee1
+
+.MenuData2_Dex: ; 5ee1
+ db $00 ; flags
+ db 4 ; items
+ db "PLAYER@"
+ db "BADGES@"
+ db "#DEX@"
+ db "TIME@"
+; 5efb
+
+.MenuDataHeader_NoDex: ; 5efb
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 09, 15 ; end coords
+ dw .MenuData2_NoDex
+ db 1 ; default option
+; 5f03
+
+.MenuData2_NoDex: ; 5f03
+ db $00 ; flags
+ db 4 ; items
+ db "PLAYER <PLAYER>@"
+ db "BADGES@"
+ db " @"
+ db "TIME@"
+; 5f1c
+
+
+Continue_DisplayBadgesDexPlayerName: ; 5f1c
+ call MenuBoxCoord2Tile
+ push hl
+ decoord 13, 4, 0
+ add hl, de
+ call Continue_DisplayBadgeCount
+ pop hl
+ push hl
+ decoord 12, 6, 0
+ add hl, de
+ call Continue_DisplayPokedexNumCaught
+ pop hl
+ push hl
+ decoord 8, 2, 0
+ add hl, de
+ ld de, .Player
+ call PlaceString
+ pop hl
+ ret
+
+.Player
+ db "<PLAYER>@"
+; 5f40
+
+Continue_PrintGameTime: ; 5f40
+ decoord 9, 8, 0
+ add hl, de
+ call Continue_DisplayGameTime
+ ret
+; 5f48
+
+Continue_UnknownGameTime: ; 5f48
+ decoord 9, 8, 0
+ add hl, de
+ ld de, .three_question_marks
+ call PlaceString
+ ret
+
+.three_question_marks
+ db " ???@"
+; 5f58
+
+Continue_DisplayBadgeCount: ; 5f58
+ push hl
+ ld hl, JohtoBadges
+ ld b, 2
+ call CountSetBits
+ pop hl
+ ld de, wd265
+ lb bc, 1, 2
+ jp PrintNum
+; 5f6b
+
+Continue_DisplayPokedexNumCaught: ; 5f6b
+ ld a, [StatusFlags]
+ bit 0, a
+ ret z
+ push hl
+ ld hl, PokedexCaught
+IF NUM_POKEMON % 8
+ ld b, NUM_POKEMON / 8 + 1
+ELSE
+ ld b, NUM_POKEMON / 8
+ENDC
+ call CountSetBits
+ pop hl
+ ld de, wd265
+ lb bc, 1, 3
+ jp PrintNum
+; 5f84
+
+Continue_DisplayGameTime: ; 5f84
+ ld de, GameTimeHours
+ lb bc, 2, 3
+ call PrintNum
+ ld [hl], "<COLON>"
+ inc hl
+ ld de, GameTimeMinutes
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ jp PrintNum
+; 5f99
+
+
+OakSpeech: ; 0x5f99
+ callba InitClock
+ call RotateFourPalettesLeft
+ call ClearTileMap
+
+ ld de, MUSIC_ROUTE_30
+ call PlayMusic
+
+ call RotateFourPalettesRight
+ call RotateThreePalettesRight
+ xor a
+ ld [CurPartySpecies], a
+ ld a, POKEMON_PROF
+ ld [TrainerClass], a
+ call Intro_PrepTrainerPic
+
+ ld b, SCGB_1C
+ call GetSGBLayout
+ call Intro_RotatePalettesLeftFrontpic
+
+ ld hl, OakText1
+ call PrintText
+ call RotateThreePalettesRight
+ call ClearTileMap
+
+ ld a, WOOPER
+ ld [CurSpecies], a
+ ld [CurPartySpecies], a
+ call GetBaseData
+
+ hlcoord 6, 4
+ call PrepMonFrontpic
+
+ xor a
+ ld [TempMonDVs], a
+ ld [TempMonDVs + 1], a
+
+ ld b, SCGB_1C
+ call GetSGBLayout
+ call Intro_WipeInFrontpic
+
+ ld hl, OakText2
+ call PrintText
+ ld hl, OakText4
+ call PrintText
+ call RotateThreePalettesRight
+ call ClearTileMap
+
+ xor a
+ ld [CurPartySpecies], a
+ ld a, POKEMON_PROF
+ ld [TrainerClass], a
+ call Intro_PrepTrainerPic
+
+ ld b, SCGB_1C
+ call GetSGBLayout
+ call Intro_RotatePalettesLeftFrontpic
+
+ ld hl, OakText5
+ call PrintText
+ call RotateThreePalettesRight
+ call ClearTileMap
+
+ xor a
+ ld [CurPartySpecies], a
+ callba DrawIntroPlayerPic
+
+ ld b, SCGB_1C
+ call GetSGBLayout
+ call Intro_RotatePalettesLeftFrontpic
+
+ ld hl, OakText6
+ call PrintText
+ call NamePlayer
+ ld hl, OakText7
+ call PrintText
+ ret
+
+OakText1: ; 0x6045
+ text_jump _OakText1
+ db "@"
+
+OakText2: ; 0x604a
+ text_jump _OakText2
+ start_asm
+ ld a, WOOPER
+ call PlayCry
+ call WaitSFX
+ ld hl, OakText3
+ ret
+
+OakText3: ; 0x605b
+ text_jump _OakText3
+ db "@"
+
+OakText4: ; 0x6060
+ text_jump _OakText4
+ db "@"
+
+OakText5: ; 0x6065
+ text_jump _OakText5
+ db "@"
+
+OakText6: ; 0x606a
+ text_jump _OakText6
+ db "@"
+
+OakText7: ; 0x606f
+ text_jump _OakText7
+ db "@"
+
+NamePlayer: ; 0x6074
+ callba MovePlayerPicRight
+ callba ShowPlayerNamingChoices
+ ld a, [MenuSelection2]
+ dec a
+ jr z, .NewName
+ call StorePlayerName
+ callba Function8c1d
+ callba MovePlayerPicLeft
+ ret
+
+.NewName
+ ld b, 1
+ ld de, PlayerName
+ callba NamingScreen
+
+ call RotateThreePalettesRight
+ call ClearTileMap
+
+ call LoadFontsExtra
+ call WaitBGMap
+
+ xor a
+ ld [CurPartySpecies], a
+ callba DrawIntroPlayerPic
+
+ ld b, SCGB_1C
+ call GetSGBLayout
+ call RotateThreePalettesLeft
+
+ ld hl, PlayerName
+ ld de, .Chris
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .Male
+ ld de, .Kris
+.Male
+ call InitName
+ ret
+
+.Chris
+ db "CHRIS@@@@@@"
+.Kris
+ db "KRIS@@@@@@@"
+; 60e9
+
+Function60e9: ; Unreferenced
+ call LoadMenuDataHeader
+ call InterpretMenu2
+ ld a, [MenuSelection2]
+ dec a
+ call CopyNameFromMenu
+ call WriteBackup
+ ret
+; 60fa
+
+StorePlayerName: ; 60fa
+ ld a, "@"
+ ld bc, NAME_LENGTH
+ ld hl, PlayerName
+ call ByteFill
+ ld hl, PlayerName
+ ld de, StringBuffer2
+ call CopyName2
+ ret
+; 610f
+
+ShrinkPlayer: ; 610f
+
+ ld a, [hROMBank]
+ push af
+
+ ld a, 0 << 7 | 32 ; fade out
+ ld [MusicFade], a
+ ld de, MUSIC_NONE
+ ld a, e
+ ld [MusicFadeIDLo], a
+ ld a, d
+ ld [MusicFadeIDHi], a
+
+ ld de, SFX_ESCAPE_ROPE
+ call PlaySFX
+ pop af
+ rst Bankswitch
+
+ ld c, 8
+ call DelayFrames
+
+ ld hl, Shrink1Pic
+ ld b, BANK(Shrink1Pic)
+ call ShrinkFrame
+
+ ld c, 8
+ call DelayFrames
+
+ ld hl, Shrink2Pic
+ ld b, BANK(Shrink2Pic)
+ call ShrinkFrame
+
+ ld c, 8
+ call DelayFrames
+
+ hlcoord 6, 5
+ ld b, 7
+ ld c, 7
+ call ClearBox
+
+ ld c, 3
+ call DelayFrames
+
+ call Intro_PlacePlayerSprite
+ call LoadFontsExtra
+
+ ld c, 50
+ call DelayFrames
+
+ call RotateThreePalettesRight
+ call ClearTileMap
+ ret
+; 616a
+
+Intro_RotatePalettesLeftFrontpic: ; 616a
+ ld hl, IntroFadePalettes
+ ld b, IntroFadePalettesEnd - IntroFadePalettes
+.loop
+ ld a, [hli]
+ call DmgToCgbBGPals
+ ld c, 10
+ call DelayFrames
+ dec b
+ jr nz, .loop
+ ret
+; 617c
+
+IntroFadePalettes: ; 0x617c
+ db %01010100
+ db %10101000
+ db %11111100
+ db %11111000
+ db %11110100
+ db %11100100
+IntroFadePalettesEnd
+; 6182
+
+Intro_WipeInFrontpic: ; 6182
+ ld a, $77
+ ld [hWX], a
+ call DelayFrame
+ ld a, %11100100
+ call DmgToCgbBGPals
+.loop
+ call DelayFrame
+ ld a, [hWX]
+ sub $8
+ cp -1
+ ret z
+ ld [hWX], a
+ jr .loop
+; 619c
+
+Intro_PrepTrainerPic: ; 619c
+ ld de, VTiles2
+ callba GetTrainerPic
+ xor a
+ ld [hFillBox], a
+ hlcoord 6, 4
+ lb bc, 7, 7
+ predef FillBox
+ ret
+; 61b4
+
+ShrinkFrame: ; 61b4
+ ld de, VTiles2
+ ld c, $31
+ predef DecompressPredef
+ xor a
+ ld [hFillBox], a
+ hlcoord 6, 4
+ lb bc, 7, 7
+ predef FillBox
+ ret
+; 61cd
+
+Intro_PlacePlayerSprite: ; 61cd
+
+ callba GetPlayerIcon
+ ld c, $c
+ ld hl, VTiles0
+ call Request2bpp
+
+ ld hl, Sprites
+ ld de, .sprites
+ ld a, [de]
+ inc de
+
+ ld c, a
+.loop
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+
+ ld b, 0
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .male
+ ld b, 1
+.male
+ ld a, b
+
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ ret
+; 61fe
+
+.sprites ; 61fe
+ db 4
+ db $4c, $48, 0
+ db $4c, $50, 1
+ db $54, $48, 2
+ db $54, $50, 3
+; 620b
+
+
+Function620b: ; 620b
+ callab Functione4579
+ jr c, Function6219
+ callba CrystalIntro
+
+Function6219: ; 6219
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+
+ call .TitleScreen
+ call DelayFrame
+.loop
+ call Function627b
+ jr nc, .loop
+
+ call ClearSprites
+ call ClearBGPalettes
+
+ pop af
+ ld [rSVBK], a
+
+ ld hl, rLCDC
+ res 2, [hl]
+ call ClearScreen
+ call Function3200
+ xor a
+ ld [hLCDStatCustom], a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ ld b, SCGB_08
+ call GetSGBLayout
+ call UpdateTimePals
+ ld a, [wcf64]
+ cp $5
+ jr c, .ok
+ xor a
+.ok
+ ld e, a
+ ld d, 0
+ ld hl, .jumptable
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 626a
+
+.jumptable
+ dw _MainMenu
+ dw Function6389
+ dw Function620b
+ dw Function620b
+ dw ResetClock
+; 6274
+
+
+.TitleScreen: ; 6274
+ callba _TitleScreen
+ ret
+; 627b
+
+Function627b: ; 627b
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .done_title
+ call TitleScreenScene
+ callba SuicuneFrameIterator
+ call DelayFrame
+ and a
+ ret
+
+.done_title
+ scf
+ ret
+; 6292
+
+Function6292: ; 6292 ; unreferenced
+ ld a, [hVBlankCounter]
+ and $7
+ ret nz
+ ld hl, LYOverrides + $5f
+ ld a, [hl]
+ dec a
+ ld bc, 2 * SCREEN_WIDTH
+ call ByteFill
+ ret
+; 62a3
+
+TitleScreenScene: ; 62a3
+ ld e, a
+ ld d, 0
+ ld hl, .scenes
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 62af
+
+.scenes
+ dw TitleScreenEntrance
+ dw TitleScreenTimer
+ dw TitleScreenMain
+ dw TitleScreenEnd
+; 62b7
+
+Function62b7: ; Unreferenced
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; 62bc
+
+
+TitleScreenEntrance: ; 62bc
+
+; Animate the logo:
+; Move each line by 4 pixels until our count hits 0.
+ ld a, [hSCX]
+ and a
+ jr z, .done
+ sub 4
+ ld [hSCX], a
+
+; Lay out a base (all lines scrolling together).
+ ld e, a
+ ld hl, LYOverrides
+ ld bc, 8 * 10 ; logo height
+ call ByteFill
+
+; Reversed signage for every other line's position.
+; This is responsible for the interlaced effect.
+ ld a, e
+ xor -1
+ inc a
+
+ ld b, 8 * 10 / 2 ; logo height / 2
+ ld hl, LYOverrides + 1
+.loop
+ ld [hli], a
+ inc hl
+ dec b
+ jr nz, .loop
+
+ callba AnimateTitleCrystal
+ ret
+
+.done
+; Next scene
+ ld hl, wJumptableIndex
+ inc [hl]
+ xor a
+ ld [hLCDStatCustom], a
+
+; Play the title screen music.
+ ld de, MUSIC_TITLE
+ call PlayMusic
+
+ ld a, $88
+ ld [hWY], a
+ ret
+; 62f6
+
+
+TitleScreenTimer: ; 62f6
+
+; Next scene
+ ld hl, wJumptableIndex
+ inc [hl]
+
+; Start a timer
+ ld hl, wcf65
+ ld de, $1140 ; 73.6 seconds
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+; 6304
+
+TitleScreenMain: ; 6304
+
+; Run the timer down.
+ ld hl, wcf65
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, e
+ or d
+ jr z, .end
+
+ dec de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+
+; Save data can be deleted by pressing Up + B + Select.
+ call GetJoypad
+ ld hl, hJoyDown
+ ld a, [hl]
+ and D_UP + B_BUTTON + SELECT
+ cp D_UP + B_BUTTON + SELECT
+ jr z, .delete_save_data
+
+; To bring up the clock reset dialog:
+
+; Hold Down + B + Select to initiate the sequence.
+ ld a, [$ffeb]
+ cp $34
+ jr z, .check_clock_reset
+
+ ld a, [hl]
+ and D_DOWN + B_BUTTON + SELECT
+ cp D_DOWN + B_BUTTON + SELECT
+ jr nz, .check_start
+
+ ld a, $34
+ ld [$ffeb], a
+ jr .check_start
+
+; Keep Select pressed, and hold Left + Up.
+; Then let go of Select.
+.check_clock_reset
+ bit 2, [hl] ; SELECT
+ jr nz, .check_start
+
+ xor a
+ ld [$ffeb], a
+
+ ld a, [hl]
+ and D_LEFT + D_UP
+ cp D_LEFT + D_UP
+ jr z, .clock_reset
+
+; Press Start or A to start the game.
+.check_start
+ ld a, [hl]
+ and START | A_BUTTON
+ jr nz, .incave
+ ret
+
+.incave
+ ld a, 0
+ jr .done
+
+.delete_save_data
+ ld a, 1
+
+.done
+ ld [wcf64], a
+
+; Return to the intro sequence.
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+.end
+; Next scene
+ ld hl, wJumptableIndex
+ inc [hl]
+
+; Fade out the title screen music
+ xor a
+ ld [MusicFadeIDLo], a
+ ld [MusicFadeIDHi], a
+ ld hl, MusicFade
+ ld [hl], 8 ; 1 second
+
+ ld hl, wcf65
+ inc [hl]
+ ret
+
+.clock_reset
+ ld a, 4
+ ld [wcf64], a
+
+; Return to the intro sequence.
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+; 6375
+
+TitleScreenEnd: ; 6375
+
+; Wait until the music is done fading.
+
+ ld hl, wcf65
+ inc [hl]
+
+ ld a, [MusicFade]
+ and a
+ ret nz
+
+ ld a, 2
+ ld [wcf64], a
+
+; Back to the intro.
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+; 6389
+
+Function6389: ; 6389
+ callba Function4d54c
+ jp Init
+; 6392
+
+ResetClock: ; 6392
+ callba _ResetClock
+ jp Init
+; 639b
+
+Function639b: ; unreferenced
+ ; If bit 0 or 1 of [wcf65] is set, we don't need to be here.
+ ld a, [wcf65]
+ and $3
+ ret nz
+ ld bc, SpriteAnim10
+ ld hl, SpriteAnim10FrameIndex - SpriteAnim10
+ add hl, bc ; over-the-top compicated way to load wc3ae into hl
+ ld l, [hl]
+ ld h, 0
+rept 2
+ add hl, hl
+endr
+ ld de, Data63ca
+ add hl, de
+ ; If bit 2 of [wcf65] is set, get the second dw; else, get the first dw
+ ld a, [wcf65]
+ and %00000100
+rept 2
+ srl a
+endr
+ ld e, a
+ ld d, 0
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ and a
+ ret z
+ ld e, a
+ ld d, [hl]
+ ld a, SPRITE_ANIM_INDEX_01
+ call _InitSpriteAnimStruct
+ ret
+; 63ca
+
+Data63ca: ; 63ca
+; frame 0 y, x; frame 1 y, x
+ db $5c, $50, $00, $00
+ db $5c, $68, $5c, $58
+ db $5c, $68, $5c, $78
+ db $5c, $88, $5c, $78
+ db $00, $00, $5c, $78
+ db $00, $00, $5c, $58
+; 63e2
+
+Copyright: ; 63e2
+ call ClearTileMap
+ call LoadFontsExtra
+ ld de, CopyrightGFX
+ ld hl, VTiles2 tile $60
+ lb bc, BANK(CopyrightGFX), $1d
+ call Request2bpp
+ hlcoord 2, 7
+ ld de, CopyrightString
+ jp PlaceString
+; 63fd
+
+CopyrightString: ; 63fd
+ ; ©1995-2001 Nintendo
+ db $60, $61, $62, $63, $64, $65, $66
+ db $67, $68, $69, $6a, $6b, $6c
+
+ db $4e
+
+ ; ©1995-2001 Creatures inc.
+ db $60, $61, $62, $63, $64, $65, $66, $6d
+ db $6e, $6f, $70, $71, $72, $7a, $7b, $7c
+
+ db $4e
+
+ ; ©1995-2001 GAME FREAK inc.
+ db $60, $61, $62, $63, $64, $65, $66, $73, $74
+ db $75, $76, $77, $78, $79, $7a, $7b, $7c
+
+ db "@"
+; 642e
+
+GameInit:: ; 642e
+ callba TryLoadSaveData
+ call ResetTextRelatedRAM
+ call ClearBGPalettes
+ call ClearTileMap
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ xor a
+ ld [hBGMapAddress], a
+ ld [hJoyDown], a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $90
+ ld [hWY], a
+ call WaitBGMap
+ jp Function620b
+; 6454
diff --git a/engine/link.asm b/engine/link.asm
index afdbd218a..feb4b5023 100755
--- a/engine/link.asm
+++ b/engine/link.asm
@@ -493,7 +493,7 @@ Function283b2: ; 283b2
pop hl
bccoord 1, 14
call PlaceWholeStringInBoxAtOnce
- call FadeToWhite
+ call RotateThreePalettesRight
call ClearScreen
ld b, $8
call GetSGBLayout
@@ -1583,7 +1583,7 @@ Function28ade: ; 28ade
jr nz, .asm_28ade
Function28b22: ; 28b22
- call FadeToWhite
+ call RotateThreePalettesRight
call ClearScreen
ld b, $8
call GetSGBLayout
@@ -2191,7 +2191,7 @@ Function28fdb: ; 28fdb
ld [rVBK], a
.asm_2900b
- ld hl, VBGMap0
+ hlbgcoord 0, 0
ld bc, sScratch - VBGMap0
ld a, " "
call ByteFill
@@ -2372,7 +2372,7 @@ Function2914e: ; 2914e
push af
call DisableLCD
callab Function8cf53
- ld hl, $9874
+ hlbgcoord 20, 3
ld bc, $c
ld a, $60
call ByteFill
@@ -2500,7 +2500,7 @@ Function29229: ; 29229
call ClearSprites
call DisableLCD
callab Function8cf53
- ld hl, VBGMap0
+ hlbgcoord 0, 0
ld bc, sScratch - VBGMap0
ld a, " "
call ByteFill
diff --git a/engine/main_menu.asm b/engine/main_menu.asm
index 6e0ab56e5..428858a74 100755
--- a/engine/main_menu.asm
+++ b/engine/main_menu.asm
@@ -240,7 +240,7 @@ Function49e09: ; 49e09
Function49e27: ; 49e27
- call Function6e3
+ call CheckRTCStatus
and $80
jr nz, .asm_49e39
hlcoord 0, 14
@@ -259,7 +259,7 @@ Function49e3d: ; 49e3d
ld a, [wSaveFileExists]
and a
ret z
- call Function6e3
+ call CheckRTCStatus
and $80
jp nz, Function49e75
call UpdateTime
@@ -560,7 +560,7 @@ Function4a0c2: ; 4a0c2 (12:60c2)
ld c, 2
call DelayFrames
ld c, $1
- call Function4802f
+ call InitMobileProfile
push af
call ClearBGPalettes
pop af
diff --git a/engine/map_setup.asm b/engine/map_setup.asm
index 7e0bfd3c1..ef1ad715e 100644
--- a/engine/map_setup.asm
+++ b/engine/map_setup.asm
@@ -249,10 +249,10 @@ MapSetupCommands: ; 15440
dba PlayMapMusic ; 03
dba RestartMapMusic ; 04
dba FadeToMapMusic ; 05
- dba FadeOutMapAndMusic ; 06
+ dba RotatePalettesRightMapAndMusic ; 06
dba EnterMapMusic ; 07
dba ForceMapMusic ; 08
- dba FadeInMusic ; 09
+ dba RotatePalettesLeftMusic ; 09
dba LoadBlockData ; 0a
dba LoadNeighboringBlockData ; 0b
dba SaveScreen ; 0c
@@ -272,8 +272,8 @@ MapSetupCommands: ; 15440
dba LoadMapAttributes ; 1a
dba LoadMapAttributes_SkipPeople ; 1b
dba ClearBGPalettes ; 1c
- dba FadeOutPalettes ; 1d
- dba FadeInPalettes ; 1e
+ dba RotatePalettesRightPalettes ; 1d
+ dba RotatePalettesLeftPalettes ; 1e
dba GetCoordOfUpperLeftCorner ; 1f
dba RestoreFacingAfterWarp ; 20
dba SpawnInFacingDown ; 21
@@ -417,14 +417,14 @@ RetainOldPalettes: ; 1556d
callba _UpdateTimePals
ret
-FadeOutMapAndMusic: ; 15574
+RotatePalettesRightMapAndMusic: ; 15574
ld e, 0
ld a, [MusicFadeIDLo]
ld d, 0
ld a, [MusicFadeIDHi]
ld a, $4
ld [MusicFade], a
- call FadeToWhite
+ call RotateThreePalettesRight
ret
; 15587
diff --git a/engine/phone.asm b/engine/phone.asm
index 32481deaa..ab0ecb84a 100644
--- a/engine/phone.asm
+++ b/engine/phone.asm
@@ -604,7 +604,7 @@ Phone_StartRinging: ; 9033f
call PlaySFX
call Phone_CallerTextbox
call UpdateSprites
- callba Function4d188
+ callba PhoneRing_LoadEDTile
ret
; 90355
@@ -614,7 +614,7 @@ HangUp_Wait20Frames: ; 90355
Phone_Wait20Frames
ld c, 20
call DelayFrames
- callba Function4d188
+ callba PhoneRing_LoadEDTile
ret
; 90363
diff --git a/engine/pokegear.asm b/engine/pokegear.asm
index 3954f5384..2aaf0d74e 100755
--- a/engine/pokegear.asm
+++ b/engine/pokegear.asm
@@ -2332,7 +2332,7 @@ FlyMap: ; 91c90
call TownMapBubble
call TownMapPals
- ld hl, VBGMap0 ; BG Map 0
+ hlbgcoord 0, 0 ; BG Map 0
call TownMapBGUpdate
call TownMapMon
@@ -2371,12 +2371,12 @@ Function91d11: ; 91d11
call FillKantoMap
call Function91de9
call TownMapPals
- ld hl, VBGMap1
+ hlbgcoord 0, 0, VBGMap1
call TownMapBGUpdate
call FillJohtoMap
call Function91de9
call TownMapPals
- ld hl, VBGMap0
+ hlbgcoord 0, 0
call TownMapBGUpdate
ld b, $2
call GetSGBLayout
@@ -2875,12 +2875,12 @@ Function92311: ; unreferenced
call FillKantoMap
call TownMapBubble
call TownMapPals
- ld hl, VBGMap1
+ hlbgcoord 0, 0, VBGMap1
call TownMapBGUpdate
call FillJohtoMap
call TownMapBubble
call TownMapPals
- ld hl, VBGMap0
+ hlbgcoord 0, 0
call TownMapBGUpdate
call TownMapMon
ld a, c
diff --git a/engine/save.asm b/engine/save.asm
index f314cd4b5..68189b7d1 100644
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -1,9 +1,9 @@
SaveMenu: ; 14a1a
call LoadStandardMenuDataHeader
- callba Function5e9a
+ callba DisplaySaveInfoOnSave
call SpeechTextBox
call UpdateSprites
- callba SaveMenu_LoadDETile
+ callba SaveMenu_LoadEDTile
ld hl, UnknownText_0x15283
call SaveTheGame_yesorno
jr nz, .refused
@@ -19,7 +19,7 @@ SaveMenu: ; 14a1a
.refused
call ExitMenu
call Functiond90
- callba SaveMenu_LoadDETile
+ callba SaveMenu_LoadEDTile
scf
ret
diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm
index 6f53bb6b3..dab0e2361 100755
--- a/engine/slot_machine.asm
+++ b/engine/slot_machine.asm
@@ -26,7 +26,7 @@ Function926f7: ; 926f7 (24:66f7)
call PlayMusic
call DelayFrame
call DisableLCD
- ld hl, VBGMap0 tile $00
+ hlbgcoord 0, 0
lb bc, 4, 0
ld a, $7f
call ByteFill
diff --git a/engine/specials.asm b/engine/specials.asm
index 29c4da492..e2b4e6195 100644
--- a/engine/specials.asm
+++ b/engine/specials.asm
@@ -66,11 +66,11 @@ SpecialsPointers:: ; c029
add_special Special_CardFlip
add_special Special_DummyNonfunctionalGameCornerGame
add_special Special_ClearBGPalettesBufferScreen
- add_special FadeOutPalettes
+ add_special RotatePalettesRightPalettes
add_special Special_BattleTowerFade
add_special Special_FadeBlackQuickly
- add_special FadeInPalettes
- add_special Special_FadeInQuickly
+ add_special RotatePalettesLeftPalettes
+ add_special Special_RotatePalettesLeftQuickly
add_special Special_ReloadSpritesNoPalettes
add_special ClearBGPalettes
add_special UpdateTimePals
@@ -126,7 +126,7 @@ SpecialsPointers:: ; c029
add_special SpecialTrainerHouse
add_special PhotoStudio
add_special InitRoamMons
- add_special Special_FadeOutMusic
+ add_special Special_RotatePalettesRightMusic
add_special Diploma
add_special PrintDiploma
@@ -616,7 +616,7 @@ SpecialGameboyCheck: ; c478
ret
-Special_FadeOutMusic: ; c48f
+Special_RotatePalettesRightMusic: ; c48f
ld a, MUSIC_NONE % $100
ld [MusicFadeIDLo], a
ld a, MUSIC_NONE / $100
diff --git a/engine/time_capsule/conversion.asm b/engine/time_capsule/conversion.asm
index 4b5b1ef83..10f7ab5f3 100755
--- a/engine/time_capsule/conversion.asm
+++ b/engine/time_capsule/conversion.asm
@@ -364,7 +364,7 @@ NewPokedexEntry: ; fb877
pop af
ld [wPokedexStatus], a
call MaxVolume
- call FadeToWhite
+ call RotateThreePalettesRight
ld a, [hSCX]
add $fb
ld [hSCX], a
diff --git a/engine/timeofdaypals.asm b/engine/timeofdaypals.asm
index 6ebb2a421..fac580f41 100644
--- a/engine/timeofdaypals.asm
+++ b/engine/timeofdaypals.asm
@@ -116,7 +116,7 @@ _UpdateTimePals:: ; 8c070
ret
; 8c079
-FadeInPalettes:: ; 8c079
+RotatePalettesLeftPalettes:: ; 8c079
ld c, $12
call GetTimePalFade
ld b, $4
@@ -124,7 +124,7 @@ FadeInPalettes:: ; 8c079
ret
; 8c084
-FadeOutPalettes:: ; 8c084
+RotatePalettesRightPalettes:: ; 8c084
call Function8c0c1
ld c, $9
call GetTimePalFade
@@ -150,7 +150,7 @@ endr
ret
; 8c0ab
-Special_FadeInQuickly: ; 8c0ab
+Special_RotatePalettesLeftQuickly: ; 8c0ab
ld c, $0
call GetTimePalFade
ld b, $4
diff --git a/engine/timeset.asm b/engine/timeset.asm
index 00cdf9cac..0b0f12718 100755
--- a/engine/timeset.asm
+++ b/engine/timeset.asm
@@ -15,7 +15,7 @@ InitClock: ; 90672 (24:4672)
ld [MusicFadeIDHi], a
ld c, 8
call DelayFrames
- call Function4dd
+ call RotateFourPalettesLeft
call ClearTileMap
call ClearSprites
ld b, SCGB_08
@@ -37,7 +37,7 @@ InitClock: ; 90672 (24:4672)
call Request1bpp
call .ClearScreen
call WaitBGMap
- call Function4a3
+ call RotateFourPalettesRight
ld hl, UnknownText_0x90874
call PrintText
ld hl, wc608
diff --git a/engine/title.asm b/engine/title.asm
index 0fbf8b42d..fc8dfa0e4 100644
--- a/engine/title.asm
+++ b/engine/title.asm
@@ -31,8 +31,8 @@ _TitleScreen: ; 10ed67
; Clear screen palettes
- ld hl, VBGMap0
- ld bc, $0280
+ hlbgcoord 0, 0
+ ld bc, 20 bgrows
xor a
call ByteFill
@@ -42,8 +42,8 @@ _TitleScreen: ; 10ed67
; BG Map 1:
; line 0 (copyright)
- ld hl, VBGMap1
- ld bc, $0020 ; one row
+ hlbgcoord 0, 0, VBGMap1
+ ld bc, 1 bgrows
ld a, 7 ; palette
call ByteFill
@@ -53,41 +53,41 @@ _TitleScreen: ; 10ed67
; Apply logo gradient:
; lines 3-4
- ld hl, VBGMap0 tile $06 ; (0,3)
- ld bc, $0040 ; 2 rows
+ hlbgcoord 0, 3
+ ld bc, 2 bgrows
ld a, 2
call ByteFill
; line 5
- ld hl, VBGMap0 tile $0a ; (0,5)
- ld bc, $0020 ; 1 row
+ hlbgcoord 0, 5
+ ld bc, 1 bgrows
ld a, 3
call ByteFill
; line 6
- ld hl, VBGMap0 tile $0c ; (0,6)
- ld bc, $0020 ; 1 row
+ hlbgcoord 0, 6
+ ld bc, 1 bgrows
ld a, 4
call ByteFill
; line 7
- ld hl, VBGMap0 tile $0e ; (0,7)
- ld bc, $0020 ; 1 row
+ hlbgcoord 0, 7
+ ld bc, 1 bgrows
ld a, 5
call ByteFill
; lines 8-9
- ld hl, VBGMap0 tile $10 ; (0,8)
- ld bc, $0040 ; 2 rows
+ hlbgcoord 0, 8
+ ld bc, 2 bgrows
ld a, 6
call ByteFill
; 'CRYSTAL VERSION'
- ld hl, $9925 ; (5,9)
- ld bc, $000b ; length of version text
+ hlbgcoord 5, 9
+ ld bc, NAME_LENGTH ; length of version text
ld a, 1
call ByteFill
; Suicune gfx
- ld hl, VBGMap0 tile $18 ; (0,12)
- ld bc, $00c0 ; the rest of the screen
+ hlbgcoord 0, 12
+ ld bc, 6 bgrows ; the rest of the screen
ld a, 8
call ByteFill
@@ -109,9 +109,9 @@ _TitleScreen: ; 10ed67
; Clear screen tiles
- ld hl, VBGMap0
- ld bc, $0800
- ld a, $7f
+ hlbgcoord 0, 0
+ ld bc, 64 bgrows
+ ld a, " "
call ByteFill
; Draw Pokemon logo
@@ -122,7 +122,7 @@ _TitleScreen: ; 10ed67
call DrawTitleGraphic
; Draw copyright text
- ld hl, $9c03 ; BGMap1(3,0)
+ hlbgcoord 3, 0, VBGMap1
lb bc, 1, 13
ld d, $c
ld e, $10
@@ -270,7 +270,7 @@ SuicuneFrameIterator: ; 10eea7
LoadSuicuneFrame: ; 10eed2
hlcoord 6, 12
ld b, 6
-.row
+.bgrows
ld c, 8
.col
ld a, d
@@ -288,7 +288,7 @@ LoadSuicuneFrame: ; 10eed2
add d
ld d, a
dec b
- jr nz, .row
+ jr nz, .bgrows
ret
; 10eeef
@@ -298,8 +298,8 @@ DrawTitleGraphic: ; 10eeef
; b: height
; c: width
; d: tile to start drawing from
-; e: number of tiles to advance for each row
-.row
+; e: number of tiles to advance for each bgrows
+.bgrows
push de
push bc
push hl
@@ -318,7 +318,7 @@ DrawTitleGraphic: ; 10eeef
add d
ld d, a
dec b
- jr nz, .row
+ jr nz, .bgrows
ret
; 10ef06