ref: 812976cee6ba39d50583921273ad85195e77be37
parent: b02305625920d42649587d6ba6504777dcac25a0
author: PikalaxALT <PikalaxALT@gmail.com>
date: Fri Nov 20 06:47:52 EST 2015
bgcoord
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -8569,7 +8569,7 @@
ld a, $1
ld [rVBK], a
ld de, w6_d000
- ld hl, VBGMap0 ; VBGMap2
+ hlbgcoord 0, 0 ; VBGMap2
lb bc, BANK(BackUpVBGMap2), $40
call Request2bpp
pop af
@@ -9460,7 +9460,7 @@
call ByteFill
ld de, w6_d000
- ld hl, VBGMap0
+ hlbgcoord 0, 0
lb bc, BANK(.BlankBGMap), $40
call Request2bpp
--- a/constants/deco_constants.asm
+++ b/constants/deco_constants.asm
@@ -104,3 +104,6 @@
const DECO_TENTACOOL_DOLL ; 32
const DECO_GOLD_TROPHY_DOLL ; 33
const DECO_SILVER_TROPHY_DOLL ; 34
+
+NUM_NON_TROPHY_DECOS EQU $2b
+NUM_DECOS EQU $2d
--- a/engine/battle_start.asm
+++ b/engine/battle_start.asm
@@ -84,7 +84,7 @@
Function8c2a0: ; 8c2a0
call LoadTrainerBattlePokeballTiles
- ld hl, VBGMap0
+ hlbgcoord 0, 0
call Function8c2cf
ret
; 8c2aa
--- a/engine/color.asm
+++ b/engine/color.asm
@@ -319,7 +319,7 @@
ld a, [EnemySafeguardCount]
and $3
call FillBoxCGB
- call LoadDETile
+ call LoadEDTile
ret
; 8c1d
@@ -702,7 +702,7 @@
.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 @@
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
--- a/engine/crystal_intro.asm
+++ b/engine/crystal_intro.asm
@@ -506,7 +506,7 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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
--- a/engine/decorations.asm
+++ b/engine/decorations.asm
@@ -1195,6 +1195,7 @@
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
--- a/engine/evolution_animation.asm
+++ b/engine/evolution_animation.asm
@@ -378,7 +378,7 @@
call DisableLCD
call LoadStandardFont
call LoadFontsBattleExtra
- ld hl, VBGMap0
+ hlbgcoord 0, 0
ld bc, VBGMap1 - VBGMap0
ld a, " "
call ByteFill
@@ -411,7 +411,7 @@
call DisableLCD
call LoadStandardFont
call LoadFontsBattleExtra
- ld hl, VBGMap0
+ hlbgcoord 0, 0
ld bc, VBGMap1 - VBGMap0
ld a, " "
call ByteFill
@@ -446,7 +446,7 @@
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
--- /dev/null
+++ b/engine/intro_menu.asm
@@ -1,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
--- a/engine/link.asm
+++ b/engine/link.asm
@@ -493,7 +493,7 @@
pop hl
bccoord 1, 14
call PlaceWholeStringInBoxAtOnce
- call FadeToWhite
+ call RotateThreePalettesRight
call ClearScreen
ld b, $8
call GetSGBLayout
@@ -1583,7 +1583,7 @@
jr nz, .asm_28ade
Function28b22: ; 28b22
- call FadeToWhite
+ call RotateThreePalettesRight
call ClearScreen
ld b, $8
call GetSGBLayout
@@ -2191,7 +2191,7 @@
ld [rVBK], a
.asm_2900b
- ld hl, VBGMap0
+ hlbgcoord 0, 0
ld bc, sScratch - VBGMap0
ld a, " "
call ByteFill
@@ -2372,7 +2372,7 @@
push af
call DisableLCD
callab Function8cf53
- ld hl, $9874
+ hlbgcoord 20, 3
ld bc, $c
ld a, $60
call ByteFill
@@ -2500,7 +2500,7 @@
call ClearSprites
call DisableLCD
callab Function8cf53
- ld hl, VBGMap0
+ hlbgcoord 0, 0
ld bc, sScratch - VBGMap0
ld a, " "
call ByteFill
--- a/engine/main_menu.asm
+++ b/engine/main_menu.asm
@@ -240,7 +240,7 @@
Function49e27: ; 49e27
- call Function6e3
+ call CheckRTCStatus
and $80
jr nz, .asm_49e39
hlcoord 0, 14
@@ -259,7 +259,7 @@
ld a, [wSaveFileExists]
and a
ret z
- call Function6e3
+ call CheckRTCStatus
and $80
jp nz, Function49e75
call UpdateTime
@@ -560,7 +560,7 @@
ld c, 2
call DelayFrames
ld c, $1
- call Function4802f
+ call InitMobileProfile
push af
call ClearBGPalettes
pop af
--- a/engine/map_setup.asm
+++ b/engine/map_setup.asm
@@ -249,10 +249,10 @@
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 @@
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,7 +417,7 @@
callba _UpdateTimePals
ret
-FadeOutMapAndMusic: ; 15574
+RotatePalettesRightMapAndMusic: ; 15574
ld e, 0
ld a, [MusicFadeIDLo]
ld d, 0
@@ -424,7 +424,7 @@
ld a, [MusicFadeIDHi]
ld a, $4
ld [MusicFade], a
- call FadeToWhite
+ call RotateThreePalettesRight
ret
; 15587
--- a/engine/phone.asm
+++ b/engine/phone.asm
@@ -604,7 +604,7 @@
call PlaySFX
call Phone_CallerTextbox
call UpdateSprites
- callba Function4d188
+ callba PhoneRing_LoadEDTile
ret
; 90355
@@ -614,7 +614,7 @@
Phone_Wait20Frames
ld c, 20
call DelayFrames
- callba Function4d188
+ callba PhoneRing_LoadEDTile
ret
; 90363
--- a/engine/pokegear.asm
+++ b/engine/pokegear.asm
@@ -2332,7 +2332,7 @@
call TownMapBubble
call TownMapPals
- ld hl, VBGMap0 ; BG Map 0
+ hlbgcoord 0, 0 ; BG Map 0
call TownMapBGUpdate
call TownMapMon
@@ -2371,12 +2371,12 @@
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 @@
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
--- 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 @@
.refused
call ExitMenu
call Functiond90
- callba SaveMenu_LoadDETile
+ callba SaveMenu_LoadEDTile
scf
ret
--- a/engine/slot_machine.asm
+++ b/engine/slot_machine.asm
@@ -26,7 +26,7 @@
call PlayMusic
call DelayFrame
call DisableLCD
- ld hl, VBGMap0 tile $00
+ hlbgcoord 0, 0
lb bc, 4, 0
ld a, $7f
call ByteFill
--- a/engine/specials.asm
+++ b/engine/specials.asm
@@ -66,11 +66,11 @@
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 @@
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 @@
ret
-Special_FadeOutMusic: ; c48f
+Special_RotatePalettesRightMusic: ; c48f
ld a, MUSIC_NONE % $100
ld [MusicFadeIDLo], a
ld a, MUSIC_NONE / $100
--- a/engine/time_capsule/conversion.asm
+++ b/engine/time_capsule/conversion.asm
@@ -364,7 +364,7 @@
pop af
ld [wPokedexStatus], a
call MaxVolume
- call FadeToWhite
+ call RotateThreePalettesRight
ld a, [hSCX]
add $fb
ld [hSCX], a
--- a/engine/timeofdaypals.asm
+++ b/engine/timeofdaypals.asm
@@ -116,7 +116,7 @@
ret
; 8c079
-FadeInPalettes:: ; 8c079
+RotatePalettesLeftPalettes:: ; 8c079
ld c, $12
call GetTimePalFade
ld b, $4
@@ -124,7 +124,7 @@
ret
; 8c084
-FadeOutPalettes:: ; 8c084
+RotatePalettesRightPalettes:: ; 8c084
call Function8c0c1
ld c, $9
call GetTimePalFade
@@ -150,7 +150,7 @@
ret
; 8c0ab
-Special_FadeInQuickly: ; 8c0ab
+Special_RotatePalettesLeftQuickly: ; 8c0ab
ld c, $0
call GetTimePalFade
ld b, $4
--- a/engine/timeset.asm
+++ b/engine/timeset.asm
@@ -15,7 +15,7 @@
ld [MusicFadeIDHi], a
ld c, 8
call DelayFrames
- call Function4dd
+ call RotateFourPalettesLeft
call ClearTileMap
call ClearSprites
ld b, SCGB_08
@@ -37,7 +37,7 @@
call Request1bpp
call .ClearScreen
call WaitBGMap
- call Function4a3
+ call RotateFourPalettesRight
ld hl, UnknownText_0x90874
call PrintText
ld hl, wc608
--- a/engine/title.asm
+++ b/engine/title.asm
@@ -31,8 +31,8 @@
; Clear screen palettes
- ld hl, VBGMap0
- ld bc, $0280
+ hlbgcoord 0, 0
+ ld bc, 20 bgrows
xor a
call ByteFill
@@ -42,8 +42,8 @@
; 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 @@
; 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 @@
; 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 @@
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 @@
LoadSuicuneFrame: ; 10eed2
hlcoord 6, 12
ld b, 6
-.row
+.bgrows
ld c, 8
.col
ld a, d
@@ -288,7 +288,7 @@
add d
ld d, a
dec b
- jr nz, .row
+ jr nz, .bgrows
ret
; 10eeef
@@ -298,8 +298,8 @@
; 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 @@
add d
ld d, a
dec b
- jr nz, .row
+ jr nz, .bgrows
ret
; 10ef06
--- a/event/field_moves.asm
+++ b/event/field_moves.asm
@@ -7,7 +7,7 @@
; 8c7e1
BlindingFlash: ; 8c7e1
- callba FadeOutPalettes
+ callba RotatePalettesRightPalettes
ld hl, StatusFlags
set 2, [hl]
callba Function8c0e5
@@ -15,7 +15,7 @@
ld b, SCGB_09
call GetSGBLayout
callba Function49409
- callba FadeInPalettes
+ callba RotatePalettesLeftPalettes
ret
; 8c80a
--- a/event/halloffame.asm
+++ b/event/halloffame.asm
@@ -40,7 +40,7 @@
ld [MusicFadeIDHi], a
ld a, $a
ld [MusicFade], a
- callba FadeOutPalettes
+ callba RotatePalettesRightPalettes
xor a
ld [VramState], a
ld [hMapAnims], a
@@ -63,7 +63,7 @@
ld [MusicFadeIDHi], a
ld a, 10
ld [MusicFade], a
- callba FadeOutPalettes
+ callba RotatePalettesRightPalettes
xor a
ld [VramState], a
ld [hMapAnims], a
@@ -114,7 +114,7 @@
call Function86810
ld a, $4
ld [MusicFade], a
- call FadeToWhite
+ call RotateThreePalettesRight
ld c, 8
call DelayFrames
ret
--- a/event/magnet_train.asm
+++ b/event/magnet_train.asm
@@ -158,7 +158,7 @@
; 8cd27
DrawMagnetTrain: ; 8cd27
- ld hl, VBGMap0
+ hlbgcoord 0, 0
xor a
.asm_8cd2b
call GetMagnetTrainBGTiles
@@ -167,19 +167,19 @@
inc a
cp $12
jr c, .asm_8cd2b
- ld hl, VBGMap0 tile $0c
+ hlbgcoord 0, 6
ld de, MagnetTrainTilemap1
ld c, 20
call .FillLine
- ld hl, VBGMap0 tile $0e
+ hlbgcoord 0, 7
ld de, MagnetTrainTilemap2
ld c, 20
call .FillLine
- ld hl, VBGMap0 tile $10
+ hlbgcoord 0, 8
ld de, MagnetTrainTilemap3
ld c, 20
call .FillLine
- ld hl, VBGMap0 tile $12
+ hlbgcoord 0, 9
ld de, MagnetTrainTilemap4
ld c, 20
call .FillLine
@@ -262,25 +262,25 @@
ld [rVBK], a
; bushes
- ld hl, VBGMap0
- ld bc, 8 tiles
+ hlbgcoord 0, 0
+ ld bc, 4 bgrows
ld a, $2
call ByteFill
; train
- ld hl, VBGMap0 tile $08
- ld bc, 20 tiles
+ hlbgcoord 0, 4
+ ld bc, 10 bgrows
xor a
call ByteFill
; more bushes
- ld hl, VBGMap0 tile $1c
- ld bc, 8 tiles
+ hlbgcoord 0, 14
+ ld bc, 4 bgrows
ld a, $2
call ByteFill
; train window
- ld hl, VBGMap0 tile $10 + 7
+ hlbgcoord 7, 8
ld bc, 6
ld a, $4
call ByteFill
--- a/event/sacred_ash.asm
+++ b/event/sacred_ash.asm
@@ -52,12 +52,12 @@
special HealParty
reloadmappart
playsound SFX_WARP_TO
- special FadeOutPalettes
- special FadeInPalettes
- special FadeOutPalettes
- special FadeInPalettes
- special FadeOutPalettes
- special FadeInPalettes
+ special RotatePalettesRightPalettes
+ special RotatePalettesLeftPalettes
+ special RotatePalettesRightPalettes
+ special RotatePalettesLeftPalettes
+ special RotatePalettesRightPalettes
+ special RotatePalettesLeftPalettes
waitbutton
writetext UnknownText_0x50845
playsound SFX_CAUGHT_MON
--- a/event/whiteout.asm
+++ b/event/whiteout.asm
@@ -10,7 +10,7 @@
Script_Whiteout: ; 0x124ce
writetext .WhitedOutText
closetext
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
pause 40
special HealParty
checkflag ENGINE_BUG_CONTEST_TIMER
@@ -37,7 +37,7 @@
call ClearScreen
call Function3200
call HideSprites
- call Function4f0
+ call RotateThreePalettesLeft
ret
; 1250a
--- a/home.asm
+++ b/home.asm
@@ -579,7 +579,7 @@
ld a, 1
ld [hBGMapMode], a
- jr LoadDETile
+ jr LoadEDTile
.dmg
; WaitBGMap
@@ -595,8 +595,8 @@
and a
jr z, WaitBGMap
-LoadDETile:: ; 323d
- jr .LoadDETile
+LoadEDTile:: ; 323d
+ jr .LoadEDTile
; 323f
.unreferenced_323f ; 323f
@@ -604,7 +604,7 @@
ret
; 3246
-.LoadDETile ; 3246
+.LoadEDTile ; 3246
ld a, [hBGMapMode]
push af
xor a
--- a/home/audio.asm
+++ b/home/audio.asm
@@ -312,13 +312,13 @@
ret
; 3ca8
-Unused_FadeOutMusic:: ; 3ca8
+Unused_RotatePalettesRightMusic:: ; 3ca8
ld a, 4
ld [MusicFade], a
ret
; 3cae
-FadeInMusic:: ; 3cae
+RotatePalettesLeftMusic:: ; 3cae
ld a, 4 | 1 << 7
ld [MusicFade], a
ret
--- a/home/fade.asm
+++ b/home/fade.asm
@@ -8,10 +8,10 @@
ld a, l
sub b
ld l, a
- jr nc, .asm_499
+ jr nc, .okay
dec h
-.asm_499
+.okay
ld a, [hli]
ld [rBGP], a
ld a, [hli]
@@ -22,34 +22,34 @@
; 4a3
-Function4a3:: ; 4a3
+RotateFourPalettesRight:: ; 4a3
ld a, [hCGB]
and a
- jr z, .asm_4af
+ jr z, .dmg
ld hl, IncGradGBPalTable_00
ld b, 4
- jr FadeOut
+ jr RotatePalettesRight
-.asm_4af
+.dmg
ld hl, IncGradGBPalTable_08
ld b, 4
- jr FadeOut
+ jr RotatePalettesRight
; 4b6
-FadeToWhite:: ; 4b6
+RotateThreePalettesRight:: ; 4b6
ld a, [hCGB]
and a
- jr z, .asm_4c2
+ jr z, .dmg
ld hl, IncGradGBPalTable_05
ld b, 3
- jr FadeOut
+ jr RotatePalettesRight
-.asm_4c2
+.dmg
ld hl, IncGradGBPalTable_13
ld b, 3
-; 4c7
-
-FadeOut:: ; 4c7
+RotatePalettesRight:: ; 4c7
+; Rotate palettes to the right and fill with loaded colors from the left
+; If we're already at the leftmost color, fill with the leftmost color
push de
ld a, [hli]
call DmgToCgbBGPals
@@ -62,39 +62,38 @@
call DelayFrames
pop de
dec b
- jr nz, FadeOut
+ jr nz, RotatePalettesRight
ret
; 4dd
-Function4dd:: ; 4dd
+RotateFourPalettesLeft:: ; 4dd
ld a, [hCGB]
and a
- jr z, .asm_4e9
+ jr z, .dmg
ld hl, IncGradGBPalTable_04 - 1
ld b, 4
- jr FadeIn
+ jr RotatePalettesLeft
-.asm_4e9
+.dmg
ld hl, IncGradGBPalTable_12 - 1
ld b, 4
- jr FadeIn
+ jr RotatePalettesLeft
; 4f0
-Function4f0:: ; 4f0
+RotateThreePalettesLeft:: ; 4f0
ld a, [hCGB]
and a
- jr z, .asm_4fc
+ jr z, .dmg
ld hl, IncGradGBPalTable_07 - 1
ld b, 3
- jr FadeIn
+ jr RotatePalettesLeft
-.asm_4fc
+.dmg
ld hl, IncGradGBPalTable_15 - 1
ld b, 3
- ; fallthrough
-; 501
-
-FadeIn:: ; 501
+RotatePalettesLeft:: ; 501
+; Rotate palettes to the left and fill with loaded colors from the right
+; If we're already at the rightmost color, fill with the rightmost color
push de
ld a, [hld]
ld d, a
@@ -107,7 +106,7 @@
call DelayFrames
pop de
dec b
- jr nz, FadeIn
+ jr nz, RotatePalettesLeft
ret
; 517
@@ -117,9 +116,11 @@
IncGradGBPalTable_01:: db %11111110, %11111110, %11111110
IncGradGBPalTable_02:: db %11111001, %11111001, %11111001
IncGradGBPalTable_03:: db %11100100, %11100100, %11100100
+
IncGradGBPalTable_04:: db %11100100, %11100100, %11100100
IncGradGBPalTable_05:: db %10010000, %10010000, %10010000
IncGradGBPalTable_06:: db %01000000, %01000000, %01000000
+
IncGradGBPalTable_07:: db %00000000, %00000000, %00000000
; bgp obp1 obp2
IncGradGBPalTable_08:: db %11111111, %11111111, %11111111
@@ -126,8 +127,10 @@
IncGradGBPalTable_09:: db %11111110, %11111110, %11111000
IncGradGBPalTable_10:: db %11111001, %11100100, %11100100
IncGradGBPalTable_11:: db %11100100, %11010000, %11100000
+
IncGradGBPalTable_12:: db %11100100, %11010000, %11100000
IncGradGBPalTable_13:: db %10010000, %10000000, %10010000
IncGradGBPalTable_14:: db %01000000, %01000000, %01000000
+
IncGradGBPalTable_15:: db %00000000, %00000000, %00000000
; 547
--- a/home/map.asm
+++ b/home/map.asm
@@ -2007,7 +2007,7 @@
xor a
ld [hBGMapMode], a
call LoadStandardMenuDataHeader
- callba FadeOutPalettes
+ callba RotatePalettesRightPalettes
call ClearSprites
call DisableSpriteUpdates
ret
@@ -2036,7 +2036,7 @@
call GetSGBLayout
callba Function49409
call Function3200
- callba FadeInPalettes
+ callba RotatePalettesLeftPalettes
call EnableSpriteUpdates
ret
; 2b74
--- a/home/time.asm
+++ b/home/time.asm
@@ -101,7 +101,7 @@
; update dl
ld [hRTCDayLo], a ; DL
-; flag for s0_ac60
+; flag for sRTCStatusFlags
ld a, %01000000
jr .set
@@ -120,7 +120,7 @@
; update dl
ld [hRTCDayLo], a ; DL
-; flag for s0_ac60
+; flag for sRTCStatusFlags
ld a, %00100000
.set
@@ -277,23 +277,23 @@
; 6c4
-Function6c4:: ; 6c4
-; clear s0_ac60
+ClearRTCStatus:: ; 6c4
+; clear sRTCStatusFlags
xor a
push af
- ld a, BANK(s0_ac60)
+ ld a, BANK(sRTCStatusFlags)
call GetSRAMBank
pop af
- ld [s0_ac60], a
+ ld [sRTCStatusFlags], a
call CloseSRAM
ret
; 6d3
-Function6d3:: ; 6d3
-; append flags to s0_ac60
- ld hl, s0_ac60
+RecordRTCStatus:: ; 6d3
+; append flags to sRTCStatusFlags
+ ld hl, sRTCStatusFlags
push af
- ld a, BANK(s0_ac60)
+ ld a, BANK(sRTCStatusFlags)
call GetSRAMBank
pop af
or [hl]
@@ -302,11 +302,11 @@
ret
; 6e3
-Function6e3:: ; 6e3
-; check s0_ac60
- ld a, BANK(s0_ac60)
+CheckRTCStatus:: ; 6e3
+; check sRTCStatusFlags
+ ld a, BANK(sRTCStatusFlags)
call GetSRAMBank
- ld a, [s0_ac60]
+ ld a, [sRTCStatusFlags]
call CloseSRAM
ret
; 6ef
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -605,7 +605,7 @@
ld b, 0
callba NamingScreen
- call FadeToWhite
+ call RotateThreePalettesRight
call LoadStandardFont
@@ -686,7 +686,7 @@
ld hl, Text_SentToBillsPC
call PrintText
- call FadeToWhite
+ call RotateThreePalettesRight
call LoadStandardFont
jr .return_from_capture
--- a/macros.asm
+++ b/macros.asm
@@ -221,3 +221,16 @@
endm
depixel EQUS "ldpixel de,"
+
+bgcoord: MACRO
+IF _NARG == 4
+ ld \1, \3 * $20 + \2 + \4
+ELSE
+ ld \1, \3 * $20 + \2 + VBGMap0
+ENDC
+ENDM
+
+hlbgcoord EQUS "bgcoord hl,"
+debgcoord EQUS "bgcoord de,"
+bcbgcoord EQUS "bgcoord bc,"
+bgrows EQUS "* $20"
--- a/macros/charmap.asm
+++ b/macros/charmap.asm
@@ -35,6 +35,7 @@
; Actual characters
charmap "▲", $61
charmap "_", $62
+ charmap "<COLON>", $6d ; necessary because ":" is already used
charmap "′", $6e
charmap "<LV>", $6e
charmap "″", $6f
--- a/main.asm
+++ b/main.asm
@@ -14,12 +14,12 @@
jr z, .notinbattle
call TextBox
- jr .incave
+ jr .proceed
.notinbattle
predef Function28eef
-.incave
+.proceed
hlcoord 4, 11
ld de, .Waiting
call PlaceString
@@ -58,1431 +58,8 @@
INCLUDE "engine/map_objects.asm"
+INCLUDE "engine/intro_menu.asm"
-Function5ae8: ; 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 Function4802f
- 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 Function5e85
- ld a, $1
- ld [hBGMapMode], a
- ld c, 20
- call DelayFrames
- call ConfirmContinue
- jr nc, .Check1Pass
- call WriteBackup
- jr .FailToLoad
-
-.Check1Pass
- call Function5e48
- 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 Function5df0
- call WriteBackup
- call ClearTileMap
- ld c, 20
- call DelayFrames
- callba JumpRoamMons
- callba Function105091
- 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
-
-Function5df0: ; 5df0
- callba Function10632f
- 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 Function4802f
- 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
-
-Function5e48: ; 5e48
- call Function6e3
- 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
-
-Function5e85: ; 5e85
- call Function6e3
- and $80
- jr z, .asm_5e93
- lb de, 4, 8
- call Function5eaf
- ret
-
-.asm_5e93
- lb de, 4, 8
- call Function5e9f
- ret
-; 5e9a
-
-Function5e9a: ; 5e9a
- lb de, 4, 0
- jr Function5e9f
-; 5e9f
-
-Function5e9f: ; 5e9f
- call Function5ebf
- call Function5f1c
- call Function5f40
- call LoadFontsExtra
- call UpdateSprites
- ret
-; 5eaf
-
-Function5eaf: ; 5eaf
- call Function5ebf
- call Function5f1c
- call Function5f48
- call LoadFontsExtra
- call UpdateSprites
- ret
-; 5ebf
-
-Function5ebf: ; 5ebf
- xor a
- ld [hBGMapMode], a
- ld hl, MenuDataHeader_0x5ed9
- ld a, [StatusFlags]
- bit 0, a ; pokedex
- jr nz, .asm_5ecf
- ld hl, MenuDataHeader_0x5efb
-
-.asm_5ecf
- call Function1e35
- call MenuBox
- call Function1c89
- ret
-; 5ed9
-
-MenuDataHeader_0x5ed9: ; 5ed9
- db $40 ; flags
- db 00, 00 ; start coords
- db 09, 15 ; end coords
- dw MenuData2_0x5ee1
- db 1 ; default option
-; 5ee1
-
-MenuData2_0x5ee1: ; 5ee1
- db $00 ; flags
- db 4 ; items
- db "PLAYER@"
- db "BADGES@"
- db "#DEX@"
- db "TIME@"
-; 5efb
-
-MenuDataHeader_0x5efb: ; 5efb
- db $40 ; flags
- db 00, 00 ; start coords
- db 09, 15 ; end coords
- dw MenuData2_0x5f03
- db 1 ; default option
-; 5f03
-
-MenuData2_0x5f03: ; 5f03
- db $00 ; flags
- db 4 ; items
- db "PLAYER <PLAYER>@"
- db "BADGES@"
- db " @"
- db "TIME@"
-; 5f1c
-
-
-Function5f1c: ; 5f1c
- call MenuBoxCoord2Tile
- push hl
- ld de, $5d
- add hl, de
- call DisplayBadgeCount
- pop hl
- push hl
- ld de, $84
- add hl, de
- call DisplayPokedexNumCaught
- pop hl
- push hl
- ld de, $30
- add hl, de
- ld de, .Player
- call PlaceString
- pop hl
- ret
-
-.Player
- db "<PLAYER>@"
-; 5f40
-
-Function5f40: ; 5f40
- ld de, $a9
- add hl, de
- call DisplayGameTime
- ret
-; 5f48
-
-Function5f48: ; 5f48
- ld de, $a9
- add hl, de
- ld de, .text_5f53
- call PlaceString
- ret
-
-.text_5f53
- db " ???@"
-; 5f58
-
-DisplayBadgeCount: ; 5f58
- push hl
- ld hl, JohtoBadges
- ld b, $2
- call CountSetBits
- pop hl
- ld de, wd265
- lb bc, 1, 2
- jp PrintNum
-; 5f6b
-
-DisplayPokedexNumCaught: ; 5f6b
- ld a, [StatusFlags]
- bit 0, a
- ret z
- push hl
- ld hl, PokedexCaught
- ld b, $20
- call CountSetBits
- pop hl
- ld de, wd265
- lb bc, 1, 3
- jp PrintNum
-; 5f84
-
-DisplayGameTime: ; 5f84
- ld de, GameTimeHours
- lb bc, 2, 3
- call PrintNum
- ld [hl], $6d
- inc hl
- ld de, GameTimeMinutes
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- jp PrintNum
-; 5f99
-
-
-OakSpeech: ; 0x5f99
- callba InitClock
- call Function4dd
- call ClearTileMap
-
- ld de, MUSIC_ROUTE_30
- call PlayMusic
-
- call Function4a3
- call FadeToWhite
- xor a
- ld [CurPartySpecies], a
- ld a, POKEMON_PROF
- ld [TrainerClass], a
- call Intro_PrepTrainerPic
-
- ld b, SCGB_1C
- call GetSGBLayout
- call Intro_FadeInFrontpic
-
- ld hl, OakText1
- call PrintText
- call FadeToWhite
- 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 FadeToWhite
- 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_FadeInFrontpic
-
- ld hl, OakText5
- call PrintText
- call FadeToWhite
- call ClearTileMap
-
- xor a
- ld [CurPartySpecies], a
- callba DrawIntroPlayerPic
-
- ld b, SCGB_1C
- call GetSGBLayout
- call Intro_FadeInFrontpic
-
- 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 FadeToWhite
- call ClearTileMap
-
- call LoadFontsExtra
- call WaitBGMap
-
- xor a
- ld [CurPartySpecies], a
- callba DrawIntroPlayerPic
-
- ld b, SCGB_1C
- call GetSGBLayout
- call Function4f0
-
- 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 FadeToWhite
- call ClearTileMap
- ret
-; 616a
-
-Intro_FadeInFrontpic: ; 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_626a
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 626a
-
-.jumptable_626a
- dw Function5ae8
- 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
-
Function6454:: ; 6454
call DelayFrame
ld a, [hOAMUpdate]
@@ -10745,10 +9322,10 @@
ld a, $c
ld [MBC3SRamBank], a
res 7, [hl]
- ld a, BANK(s0_ac60)
+ ld a, BANK(sRTCStatusFlags)
ld [MBC3SRamBank], a
xor a
- ld [s0_ac60], a
+ ld [sRTCStatusFlags], a
call CloseSRAM
ret
; 14089
@@ -10762,7 +9339,7 @@
jr nc, .skip_set
; bit 5: Day count exceeds 139
; bit 6: Day count exceeds 255
- call Function6d3 ; set flag on s0_ac60
+ call RecordRTCStatus ; set flag on sRTCStatusFlags
.skip_set
call StartRTC
@@ -10781,12 +9358,12 @@
.set_bit_7
; Day count exceeds 16383
ld a, %10000000
- call Function6d3 ; set bit 7 on s0_ac60
+ call RecordRTCStatus ; set bit 7 on sRTCStatusFlags
ret
; 140ae
Function140ae: ; 140ae
- call Function6e3
+ call CheckRTCStatus
ld c, a
and %11000000 ; Day count exceeded 255 or 16383
jr nz, .time_overflow
@@ -19105,7 +17682,7 @@
; 4cf45
-SaveMenu_LoadDETile: ; 4cf45 (13:4f45)
+SaveMenu_LoadEDTile: ; 4cf45 (13:4f45)
ld a, [hCGB]
and a
jp z, WaitBGMap
@@ -19249,7 +17826,7 @@
ret
; 4d188
-Function4d188: ; 4d188
+PhoneRing_LoadEDTile: ; 4d188
ld a, [hCGB]
and a
jp z, WaitBGMap
@@ -19275,11 +17852,11 @@
ld a, 1 ; BANK(VBGMap2)
ld [rVBK], a
hlcoord 0, 0, AttrMap
- call Function4d1cb
+ call .LoadEDTile
ld a, 0 ; BANK(VBGMap0)
ld [rVBK], a
hlcoord 0, 0
- call Function4d1cb
+ call .LoadEDTile
.wait2
ld a, [rLY]
cp $8f
@@ -19293,7 +17870,7 @@
ret
; 4d1cb
-Function4d1cb: ; 4d1cb
+.LoadEDTile: ; 4d1cb
ld [hSPBuffer], sp
ld sp, hl
ld a, [hBGMapAddress + 1]
@@ -19458,10 +18035,10 @@
ret z
call ClockResetPassword
jr c, .wrongpassword
- ld a, BANK(s0_ac60)
+ ld a, BANK(sRTCStatusFlags)
call GetSRAMBank
ld a, $80
- ld [s0_ac60], a
+ ld [sRTCStatusFlags], a
call CloseSRAM
ld hl, .text_okay
call PrintText
@@ -19680,7 +18257,7 @@
ld c, $2
call .ComponentFromNumber
ld hl, sPlayerData + (PlayerName - wPlayerData)
- ld c, $5
+ ld c, $5 ; PLAYER_NAME_LENGTH_J
call .ComponentFromString
ld hl, sPlayerData + (Money - wPlayerData)
ld c, $3
@@ -25211,13 +23788,13 @@
ld [rVBK], a
ld c, $8
ld hl, w6_d000 + $80
- ld de, VBGMap1 tile $00
+ debgcoord 0, 0, VBGMap1
call Function104209
ld a, $0
ld [rVBK], a
ld c, $8
ld hl, w6_d000
- ld de, VBGMap1 tile $00
+ debgcoord 0, 0, VBGMap1
call Function104209
ret
@@ -25515,13 +24092,13 @@
ld [rVBK], a
xor a
lb bc, 4, 0
- ld hl, VBGMap0 tile $00
+ hlbgcoord 0, 0
call ByteFill
pop af
ld [rVBK], a
ld a, $60
lb bc, 4, 0
- ld hl, VBGMap0 tile $00
+ hlbgcoord 0, 0
call ByteFill
ret
@@ -25536,7 +24113,7 @@
ld [rVBK], a
Function1047b4: ; 1047b4 (41:47b4)
- ld hl, VBGMap0 tile $00
+ hlbgcoord 0, 0
ld c, $14
ld b, $12
.asm_1047bb
@@ -26788,7 +25365,7 @@
call GetMysteryGiftBank
ld d, $0
ld b, $2
- ld hl, s0_abf0
+ ld hl, sMysteryGiftDecorationsReceived
predef_id FlagPredef
push hl
push bc
@@ -26809,29 +25386,29 @@
Function105091: ; 105091 (41:5091)
call GetMysteryGiftBank
ld c, $0
-.asm_105096
+.loop
push bc
ld d, $0
- ld b, $2
- ld hl, s0_abf0
+ ld b, CHECK_FLAG
+ ld hl, sMysteryGiftDecorationsReceived
predef FlagPredef
ld a, c
and a
pop bc
- jr z, .asm_1050b0
+ jr z, .skip
push bc
callab SetSpecificDecorationFlag
pop bc
-.asm_1050b0
+.skip
inc c
ld a, c
- cp $2a + 1
- jr c, .asm_105096
+ cp Trophys - DecorationIDs
+ jr c, .loop
jp CloseSRAM
Special_UnlockMysteryGift: ; 1050b9
call GetMysteryGiftBank
- ld hl, s0_abe3
+ ld hl, sMysteryGiftUnlocked
ld a, [hl]
inc a
jr nz, .ok
--- a/maps/AzaleaTown.asm
+++ b/maps/AzaleaTown.asm
@@ -30,7 +30,7 @@
moveperson $b, $b, $b
spriteface PLAYER, RIGHT
showemote EMOTE_SHOCK, PLAYER, 15
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
pause 15
appear $b
applymovement $b, MovementData_0x198134
@@ -40,7 +40,7 @@
UnknownScript_0x198034:
spriteface PLAYER, RIGHT
showemote EMOTE_SHOCK, PLAYER, 15
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
pause 15
appear $b
applymovement $b, MovementData_0x19813c
--- a/maps/BattleTowerBattleRoom.asm
+++ b/maps/BattleTowerBattleRoom.asm
@@ -31,7 +31,7 @@
keeptextopen
loadmovesprites
special BattleTowerBattle ; calls predef startbattle
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
reloadmap
if_not_equal $0, Script_FailedBattleTowerChallenge
copybytetovar wNrOfBeatenBattleTowerTrainers ; wcf64
@@ -46,10 +46,10 @@
closetext
loadmovesprites
playmusic MUSIC_HEAL
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
special LoadMapPalettes
pause 60
- special FadeInPalettes
+ special RotatePalettesLeftPalettes
special RestartMapMusic
loadfont
writetext Text_NextUpOpponentNo
@@ -73,7 +73,7 @@
special BattleTowerAction
playsound SFX_SAVE
waitbutton
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
special Reset
Script_DontSaveAndEndTheSession: ; 0x9f4a3
writetext Text_CancelYourBattleRoomChallenge
@@ -84,7 +84,7 @@
writebyte BATTLE_TOWER_ACTION_06
special BattleTowerAction
loadmovesprites
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
warpfacing UP, BATTLE_TOWER_1F, $7, $7
loadfont
jump UnknownScript_0x9e4b0
--- a/maps/BluesHouse.asm
+++ b/maps/BluesHouse.asm
@@ -30,10 +30,10 @@
writetext UnknownText_0x19b266
closetext
loadmovesprites
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
playmusic MUSIC_HEAL
pause 60
- special FadeInPalettes
+ special RotatePalettesLeftPalettes
special RestartMapMusic
loadfont
writetext UnknownText_0x19b296
--- a/maps/BurnedTower1F.asm
+++ b/maps/BurnedTower1F.asm
@@ -49,7 +49,7 @@
UnknownScript_0x185c25:
showemote EMOTE_SHOCK, $4, 15
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
pause 15
spriteface $4, RIGHT
pause 15
@@ -98,7 +98,7 @@
loadmovesprites
dotrigger $2
setevent EVENT_RIVAL_BURNED_TOWER
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
pause 15
earthquake 50
showemote EMOTE_SHOCK, PLAYER, 15
--- a/maps/CherrygroveCity.asm
+++ b/maps/CherrygroveCity.asm
@@ -103,7 +103,7 @@
UnknownScript_0x19c0ae:
spriteface PLAYER, RIGHT
showemote EMOTE_SHOCK, PLAYER, 15
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
pause 15
appear $3
applymovement $3, MovementData_0x19c1ce
--- a/maps/CianwoodCity.asm
+++ b/maps/CianwoodCity.asm
@@ -66,7 +66,7 @@
applymovement $c, MovementData_0x1a00ec
disappear $c
pause 20
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
playmapmusic
pause 10
.Done
--- a/maps/DragonShrine.asm
+++ b/maps/DragonShrine.asm
@@ -130,7 +130,7 @@
writetext UnknownText_0x18d916
closetext
loadmovesprites
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
applymovement $5, MovementData_0x18d2da
loadfont
writetext UnknownText_0x18d974
--- a/maps/DragonsDenB1F.asm
+++ b/maps/DragonsDenB1F.asm
@@ -70,7 +70,7 @@
loadmovesprites
UnknownScript_0x18c8f9:
applymovement $3, MovementData_0x18c9b3
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
pause 30
special RestartMapMusic
disappear $3
--- a/maps/EcruteakGym.asm
+++ b/maps/EcruteakGym.asm
@@ -84,7 +84,7 @@
follow PLAYER, $8
applymovement PLAYER, MovementData_0x99e5f
stopfollow
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
playsound SFX_ENTER_DOOR
waitbutton
warp ECRUTEAK_CITY, $6, $1b
--- a/maps/FastShip1F.asm
+++ b/maps/FastShip1F.asm
@@ -64,7 +64,7 @@
loadmovesprites
scall .LetThePlayerOut
playsound SFX_EXIT_BUILDING
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
waitbutton
setevent EVENT_VERMILION_PORT_SAILOR_AT_GANGWAY
domaptrigger VERMILION_PORT, $1
@@ -77,7 +77,7 @@
loadmovesprites
scall .LetThePlayerOut
playsound SFX_EXIT_BUILDING
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
waitbutton
setevent EVENT_OLIVINE_PORT_SAILOR_AT_GANGWAY
domaptrigger OLIVINE_PORT, $1
--- a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
+++ b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
@@ -43,7 +43,7 @@
appear $4
spriteface PLAYER, UP
spriteface $4, UP
- special Special_FadeInQuickly
+ special Special_RotatePalettesLeftQuickly
spriteface $3, DOWN
showemote EMOTE_SHOCK, $3, 15
applymovement $4, MovementData_0x7600c
--- a/maps/FastShipCabins_SW_SSW_NW.asm
+++ b/maps/FastShipCabins_SW_SSW_NW.asm
@@ -70,7 +70,7 @@
playmusic MUSIC_HEAL
pause 60
special RestartMapMusic
- special Special_FadeInQuickly
+ special Special_RotatePalettesLeftQuickly
loadfont
writetext FastShipBedText2
closetext
--- a/maps/IlexForest.asm
+++ b/maps/IlexForest.asm
@@ -449,7 +449,7 @@
loadmovesprites
pause 20
showemote EMOTE_SHOCK, PLAYER, 20
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
applymovement PLAYER, MovementData_0x6ef58
pause 30
spriteface PLAYER, DOWN
--- a/maps/IndigoPlateauPokeCenter1F.asm
+++ b/maps/IndigoPlateauPokeCenter1F.asm
@@ -55,7 +55,7 @@
appear $5
spriteface PLAYER, DOWN
showemote EMOTE_SHOCK, PLAYER, 15
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
pause 15
applymovement $5, MovementData_0x180164
playmusic MUSIC_RIVAL_ENCOUNTER
@@ -76,7 +76,7 @@
appear $5
spriteface PLAYER, DOWN
showemote EMOTE_SHOCK, PLAYER, 15
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
pause 15
applymovement $5, MovementData_0x18016b
playmusic MUSIC_RIVAL_ENCOUNTER
@@ -154,7 +154,7 @@
closetext
loadmovesprites
playsound SFX_WARP_TO
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
waitbutton
warp NEW_BARK_TOWN, $d, $6
end
--- a/maps/KurtsHouse.asm
+++ b/maps/KurtsHouse.asm
@@ -40,7 +40,7 @@
writetext UnknownText_0x18e473
closetext
loadmovesprites
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
setevent EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET
checkcode VAR_FACING
if_equal UP, .RunAround
@@ -287,7 +287,7 @@
setevent EVENT_FOREST_IS_RESTLESS
clearevent EVENT_CAN_GIVE_GS_BALL_TO_KURT
clearevent EVENT_GAVE_GS_BALL_TO_KURT
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
pause 20
showemote EMOTE_SHOCK, $2, 30
checkcode VAR_FACING
--- a/maps/LancesRoom.asm
+++ b/maps/LancesRoom.asm
@@ -44,12 +44,12 @@
end
UnknownScript_0x180e6a:
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
applymovement PLAYER, MovementData_0x180f38
jump LanceScript_0x180e7b
UnknownScript_0x180e74:
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
applymovement PLAYER, MovementData_0x180f3c
LanceScript_0x180e7b:
spriteface $2, LEFT
@@ -125,7 +125,7 @@
pause 30
loadmovesprites
applymovement $3, MovementData_0x180f5b
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
pause 15
warpfacing UP, HALL_OF_FAME, $4, $d
end
--- a/maps/MobileBattleRoom.asm
+++ b/maps/MobileBattleRoom.asm
@@ -35,11 +35,11 @@
writetext MobileBattleRoom_HealText
pause 20
loadmovesprites
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
playmusic MUSIC_HEAL
special LoadMapPalettes
pause 60
- special FadeInPalettes
+ special RotatePalettesLeftPalettes
special RestartMapMusic
refreshscreen $0
.two_:
--- a/maps/MountMoon.asm
+++ b/maps/MountMoon.asm
@@ -19,7 +19,7 @@
UnknownScript_0x7408e:
spriteface PLAYER, RIGHT
showemote EMOTE_SHOCK, PLAYER, 15
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
pause 15
applymovement $2, MovementData_0x740f9
playmusic MUSIC_RIVAL_ENCOUNTER
--- a/maps/MrPokemonsHouse.asm
+++ b/maps/MrPokemonsHouse.asm
@@ -114,7 +114,7 @@
special Mobile_HealParty
special HealParty
pause 60
- special Special_FadeInQuickly
+ special Special_RotatePalettesLeftQuickly
special RestartMapMusic
loadfont
writetext UnknownText_0x197134
--- a/maps/OlivineCity.asm
+++ b/maps/OlivineCity.asm
@@ -25,7 +25,7 @@
UnknownScript_0x1a8833:
spriteface PLAYER, LEFT
showemote EMOTE_SHOCK, PLAYER, 15
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
pause 15
playsound SFX_ENTER_DOOR
appear $5
@@ -49,7 +49,7 @@
UnknownScript_0x1a886b:
spriteface PLAYER, LEFT
showemote EMOTE_SHOCK, PLAYER, 15
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
pause 15
playsound SFX_ENTER_DOOR
appear $5
--- a/maps/OlivineLighthouse6F.asm
+++ b/maps/OlivineLighthouse6F.asm
@@ -42,9 +42,9 @@
loadmovesprites
special RestartMapMusic
cry AMPHAROS
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
pause 10
- special FadeInPalettes
+ special RotatePalettesLeftPalettes
loadfont
writetext UnknownText_0x60f3d
closetext
@@ -116,10 +116,10 @@
cry AMPHAROS
closetext
loadmovesprites
- special FadeOutPalettes
- special FadeInPalettes
- special FadeOutPalettes
- special FadeInPalettes
+ special RotatePalettesRightPalettes
+ special RotatePalettesLeftPalettes
+ special RotatePalettesRightPalettes
+ special RotatePalettesLeftPalettes
end
ItemFragment_0x60c66:
--- a/maps/OlivinePort.asm
+++ b/maps/OlivinePort.asm
@@ -39,7 +39,7 @@
waitbutton
applymovement PLAYER, MovementData_0x74a30
playsound SFX_EXIT_BUILDING
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
waitbutton
checkevent EVENT_FAST_SHIP_FIRST_TIME
iffalse UnknownScript_0x7490a
--- a/maps/RadioTower2F.asm
+++ b/maps/RadioTower2F.asm
@@ -140,7 +140,7 @@
writetext UnknownText_0x5e054
closetext
loadmovesprites
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
pause 20
special RestartMapMusic
checkcode VAR_BLUECARDBALANCE
@@ -169,7 +169,7 @@
closetext
loadmovesprites
spriteface $b, RIGHT
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
pause 20
special RestartMapMusic
end
@@ -200,7 +200,7 @@
closetext
loadmovesprites
spriteface $b, RIGHT
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
pause 20
special RestartMapMusic
end
--- a/maps/RadioTower5F.asm
+++ b/maps/RadioTower5F.asm
@@ -95,7 +95,7 @@
disappear $3
disappear $4
pause 15
- special Special_FadeInQuickly
+ special Special_RotatePalettesLeftQuickly
setevent EVENT_BEAT_ROCKET_EXECUTIVEM_1
setevent EVENT_CLEARED_RADIO_TOWER
clearflag ENGINE_ROCKETS_IN_RADIO_TOWER
--- a/maps/Route24.asm
+++ b/maps/Route24.asm
@@ -21,7 +21,7 @@
loadfont
writetext UnknownText_0x1addc0
keeptextopen
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
writetext UnknownText_0x1adee1
closetext
loadmovesprites
@@ -29,7 +29,7 @@
special Special_ReloadSpritesNoPalettes
disappear $2
pause 25
- special Special_FadeInQuickly
+ special Special_RotatePalettesLeftQuickly
playmapmusic
end
--- a/maps/Route26HealSpeechHouse.asm
+++ b/maps/Route26HealSpeechHouse.asm
@@ -17,7 +17,7 @@
playmusic MUSIC_HEAL
special HealParty
pause 60
- special Special_FadeInQuickly
+ special Special_RotatePalettesLeftQuickly
special RestartMapMusic
loadfont
writetext UnknownText_0x7b18b
--- a/maps/Route35NationalParkgate.asm
+++ b/maps/Route35NationalParkgate.asm
@@ -75,7 +75,7 @@
loadmovesprites
scall Route35NationalParkgate_EnterContest
playsound SFX_ENTER_DOOR
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
waitbutton
warpfacing UP, NATIONAL_PARK_BUG_CONTEST, $a, $2f
end
@@ -112,7 +112,7 @@
special Special_GiveParkBalls
scall Route35NationalParkgate_EnterContest
playsound SFX_ENTER_DOOR
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
waitbutton
special Special_SelectRandomBugContestContestants
warpfacing UP, NATIONAL_PARK_BUG_CONTEST, $a, $2f
--- a/maps/Route36NationalParkgate.asm
+++ b/maps/Route36NationalParkgate.asm
@@ -74,7 +74,7 @@
appear $d
applymovement PLAYER, MovementData_0x6add1
pause 15
- special Special_FadeInQuickly
+ special Special_RotatePalettesLeftQuickly
jumpstd bugcontestresults
.GoBackToContest:
@@ -83,7 +83,7 @@
loadmovesprites
spriteface PLAYER, LEFT
playsound SFX_EXIT_BUILDING
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
waitbutton
warpfacing LEFT, NATIONAL_PARK_BUG_CONTEST, $21, $12
end
@@ -166,7 +166,7 @@
special Special_GiveParkBalls
spriteface PLAYER, LEFT
playsound SFX_EXIT_BUILDING
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
waitbutton
special Special_SelectRandomBugContestContestants
warpfacing LEFT, NATIONAL_PARK_BUG_CONTEST, $21, $12
--- a/maps/SilverCaveRoom3.asm
+++ b/maps/SilverCaveRoom3.asm
@@ -6,7 +6,7 @@
db 0
RedScript_0x18c603:
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
faceplayer
loadfont
writetext UnknownText_0x18c637
@@ -17,7 +17,7 @@
startbattle
reloadmapmusic
returnafterbattle
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
loadfont
writetext UnknownText_0x18c63f
closetext
@@ -26,7 +26,7 @@
special Special_ReloadSpritesNoPalettes
disappear $2
pause 15
- special Special_FadeInQuickly
+ special Special_RotatePalettesLeftQuickly
pause 30
special HealParty
refreshscreen $0
--- a/maps/SlowpokeWellB1F.asm
+++ b/maps/SlowpokeWellB1F.asm
@@ -34,7 +34,7 @@
disappear $4
disappear $5
pause 15
- special Special_FadeInQuickly
+ special Special_RotatePalettesLeftQuickly
disappear $8
moveperson $8, $b, $6
appear $8
@@ -56,7 +56,7 @@
clearevent EVENT_AZALEA_TOWN_SLOWPOKES
clearevent EVENT_KURTS_HOUSE_SLOWPOKE
clearevent EVENT_KURTS_HOUSE_KURT_1
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
special HealParty
pause 15
warp KURTS_HOUSE, $3, $3
--- a/maps/SproutTower3F.asm
+++ b/maps/SproutTower3F.asm
@@ -18,7 +18,7 @@
UnknownScript_0x184947:
spriteface PLAYER, UP
showemote EMOTE_SHOCK, PLAYER, 15
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
playsound SFX_TACKLE
playsound SFX_ELEVATOR
earthquake 79
@@ -51,7 +51,7 @@
special Special_ReloadSpritesNoPalettes
disappear $8
waitbutton
- special Special_FadeInQuickly
+ special Special_RotatePalettesLeftQuickly
dotrigger $1
special RestartMapMusic
end
--- a/maps/TeamRocketBaseB1F.asm
+++ b/maps/TeamRocketBaseB1F.asm
@@ -445,9 +445,9 @@
end
VoltorbExplodingTrap:
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
cry VOLTORB
- special FadeInPalettes
+ special RotatePalettesLeftPalettes
setlasttalked $ff
writecode VAR_BATTLETYPE, BATTLETYPE_TRAP
loadpokedata VOLTORB, 23
@@ -455,9 +455,9 @@
end
GeodudeExplodingTrap:
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
cry GEODUDE
- special FadeInPalettes
+ special RotatePalettesLeftPalettes
setlasttalked $ff
writecode VAR_BATTLETYPE, BATTLETYPE_TRAP
loadpokedata GEODUDE, 21
@@ -465,9 +465,9 @@
end
KoffingExplodingTrap:
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
cry KOFFING
- special FadeInPalettes
+ special RotatePalettesLeftPalettes
setlasttalked $ff
writecode VAR_BATTLETYPE, BATTLETYPE_TRAP
loadpokedata KOFFING, 21
--- a/maps/TeamRocketBaseB2F.asm
+++ b/maps/TeamRocketBaseB2F.asm
@@ -106,7 +106,7 @@
disappear $d
disappear $e
pause 15
- special Special_FadeInQuickly
+ special Special_RotatePalettesLeftQuickly
dotrigger $2
clearevent EVENT_TEAM_ROCKET_BASE_B2F_LANCE
spriteface $4, DOWN
@@ -155,11 +155,11 @@
writetext UnknownText_0x6da97
closetext
loadmovesprites
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
special Mobile_HealParty
playsound SFX_FULL_HEAL
special HealParty
- special FadeInPalettes
+ special RotatePalettesLeftPalettes
loadfont
writetext UnknownText_0x6daf7
closetext
--- a/maps/TeamRocketBaseB3F.asm
+++ b/maps/TeamRocketBaseB3F.asm
@@ -55,7 +55,7 @@
UnknownScript_0x6e019:
spriteface PLAYER, LEFT
showemote EMOTE_SHOCK, PLAYER, 15
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
appear $a
applymovement $a, MovementData_0x6e164
spriteface PLAYER, LEFT
--- a/maps/TinTower1F.asm
+++ b/maps/TinTower1F.asm
@@ -158,7 +158,7 @@
playsound SFX_EXIT_BUILDING
disappear $5
waitbutton
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
pause 20
playmapmusic
end
--- a/maps/UndergroundPathSwitchRoomEntrances.asm
+++ b/maps/UndergroundPathSwitchRoomEntrances.asm
@@ -80,7 +80,7 @@
UnknownScript_0x7ca80:
spriteface PLAYER, RIGHT
showemote EMOTE_SHOCK, PLAYER, 15
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
pause 15
playsound SFX_EXIT_BUILDING
appear $c
@@ -99,7 +99,7 @@
UnknownScript_0x7caaa:
spriteface PLAYER, RIGHT
showemote EMOTE_SHOCK, PLAYER, 15
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
pause 15
playsound SFX_EXIT_BUILDING
appear $c
--- a/maps/VermilionPort.asm
+++ b/maps/VermilionPort.asm
@@ -51,7 +51,7 @@
waitbutton
applymovement PLAYER, MovementData_0x74ef1
playsound SFX_EXIT_BUILDING
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
waitbutton
setevent EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
clearevent EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
--- a/maps/VictoryRoad.asm
+++ b/maps/VictoryRoad.asm
@@ -19,7 +19,7 @@
moveperson $2, $12, $b
spriteface PLAYER, DOWN
showemote EMOTE_SHOCK, PLAYER, 15
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
pause 15
appear $2
applymovement $2, MovementData_0x74539
@@ -33,7 +33,7 @@
UnknownScript_0x744b5:
spriteface PLAYER, DOWN
showemote EMOTE_SHOCK, PLAYER, 15
- special Special_FadeOutMusic
+ special Special_RotatePalettesRightMusic
pause 15
appear $2
applymovement $2, MovementData_0x74542
--- a/maps/WarehouseEntrance.asm
+++ b/maps/WarehouseEntrance.asm
@@ -226,10 +226,10 @@
writetext UnknownText_0x7c6b8
closetext
loadmovesprites
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
playmusic MUSIC_HEAL
pause 60
- special FadeInPalettes
+ special RotatePalettesLeftPalettes
special RestartMapMusic
loadfont
writetext UnknownText_0x7c6d8
@@ -309,10 +309,10 @@
writetext UnknownText_0x7c80e
closetext
loadmovesprites
- special FadeOutPalettes
+ special RotatePalettesRightPalettes
playmusic MUSIC_HEAL
pause 60
- special FadeInPalettes
+ special RotatePalettesLeftPalettes
special RestartMapMusic
loadfont
writetext UnknownText_0x7c82a
--- a/misc/mobile_12.asm
+++ b/misc/mobile_12.asm
@@ -1,4 +1,4 @@
-Function4802f: ; 4802f (12:402f)
+InitMobileProfile: ; 4802f (12:402f)
xor a
set 6, a
ld [wd002], a
--- a/misc/mobile_40.asm
+++ b/misc/mobile_40.asm
@@ -312,7 +312,7 @@
Function10020b: ; 10020b
xor a
ld [wc303], a
- callba FadeOutPalettes
+ callba RotatePalettesRightPalettes
callba Function106464
call HideSprites
call DelayFrame
@@ -1591,7 +1591,7 @@
ld [rVBK], a
ld hl, w3_d800
- ld de, VBGMap0
+ debgcoord 0, 0
lb bc, $3, $24
call Get2bpp
--- a/misc/mobile_42.asm
+++ b/misc/mobile_42.asm
@@ -241,13 +241,13 @@
Function1081ca: ; 1081ca
ld a, $1
ld [rVBK], a
- ld hl, VBGMap0
+ hlbgcoord 0, 0
ld bc, $0800
ld a, $0
call ByteFill
ld a, $0
ld [rVBK], a
- ld hl, VBGMap0
+ hlbgcoord 0, 0
ld bc, $0800
ld a, $7f
call ByteFill
@@ -1669,10 +1669,10 @@
Function108c6d: ; 108c6d
ld hl, LZ_108fe7
- ld de, VBGMap0
+ debgcoord 0, 0
call Decompress
ld hl, LZ_108fe7
- ld de, VBGMap1
+ debgcoord 0, 0, VBGMap1
call Decompress
ret
; 108c80
@@ -1681,10 +1681,10 @@
ld a, $1
ld [rVBK], a
ld hl, LZ_1090a7
- ld de, VBGMap0
+ debgcoord 0, 0
call Decompress
ld hl, LZ_1090a7
- ld de, VBGMap1
+ debgcoord 0, 0, VBGMap1
call Decompress
ld a, $0
ld [rVBK], a
--- a/misc/mobile_45.asm
+++ b/misc/mobile_45.asm
@@ -8407,7 +8407,7 @@
add hl, de
dec c
jr nz, .asm_117c71 ; 0x117c7b $f4
- call FadeToWhite
+ call RotateThreePalettesRight
pop af
ld [rSVBK], a
ld a, $80
--- a/misc/mobile_5b.asm
+++ b/misc/mobile_5b.asm
@@ -169,7 +169,7 @@
call Function16c130
call Function16c145
call Function16c15c
- ld hl, VBGMap0
+ hlbgcoord 0, 0
call Function16cc73
call Function16cc02
xor a
@@ -795,7 +795,7 @@
; 16cc6e
Function16cc6e: ; 16cc6e
- ld hl, VBGMap1
+ hlbgcoord 0, 0, VBGMap1
jr Function16cc73
Function16cc73:
@@ -925,19 +925,19 @@
inc c
endr
ld a, $7
-.asm_16d630
+.loop
push bc
push hl
-.asm_16d632
+.loop2
ld [hli], a
dec c
- jr nz, .asm_16d632
+ jr nz, .loop2
pop hl
- ld de, $0014
+ ld de, SCREEN_WIDTH
add hl, de
pop bc
dec b
- jr nz, .asm_16d630
+ jr nz, .loop
ret
; 16d640
@@ -950,20 +950,20 @@
inc a
ld [hl], a
pop hl
- ld de, $0014
+ ld de, SCREEN_WIDTH
add hl, de
-.asm_16d64f
+.loop
push hl
ld a, $33
ld [hli], a
- ld a, $7f
+ ld a, " "
call Function16d66d
ld [hl], $34
pop hl
- ld de, $0014
+ ld de, SCREEN_WIDTH
add hl, de
dec b
- jr nz, .asm_16d64f
+ jr nz, .loop
ld a, $35
ld [hli], a
ld a, $36
@@ -974,10 +974,10 @@
Function16d66d: ; 16d66d
ld d, c
-.asm_16d66e
+.loop
ld [hli], a
dec d
- jr nz, .asm_16d66e
+ jr nz, .loop
ret
; 16d673
@@ -1044,11 +1044,11 @@
Function16d6e1: ; 16d6e1
hlcoord 4, 10
- ld b, $1
- ld c, $a
+ ld b, 1
+ ld c, 10
predef Function28eef
hlcoord 5, 11
- ld de, String_16d701
+ ld de, .Waiting
call PlaceString
call WaitBGMap
call Function3200
@@ -1056,7 +1056,7 @@
jp DelayFrames
; 16d701
-String_16d701: ; 16d701
+.Waiting: ; 16d701
db "WAITING..!@"
; 16d70c
--- a/misc/mobile_5f.asm
+++ b/misc/mobile_5f.asm
@@ -1973,7 +1973,7 @@
Function17dc9f: ; 17dc9f
call Function17e415
call Function17e41e
- call Function4dd
+ call RotateFourPalettesLeft
ret
; 17dca9
@@ -1997,7 +1997,7 @@
add hl, de
dec c
jr nz, .asm_17dcbb
- call FadeToWhite
+ call RotateThreePalettesRight
ld a, $4
ld [rSVBK], a
ret
--- a/misc/unused_title.asm
+++ b/misc/unused_title.asm
@@ -31,7 +31,7 @@
call CopyBytes
ld hl, UnusedTitleBG_Tilemap
- ld de, VBGMap0
+ debgcoord 0, 0
ld bc, 32 * 32
.copy
ld a, 0
--- a/sram.asm
+++ b/sram.asm
@@ -57,11 +57,12 @@
; abe2
sMysteryGiftItem:: ds 1
-s0_abe3:: ds 1
+sMysteryGiftUnlocked:: ds 1
sBackupMysteryGiftItem:: ds 1
s0_abe5:: ds 1
s0_abe6:: ds 10
-s0_abf0:: ds 10
+sMysteryGiftDecorationsReceived:: flag_array NUM_NON_TROPHY_DECOS
+ ds 4
sMysteryGiftTimer:: ds 1
sMysteryGiftTimerStartDay:: ds 1
ds 1
@@ -73,12 +74,11 @@
ds $30
-s0_ac60:: ds 8
+sRTCStatusFlags:: ds 8
sLuckyNumberDay:: ds 1
sLuckyIDNumber:: ds 2
- ds $b200 - $ac6b
-
+SECTION "Backup Save", SRAM [$b200], BANK [0]
sBackupOptions:: ds OptionsEnd - Options
s0_b208:: ds 1