ref: dfcca93b451cecb6857f8b6bc6b9f67e997b09c9
parent: 5c28d05bb40b47f084a34eb732da92c899e18db6
parent: 6c5cd7a963fb2b5eed109aeef25f041eabba0004
author: Remy Oukaour <[email protected]>
date: Sun Jan 14 18:00:22 EST 2018
Merge branch 'dev' of https://github.com/TheMostCuriousThing/pokecrystal (resolve PR #460) # Conflicts: # engine/battle/core.asm # engine/save.asm
--- a/audio/engine.asm
+++ b/audio/engine.asm
@@ -40,7 +40,7 @@
ld hl, Channels ; start of channel data
ld de, ChannelsEnd - Channels ; length of area to clear (entire sound wram area)
-.clearchannels ; clear Channel1-$c2bf
+.clearchannels
xor a
ld [hli], a
dec de
@@ -2749,7 +2749,7 @@
add hl, bc
ld [hl], a
- ld hl, Channel1Field30 - Channel1 ; $c131 - Channel1
+ ld hl, Channel1Field30 - Channel1
add hl, bc
ld [hl], a
@@ -2760,11 +2760,11 @@
; ch3-4
ld a, [wSFXDuration]
- ld hl, Channel1Field2e - Channel1 ; $c12f - Channel1
+ ld hl, Channel1Field2e - Channel1
add hl, bc
ld [hl], a
- ld hl, Channel1Field2f - Channel1 ; $c130 - Channel1
+ ld hl, Channel1Field2f - Channel1
add hl, bc
ld [hl], a
--- a/data/default_options.asm
+++ b/data/default_options.asm
@@ -11,8 +11,7 @@
db GBPRINTER_NORMAL
; Options2: menu account on
db 1 << MENU_ACCOUNT
-; $cfd2: ??
+
db $00
-; $cfd3: ??
db $00
; 14f84
--- a/engine/battle/battle_transition.asm
+++ b/engine/battle/battle_transition.asm
@@ -23,7 +23,7 @@
.done
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld hl, wBGPals1
@@ -44,7 +44,7 @@
ld [hLYOverrideEnd], a
ld [hSCY], a
- ld a, $1
+ ld a, 1 ; unnecessary bankswitch?
ld [rSVBK], a
pop af
ld [hVBlank], a
@@ -116,7 +116,7 @@
ConvertTrainerBattlePokeballTilesTo2bpp: ; 8c2cf
ld a, [rSVBK]
push af
- ld a, $6
+ ld a, BANK(wDecompressScratch)
ld [rSVBK], a
push hl
ld hl, wDecompressScratch
@@ -298,7 +298,7 @@
StartTrainerBattle_SetUpForWavyOutro: ; 8c3e8 (23:43e8)
farcall Function5602
- ld a, $5 ; BANK(LYOverrides)
+ ld a, BANK(LYOverrides)
ld [rSVBK], a
call StartTrainerBattle_NextScene
@@ -356,7 +356,7 @@
StartTrainerBattle_SetUpForSpinOutro: ; 8c43d (23:443d)
farcall Function5602
- ld a, $5 ; BANK(LYOverrides)
+ ld a, BANK(LYOverrides)
ld [rSVBK], a
call StartTrainerBattle_NextScene
xor a
@@ -498,7 +498,7 @@
StartTrainerBattle_SetUpForRandomScatterOutro: ; 8c578 (23:4578)
farcall Function5602
- ld a, $5 ; BANK(LYOverrides)
+ ld a, BANK(LYOverrides)
ld [rSVBK], a
call StartTrainerBattle_NextScene
ld a, $10
@@ -647,7 +647,7 @@
.daytime
ld a, [rSVBK]
push af
- ld a, $5 ; WRAM5 = palettes
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
call .copypals
push hl
@@ -724,7 +724,7 @@
WipeLYOverrides: ; 8c6d8
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(LYOverrides)
ld [rSVBK], a
ld hl, LYOverrides
--- a/engine/battle/checkbattlescene.asm
+++ b/engine/battle/checkbattlescene.asm
@@ -1,7 +1,7 @@
CheckBattleScene: ; 4ea44
; Return carry if battle scene is turned off.
- ld a, 0
+ ld a, BANK(wLinkMode)
ld hl, wLinkMode
call GetFarWRAMByte
cp LINK_MOBILE
@@ -19,9 +19,9 @@
and a
jr nz, .from_wram
- ld a, $4
+ ld a, 4 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
call GetSRAMBank
- ld a, [$a60c]
+ ld a, [$a60c] ; address of MBC30 bank
ld c, a
call CloseSRAM
@@ -33,7 +33,7 @@
ret
.from_wram
- ld a, $5
+ ld a, BANK(w5_dc00)
ld hl, w5_dc00
call GetFarWRAMByte
bit 0, a
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -233,9 +233,9 @@
Stubbed_Function3c1bf:
ret
- ld a, $5
+ ld a, 5 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
call GetSRAMBank
- ld hl, $a89b ; s5_a89b
+ ld hl, $a89b ; address of MBC30 bank
inc [hl]
jr nz, .finish
dec hl
@@ -8365,7 +8365,7 @@
BackUpBGMap2: ; 3f568
ld a, [rSVBK]
push af
- ld a, $6 ; BANK(wDecompressScratch)
+ ld a, BANK(wDecompressScratch)
ld [rSVBK], a
ld hl, wDecompressScratch
ld bc, $40 tiles ; vBGMap3 - vBGMap2
@@ -9244,7 +9244,7 @@
.BlankBGMap: ; 3fbd6
ld a, [rSVBK]
push af
- ld a, $6
+ ld a, BANK(wDecompressScratch)
ld [rSVBK], a
ld hl, wDecompressScratch
@@ -9305,7 +9305,7 @@
CopyBackpic: ; 3fc30
ld a, [rSVBK]
push af
- ld a, $6
+ ld a, BANK(wDecompressScratch)
ld [rSVBK], a
ld hl, vTiles0
ld de, vTiles2 tile $31
--- a/engine/battle/sliding_intro.asm
+++ b/engine/battle/sliding_intro.asm
@@ -1,7 +1,7 @@
BattleIntroSlidingPics: ; 4e980
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(LYOverrides)
ld [rSVBK], a
call .subfunction1
ld a, rSCX - $ff00
--- a/engine/battle_anims/anim_commands.asm
+++ b/engine/battle_anims/anim_commands.asm
@@ -5,7 +5,7 @@
ld a, [rSVBK]
push af
- ld a, 5
+ ld a, BANK(ActiveAnimObjects)
ld [rSVBK], a
call _PlayBattleAnim
@@ -163,7 +163,7 @@
ld a, [rSVBK]
push af
- ld a, $1
+ ld a, BANK(CurBattleMon) ; alternatively: BANK(TempMon), BANK(PartyMon1), several others
ld [rSVBK], a
ld hl, UpdateBattleHuds
@@ -916,7 +916,7 @@
BattleAnimCmd_Transform: ; cc5dc (33:45dc)
ld a, [rSVBK]
push af
- ld a, 1
+ ld a, BANK(CurPartySpecies)
ld [rSVBK], a
ld a, [CurPartySpecies] ; CurPartySpecies
push af
@@ -972,9 +972,9 @@
ld a, [rSVBK]
push af
- ld a, 1
+ ld a, 1 ; unnecessary bankswitch?
ld [rSVBK], a
- xor a
+ xor a ; sScratch
call GetSRAMBank
GetSubstitutePic: ; cc64c
@@ -1046,9 +1046,9 @@
BattleAnimCmd_MinimizeOpp: ; cc6cf (33:46cf)
ld a, [rSVBK]
push af
- ld a, $1
+ ld a, 1 ; unnecessary bankswitch?
ld [rSVBK], a
- xor a
+ xor a ; sScratch
call GetSRAMBank
call GetMinimizePic
call Request2bpp
@@ -1102,9 +1102,9 @@
BattleAnimCmd_Minimize: ; cc735 (33:4735)
ld a, [rSVBK]
push af
- ld a, $1
+ ld a, 1 ; unnecessary bankswitch?
ld [rSVBK], a
- xor a
+ xor a ; sScratch
call GetSRAMBank
call GetMinimizePic
ld hl, vTiles0 tile $00
@@ -1117,7 +1117,7 @@
BattleAnimCmd_DropSub: ; cc750 (33:4750)
ld a, [rSVBK]
push af
- ld a, $1
+ ld a, BANK(CurPartySpecies)
ld [rSVBK], a
ld a, [CurPartySpecies] ; CurPartySpecies
@@ -1142,7 +1142,7 @@
BattleAnimCmd_BeatUp: ; cc776 (33:4776)
ld a, [rSVBK]
push af
- ld a, $1
+ ld a, BANK(CurPartySpecies)
ld [rSVBK], a
ld a, [CurPartySpecies] ; CurPartySpecies
push af
@@ -1253,7 +1253,7 @@
ld a, [rSVBK]
push af
- ld a, 1
+ ld a, BANK(EnemyMon) ; BattleMon is in WRAM0, but EnemyMon is in WRAMX
ld [rSVBK], a
ld a, [hBattleTurn]
@@ -1261,14 +1261,14 @@
jr nz, .enemy
ld a, $f0
- ld [CryTracks], a ; CryTracks
- ld a, [BattleMonSpecies] ; BattleMonSpecies
+ ld [CryTracks], a
+ ld a, [BattleMonSpecies]
jr .done_cry_tracks
.enemy
ld a, $0f
- ld [CryTracks], a ; CryTracks
- ld a, [EnemyMonSpecies] ; EnemyMon
+ ld [CryTracks], a
+ ld a, [EnemyMonSpecies]
.done_cry_tracks
push hl
@@ -1430,7 +1430,7 @@
ret z
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld hl, wBGPals2
ld de, wBGPals1
@@ -1458,7 +1458,7 @@
ret z
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wOBPals1)
ld [rSVBK], a
ld hl, wOBPals2 palette PAL_BATTLE_OB_GRAY
ld de, wOBPals1 palette PAL_BATTLE_OB_GRAY
--- a/engine/battle_anims/bg_effects.asm
+++ b/engine/battle_anims/bg_effects.asm
@@ -2578,7 +2578,7 @@
ld h, a
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld a, h
push bc
@@ -2605,7 +2605,7 @@
ld h, a
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld a, h
push bc
--- a/engine/battle_anims/functions.asm
+++ b/engine/battle_anims/functions.asm
@@ -428,9 +428,9 @@
ld hl, BallColors
ld a, [rSVBK]
push af
- ld a, $1
+ ld a, BANK(CurItem)
ld [rSVBK], a
- ld a, [CurItem] ; CurItem
+ ld a, [CurItem]
ld e, a
pop af
ld [rSVBK], a
--- a/engine/battle_anims/getpokeballwobble.asm
+++ b/engine/battle_anims/getpokeballwobble.asm
@@ -8,7 +8,7 @@
ld d, a
push de
- ld a, 1 ; BANK(Buffer2)
+ ld a, BANK(Buffer2)
ld [rSVBK], a
ld a, [Buffer2]
--- a/engine/billspc.asm
+++ b/engine/billspc.asm
@@ -2100,7 +2100,7 @@
ld hl, wBillsPC_BackupScrollPosition
add [hl]
ld [CurPartyMon], a
- ld a, $1
+ ld a, BANK(sBox)
call GetSRAMBank
ld hl, sBoxSpecies
call CopySpeciesToTemp
--- a/engine/card_flip.asm
+++ b/engine/card_flip.asm
@@ -1657,7 +1657,7 @@
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld hl, .palettes
ld de, wBGPals1
--- a/engine/color.asm
+++ b/engine/color.asm
@@ -141,13 +141,13 @@
ld hl, .BGPal
ld de, wBGPals1
ld bc, 1 palettes
- ld a, $5
+ ld a, BANK(wBGPals1)
call FarCopyWRAM
ld hl, .OBPal
ld de, wOBPals1
ld bc, 1 palettes
- ld a, $5
+ ld a, BANK(wOBPals1)
call FarCopyWRAM
call ApplyPals
@@ -351,7 +351,7 @@
ld bc, HPBarPals
add hl, bc
ld bc, 4
- ld a, $5
+ ld a, BANK(wBGPals2)
call FarCopyWRAM
ld a, $1
ld [hCGBPalUpdate], a
@@ -386,7 +386,7 @@
add hl, bc
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld a, [hli]
ld [wBGPals1 palette 0], a
@@ -435,7 +435,7 @@
.cgb
ld de, wBGPals1
ld bc, 1 palettes
- ld a, $5
+ ld a, BANK(wBGPals1)
call FarCopyWRAM
call ApplyPals
call WipeAttrMap
@@ -451,7 +451,7 @@
ld hl, .Palette
ld de, wBGPals1
ld bc, 1 palettes
- ld a, $5
+ ld a, BANK(wBGPals1)
call FarCopyWRAM
call ApplyPals
call WipeAttrMap
@@ -495,7 +495,7 @@
LoadHLPaletteIntoDE:
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wOBPals1)
ld [rSVBK], a
ld c, $8
.loop
@@ -511,7 +511,7 @@
LoadPalette_White_Col1_Col2_Black:
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld a, LOW(palred 31 + palgreen 31 + palblue 31)
@@ -563,7 +563,7 @@
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld hl, wBGPals1
@@ -602,7 +602,7 @@
ld hl, wBGPals1
ld de, wBGPals2
ld bc, 16 palettes
- ld a, $5
+ ld a, BANK(wPals)
call FarCopyWRAM
ret
@@ -679,7 +679,7 @@
ld hl, PartyMenuOBPals
ld de, wOBPals1
ld bc, 2 palettes
- ld a, $5
+ ld a, BANK(wOBPals1)
call FarCopyWRAM
ret
@@ -753,7 +753,7 @@
ld hl, BattleObjectPals
ld de, wOBPals1 palette 2
ld bc, 2 palettes
- ld a, $5
+ ld a, BANK(wOBPals1)
call FarCopyWRAM
ret
@@ -921,7 +921,7 @@
jr nz, .obpals_loop
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld hl, wBGPals1
call .LoadWhitePals
@@ -1242,7 +1242,7 @@
; Switch to palettes WRAM bank
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld hl, wBGPals1
ld b, 8
@@ -1309,7 +1309,7 @@
.morn_day
ld de, wBGPals1 palette PAL_BG_ROOF + 2
ld bc, 4
- ld a, $5
+ ld a, BANK(wBGPals1)
call FarCopyWRAM
ret
--- a/engine/credits.asm
+++ b/engine/credits.asm
@@ -13,7 +13,7 @@
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wPals)
ld [rSVBK], a
call ClearBGPalettes
--- a/engine/crystal_colors.asm
+++ b/engine/crystal_colors.asm
@@ -241,7 +241,7 @@
ld hl, .Palette_49757
ld de, wBGPals1
ld bc, 8 palettes
- ld a, $5
+ ld a, BANK(wBGPals1)
call FarCopyWRAM
farcall ApplyPals
ret
--- a/engine/crystal_intro.asm
+++ b/engine/crystal_intro.asm
@@ -57,7 +57,7 @@
ld a, [rSVBK]
push af
- ld a, $6
+ ld a, BANK(wDecompressScratch)
ld [rSVBK], a
ld hl, IntroLogoGFX
@@ -319,7 +319,7 @@
add hl, de
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wOBPals2)
ld [rSVBK], a
ld a, [hli]
ld [wOBPals2 + 12], a
@@ -352,7 +352,7 @@
CrystalIntro: ; e48ac
ld a, [rSVBK]
push af
- ld a, 5
+ ld a, BANK(wPals)
ld [rSVBK], a
ld a, [hInMenu]
push af
@@ -480,7 +480,7 @@
call Intro_DecompressRequest2bpp_64Tiles
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld hl, Palette_365ad
ld de, wBGPals1
@@ -553,7 +553,7 @@
call Intro_DecompressRequest2bpp_64Tiles
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld hl, Palette_e5edd
ld de, wBGPals1
@@ -619,7 +619,7 @@
call Intro_DecompressRequest2bpp_64Tiles
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld hl, Palette_365ad
ld de, wBGPals1
@@ -725,7 +725,7 @@
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld hl, Palette_e5edd
@@ -884,7 +884,7 @@
call Intro_DecompressRequest2bpp_64Tiles
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld hl, Palette_365ad
ld de, wBGPals1
@@ -1011,7 +1011,7 @@
call Intro_DecompressRequest2bpp_64Tiles
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld hl, Palette_e5edd
ld de, wBGPals1
@@ -1120,7 +1120,7 @@
call Intro_LoadTilemap
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld hl, Palette_e77dd
ld de, wBGPals1
@@ -1194,7 +1194,7 @@
call Intro_DecompressRequest2bpp_64Tiles
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld hl, Palette_e6d6d
ld de, wBGPals1
@@ -1268,7 +1268,7 @@
call Intro_LoadTilemap
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld hl, Palette_e77dd
ld de, wBGPals1
@@ -1438,7 +1438,7 @@
call Intro_DecompressRequest2bpp_64Tiles
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld hl, Palette_e679d
ld de, wBGPals1
@@ -1526,7 +1526,7 @@
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals2)
ld [rSVBK], a
ld de, wBGPals2
ld b, 8 ; number of BG pals
@@ -1617,7 +1617,7 @@
ld b, $0
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals2)
ld [rSVBK], a
push hl
@@ -1722,7 +1722,7 @@
ld c, a
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals2)
ld [rSVBK], a
push bc
@@ -1791,7 +1791,7 @@
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals2)
ld [rSVBK], a
push hl
@@ -1846,7 +1846,7 @@
Intro_LoadTilemap: ; e541b (39:541b)
ld a, [rSVBK]
push af
- ld a, $6
+ ld a, BANK(wDecompressScratch)
ld [rSVBK], a
ld hl, wDecompressScratch
@@ -1946,7 +1946,7 @@
Intro_ClearBGPals: ; e54a3 (39:54a3)
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals2)
ld [rSVBK], a
ld hl, wBGPals2
@@ -1965,7 +1965,7 @@
Intro_DecompressRequest2bpp_128Tiles: ; e54c2 (39:54c2)
ld a, [rSVBK]
push af
- ld a, $6
+ ld a, BANK(wDecompressScratch)
ld [rSVBK], a
push de
@@ -1984,7 +1984,7 @@
Intro_DecompressRequest2bpp_255Tiles: ; e54de (39:54de)
ld a, [rSVBK]
push af
- ld a, $6
+ ld a, BANK(wDecompressScratch)
ld [rSVBK], a
push de
@@ -2003,7 +2003,7 @@
Intro_DecompressRequest2bpp_64Tiles: ; e54fa (39:54fa)
ld a, [rSVBK]
push af
- ld a, $6
+ ld a, BANK(wDecompressScratch)
ld [rSVBK], a
push de
@@ -2022,7 +2022,7 @@
Intro_ResetLYOverrides: ; e5516 (39:5516)
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(LYOverrides)
ld [rSVBK], a
ld hl, LYOverrides
@@ -2039,7 +2039,7 @@
Intro_PerspectiveScrollBG: ; e552f (39:552f)
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(LYOverrides)
ld [rSVBK], a
; Scroll the grass every frame.
; Scroll the trees every other frame and at half speed.
--- a/engine/debug.asm
+++ b/engine/debug.asm
@@ -155,7 +155,7 @@
ret z
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals2)
ld [rSVBK], a
ld hl, Palette_819f4
ld de, wBGPals2
@@ -436,7 +436,7 @@
jr z, .asm_81c69
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals2)
ld [rSVBK], a
ld hl, wBGPals2
ld de, wc608
@@ -1145,7 +1145,7 @@
Function8220f: ; 8220f
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld a, [wcf64]
ld l, a
@@ -1198,7 +1198,7 @@
call Function821d8
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals2)
ld [rSVBK], a
ld hl, wBGPals2
ld a, [wcf64]
@@ -1228,7 +1228,7 @@
Function822a3: ; 822a3
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals2)
ld [rSVBK], a
ld hl, wBGPals2
ld a, [wcf64]
--- a/engine/dma_transfer.asm
+++ b/engine/dma_transfer.asm
@@ -119,7 +119,7 @@
.unreferenced_1040da
ld a, $1
ld [rVBK], a
- ld a, $3
+ ld a, BANK(w3_d800)
ld [rSVBK], a
ld de, w3_d800
ld a, [hBGMapAddress + 1]
@@ -143,7 +143,7 @@
.unreferenced_104101
ld a, $1
ld [rVBK], a
- ld a, $3
+ ld a, BANK(w3_d800)
ld [rSVBK], a
ld hl, w3_d800
call HDMATransferToWRAMBank3
@@ -221,7 +221,7 @@
ld [hMapAnims], a
ld a, [rSVBK]
push af
- ld a, $6
+ ld a, BANK(wScratchTileMap)
ld [rSVBK], a
ld a, [rVBK]
push af
@@ -472,7 +472,7 @@
; switch to WRAM bank 6
ld a, [rSVBK]
push af
- ld a, $6
+ ld a, BANK(wScratchTileMap)
ld [rSVBK], a
push bc
@@ -542,7 +542,7 @@
.bankswitch ; 1042d6
ld a, [rSVBK]
push af
- ld a, $6
+ ld a, BANK(wScratchTileMap)
ld [rSVBK], a
push bc
--- a/engine/events/battle_tower/load_trainer.asm
+++ b/engine/events/battle_tower/load_trainer.asm
@@ -102,7 +102,7 @@
.FindARandomBattleTowerPkmn:
; From Which LevelGroup are the Pkmn loaded
; a = 1..10
- ld a, [wBTChoiceOfLvlGroup] ; [$d800]
+ ld a, [wBTChoiceOfLvlGroup]
dec a
ld hl, BattleTowerMons
ld bc, BattleTowerMons2 - BattleTowerMons1
--- a/engine/events/heal_machine_anim.asm
+++ b/engine/events/heal_machine_anim.asm
@@ -161,7 +161,7 @@
ld hl, .palettes
ld de, wOBPals2 palette PAL_OW_TREE
ld bc, 1 palettes
- ld a, $5
+ ld a, BANK(wOBPals2)
call FarCopyWRAM
ld a, $1
ld [hCGBPalUpdate], a
@@ -196,7 +196,7 @@
.go
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wOBPals2)
ld [rSVBK], a
ld hl, wOBPals2 palette PAL_OW_TREE
--- a/engine/events/magnet_train.asm
+++ b/engine/events/magnet_train.asm
@@ -16,7 +16,7 @@
ld h, a
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wMagnetTrain)
ld [rSVBK], a
ld a, h
@@ -129,7 +129,7 @@
ld [hSCY], a
ld a, [rSVBK]
push af
- ld a, $1
+ ld a, BANK(wPlayerGender)
ld [rSVBK], a
farcall GetPlayerIcon
pop af
@@ -324,7 +324,7 @@
ld b, SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED
ld a, [rSVBK]
push af
- ld a, $1
+ ld a, BANK(wPlayerGender)
ld [rSVBK], a
ld a, [wPlayerGender]
bit 0, a
@@ -428,7 +428,7 @@
call DelayFrame
ld a, [rSVBK]
push af
- ld a, $1
+ ld a, BANK(wEnvironment)
ld [rSVBK], a
ld a, [TimeOfDayPal]
push af
--- a/engine/events/poisonstep_pals.asm
+++ b/engine/events/poisonstep_pals.asm
@@ -26,7 +26,7 @@
.cgb
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals2)
ld [rSVBK], a
ld hl, wBGPals2
ld c, 4 palettes
--- a/engine/events/print_unown.asm
+++ b/engine/events/print_unown.asm
@@ -154,7 +154,7 @@
.Load2bppToSRAM: ; 16cff
ld a, [rSVBK]
push af
- ld a, $6
+ ld a, BANK(wDecompressScratch)
ld [rSVBK], a
ld a, BANK(sScratch)
@@ -178,7 +178,7 @@
hlcoord 1, 9
ld de, UnownDexVacantString
call PlaceString
- xor a
+ xor a ; sScratch
call GetSRAMBank
ld hl, sScratch
ld bc, $31 tiles
--- a/engine/events/print_unown_2.asm
+++ b/engine/events/print_unown_2.asm
@@ -1,7 +1,7 @@
RotateUnownFrontpic: ; e0000
; something to do with Unown printer
push de
- xor a
+ xor a ; sScratch
call GetSRAMBank
ld hl, sScratch
ld bc, 0
--- a/engine/gbc_only.asm
+++ b/engine/gbc_only.asm
@@ -10,16 +10,16 @@
call ClearTileMap
ld hl, GBCOnlyGFX
- ld de, $d000
+ ld de, wd000
ld a, [rSVBK]
push af
- ld a, 0
+ ld a, 0 ; this has the same effect as selecting bank 1 (http://gbdev.gg8.se/files/docs/mirrors/pandocs.html#videodisplay)
ld [rSVBK], a
call Decompress
pop af
ld [rSVBK], a
- ld de, $d000
+ ld de, wd000
ld hl, vTiles2
lb bc, BANK(GBCOnlyGFX), $54
call Get2bpp
--- a/engine/init_gender.asm
+++ b/engine/init_gender.asm
@@ -89,7 +89,7 @@
ld hl, .Palette
ld de, wBGPals1
ld bc, 1 palettes
- ld a, $5
+ ld a, BANK(wBGPals1)
call FarCopyWRAM
farcall ApplyPals
ret
--- a/engine/init_hof_credits.asm
+++ b/engine/init_hof_credits.asm
@@ -63,7 +63,7 @@
ResetDisplayBetweenHallOfFameMons: ; 4e906
ld a, [rSVBK]
push af
- ld a, $6
+ ld a, BANK(wDecompressScratch)
ld [rSVBK], a
ld hl, wDecompressScratch
ld bc, wScratchAttrMap - wDecompressScratch
--- a/engine/init_map.asm
+++ b/engine/init_map.asm
@@ -79,7 +79,7 @@
HDMATransfer_FillBGMap0WithBlack: ; 64db
ld a, [rSVBK]
push af
- ld a, $6
+ ld a, BANK(wDecompressScratch)
ld [rSVBK], a
ld a, "<BLACK>" ; $60
--- a/engine/intro_menu.asm
+++ b/engine/intro_menu.asm
@@ -1018,7 +1018,7 @@
StartTitleScreen: ; 6219
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
call .TitleScreen
--- a/engine/link.asm
+++ b/engine/link.asm
@@ -811,31 +811,24 @@
inc de
dec b
jr nz, .loop1
- ; de = $c806
ld hl, PlayerName
ld bc, NAME_LENGTH
call CopyBytes
- ; de = $c811
ld hl, PartyCount
ld bc, 1 + PARTY_LENGTH + 1
call CopyBytes
- ; de = $c819
ld hl, PlayerID
ld bc, 2
call CopyBytes
- ; de = $c81b
ld hl, PartyMon1Species
ld bc, PARTY_LENGTH * PARTYMON_STRUCT_LENGTH
call CopyBytes
- ; de = $c93b
ld hl, PartyMonOT
ld bc, PARTY_LENGTH * NAME_LENGTH
call CopyBytes
- ; de = $c97d
ld hl, PartyMonNicknames
ld bc, PARTY_LENGTH * PKMN_NAME_LENGTH
call CopyBytes
- ; de = $c9bf
; Okay, we did all that. Now, are we in the trade center?
ld a, [wLinkMode]
--- a/engine/mail_2.asm
+++ b/engine/mail_2.asm
@@ -69,7 +69,7 @@
ld h, d
ld l, e
push hl
- ld a, $0
+ ld a, BANK(sPartyMail)
call GetSRAMBank
ld de, sPartyMon1MailAuthorID - sPartyMon1Mail
add hl, de
--- a/engine/menu.asm
+++ b/engine/menu.asm
@@ -585,7 +585,7 @@
_PushWindow:: ; 24374
ld a, [rSVBK]
push af
- ld a, $7
+ ld a, BANK(wWindowStack)
ld [rSVBK], a
ld hl, wWindowStackPointer
@@ -690,7 +690,7 @@
ld a, [rSVBK]
push af
- ld a, $7
+ ld a, BANK(wWindowStack)
ld [rSVBK], a
call GetWindowStackTop
@@ -728,7 +728,7 @@
ld a, [VramState]
bit 0, a
ret z
- xor a
+ xor a ; sScratch
call GetSRAMBank
hlcoord 0, 0
ld de, sScratch
@@ -736,7 +736,7 @@
call CopyBytes
call CloseSRAM
call OverworldTextModeSwitch
- xor a
+ xor a ; sScratch
call GetSRAMBank
ld hl, sScratch
decoord 0, 0
--- a/engine/mon_stats.asm
+++ b/engine/mon_stats.asm
@@ -174,7 +174,7 @@
; sBoxMon data is read directly from SRAM.
ld a, [MonType]
cp BOXMON
- ld a, 1
+ ld a, BANK(sBox)
call z, GetSRAMBank
; Attack DV
--- a/engine/mystery_gift.asm
+++ b/engine/mystery_gift.asm
@@ -1561,12 +1561,12 @@
ld a, [sCrystalData + 0]
ld [de], a
inc de
- ld a, $4
+ ld a, 4 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
call GetSRAMBank
- ld hl, $a603
+ ld hl, $a603 ; address of MBC30 bank
ld bc, $8
call CopyBytes
- ld hl, $a007
+ ld hl, $a007 ; address of MBC30 bank
ld bc, $c
call CopyBytes
call CloseSRAM
--- a/engine/pack.asm
+++ b/engine/pack.asm
@@ -1705,7 +1705,7 @@
db "@"
; 0x10b16
-PackMenuGFX:
+PackMenuGFX::
INCBIN "gfx/pack/pack_menu.2bpp"
PackGFX:
INCBIN "gfx/pack/pack.2bpp"
--- a/engine/pic_animation.asm
+++ b/engine/pic_animation.asm
@@ -279,7 +279,7 @@
PokeAnim_DeinitFrames: ; d01a9
ld a, [rSVBK]
push af
- ld a, $2
+ ld a, BANK(wPokeAnimCoord)
ld [rSVBK], a
call PokeAnim_PlaceGraphic
farcall HDMATransferTileMapToWRAMBank3
@@ -335,12 +335,12 @@
ld a, d
ld [wPokeAnimGraphicStartTile], a
- ld a, $1
+ ld a, BANK(CurPartySpecies)
ld hl, CurPartySpecies
call GetFarWRAMByte
ld [wPokeAnimSpecies], a
- ld a, $1
+ ld a, BANK(UnownLetter)
ld hl, UnownLetter
call GetFarWRAMByte
ld [wPokeAnimUnownLetter], a
@@ -876,7 +876,7 @@
PokeAnim_SetVBank1: ; d0504
ld a, [rSVBK]
push af
- ld a, $2
+ ld a, BANK(wPokeAnimCoord)
ld [rSVBK], a
xor a
ld [hBGMapMode], a
--- a/engine/pokedex.asm
+++ b/engine/pokedex.asm
@@ -2316,7 +2316,7 @@
; Make BG palettes black so that the BG becomes all black.
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld hl, wBGPals1
ld bc, 8 palettes
--- a/engine/routines/emptyallsrambanks.asm
+++ b/engine/routines/emptyallsrambanks.asm
@@ -1,11 +1,11 @@
EmptyAllSRAMBanks: ; 4cf1f
- ld a, $0
+ ld a, 0
call .EmptyBank
- ld a, $1
+ ld a, 1
call .EmptyBank
- ld a, $2
+ ld a, 2
call .EmptyBank
- ld a, $3
+ ld a, 3
call .EmptyBank
ret
--- a/engine/rtc.asm
+++ b/engine/rtc.asm
@@ -146,14 +146,14 @@
farcall ClearDailyTimers
farcall Function170923
; mobile
- ld a, $5
+ ld a, 5 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
call GetSRAMBank
- ld a, [$aa8c]
+ ld a, [$aa8c] ; address of MBC30 bank
inc a
- ld [$aa8c], a
- ld a, [$b2fa]
+ ld [$aa8c], a ; address of MBC30 bank
+ ld a, [$b2fa] ; address of MBC30 bank
inc a
- ld [$b2fa], a
+ ld [$b2fa], a ; address of MBC30 bank
call CloseSRAM
ret
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -417,10 +417,10 @@
Unreferenced_Function14d18: ; 14d18
; copy .Data to SRA4:a007
- ld a, $4
+ ld a, 4 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
call GetSRAMBank
ld hl, .Data
- ld de, $a007
+ ld de, $a007 ; address of MBC30 bank
ld bc, .DataEnd - .Data
call CopyBytes
jp CloseSRAM
@@ -452,9 +452,9 @@
; 14d6c
Unreferenced_Function14d6c: ; 14d6c
- ld a, $4
+ ld a, 4 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
call GetSRAMBank
- ld a, [$a60b]
+ ld a, [$a60b] ; address of MBC30 bank
ld b, $0
and a
jr z, .ok
@@ -462,26 +462,26 @@
.ok
ld a, b
- ld [$a60b], a
+ ld [$a60b], a ; address of MBC30 bank
call CloseSRAM
ret
; 14d83
Unreferenced_Function14d83: ; 14d83
- ld a, $4
+ ld a, 4 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
call GetSRAMBank
xor a
- ld [$a60c], a
- ld [$a60d], a
+ ld [$a60c], a ; address of MBC30 bank
+ ld [$a60d], a ; address of MBC30 bank
call CloseSRAM
ret
; 14d93
Unreferenced_Function14d93: ; 14d93
- ld a, $7
+ ld a, 7 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
call GetSRAMBank
xor a
- ld [$a000], a
+ ld [$a000], a ; address of MBC30 bank
call CloseSRAM
ret
; 14da0
@@ -869,6 +869,11 @@
_SaveData: ; 1509a
+ ; This is called within two scenarios:
+ ; a) ErasePreviousSave (the process of erasing the save from a previous game file)
+ ; b) unused mobile functionality
+ ; It is not part of a regular save.
+
ld a, BANK(sCrystalData)
call GetSRAMBank
ld hl, wCrystalData
@@ -876,7 +881,11 @@
ld bc, wCrystalDataEnd - wCrystalData
call CopyBytes
- ; XXX SRAM bank 7
+ ; This block originally had some mobile functionality, but since we're still in
+ ; BANK(sCrystalData), it instead overwrites the sixteen EventFlags starting at 1:a603 with
+ ; garbage from wd479. This isn't an issue, since ErasePreviousSave is followed by a regular
+ ; save that unwrites the garbage.
+
ld hl, wd479
ld a, [hli]
ld [$a60e + 0], a
@@ -893,8 +902,10 @@
ld de, wCrystalData
ld bc, wCrystalDataEnd - wCrystalData
call CopyBytes
-
- ; XXX SRAM bank 7
+
+ ; This block originally had some mobile functionality to mirror _SaveData above, but instead it
+ ; (harmlessly) writes the aforementioned EventFlags to the unused wd479.
+
ld hl, wd479
ld a, [$a60e + 0]
ld [hli], a
--- a/engine/timeofdaypals.asm
+++ b/engine/timeofdaypals.asm
@@ -47,8 +47,8 @@
; save wram bank
ld a, [rSVBK]
ld b, a
-; wram bank 5
- ld a, $5
+
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
; push palette
@@ -78,8 +78,8 @@
; save wram bank
ld a, [rSVBK]
ld d, a
-; wram bank 5
- ld a, 5
+
+ ld a, BANK(wOBPals1)
ld [rSVBK], a
; pop palette
@@ -173,7 +173,7 @@
FillWhiteBGColor: ; 8c0c1
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld hl, wBGPals1
--- a/engine/title.asm
+++ b/engine/title.asm
@@ -139,7 +139,7 @@
ld a, [rSVBK]
push af
; WRAM bank 5
- ld a, 5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
; Update palette colors
@@ -162,7 +162,7 @@
ld a, [rSVBK]
push af
- ld a, 5 ; BANK(LYOverrides)
+ ld a, BANK(LYOverrides)
ld [rSVBK], a
; Make alternating lines come in from opposite sides
--- a/engine/unused_title.asm
+++ b/engine/unused_title.asm
@@ -63,7 +63,7 @@
ld a, [rSVBK]
push af
- ld a, $5
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld hl, UnusedTitleBG_Palettes
--- a/gfx/load_pics.asm
+++ b/gfx/load_pics.asm
@@ -206,7 +206,7 @@
ld c, a
ld a, [rSVBK]
push af
- ld a, $6
+ ld a, BANK(wDecompressScratch)
ld [rSVBK], a
push de
@@ -327,7 +327,7 @@
call AddNTimes
ld a, [rSVBK]
push af
- ld a, $6
+ ld a, BANK(wDecompressScratch)
ld [rSVBK], a
push de
ld a, BANK(TrainerPicPointers)
@@ -358,7 +358,7 @@
ld a, [rSVBK]
push af
- ld a, 6
+ ld a, BANK(wDecompressScratch)
ld [rSVBK], a
push de
--- a/home/game_time.asm
+++ b/home/game_time.asm
@@ -16,7 +16,7 @@
ld a, [rSVBK]
push af
- ld a, 1
+ ld a, BANK(GameTime)
ld [rSVBK], a
call UpdateGameTimer
--- a/home/init.asm
+++ b/home/init.asm
@@ -55,7 +55,7 @@
ld [rOBP1], a
ld [rTMA], a
ld [rTAC], a
- ld [$d000], a
+ ld [WRAM1_Begin], a
ld a, %100 ; Start timer at 4096Hz
ld [rTAC], a
@@ -96,7 +96,7 @@
ld [hCGB], a
call ClearWRAM
- ld a, 1
+ ld a, BANK(wd000)
ld [rSVBK], a
call ClearVRAM
call ClearSprites
--- a/home/map.asm
+++ b/home/map.asm
@@ -1401,7 +1401,7 @@
ld a, [rSVBK]
push af
- ld a, $6
+ ld a, BANK(wDecompressScratch)
ld [rSVBK], a
ld a, e
--- a/home/menu.asm
+++ b/home/menu.asm
@@ -494,7 +494,7 @@
ld a, [rSVBK]
push af
- ld a, $7
+ ld a, BANK(wWindowStack)
ld [rSVBK], a
xor a
--- a/home/names.asm
+++ b/home/names.asm
@@ -7,7 +7,7 @@
dbw 0, PartyMonOT
dbw 0, OTPartyMonOT
dba TrainerClassNames
- dbw $4, $4b52 ; within PackMenuGFX
+ dbw BANK(PackMenuGFX), PackMenuGFX + 60
; 33c3
GetName:: ; 33c3
--- a/home/video.asm
+++ b/home/video.asm
@@ -466,7 +466,7 @@
ld a, [rSVBK]
push af
- ld a, 1
+ ld a, BANK(TilesetAnim)
ld [rSVBK], a
ld a, [rVBK]
--- a/mobile/mobile_46.asm
+++ b/mobile/mobile_46.asm
@@ -7213,7 +7213,7 @@
jr .loop8
.okay4
- ld a, $0 ; BANK(sPartyMail)
+ ld a, BANK(sPartyMail)
call GetSRAMBank
ld a, MAIL_STRUCT_LENGTH
.loop9
--- a/mobile/mobile_5f.asm
+++ b/mobile/mobile_5f.asm
@@ -44,7 +44,7 @@
ld a, [rSVBK]
push af
- ld a, 5 ; BANK(wBGPals1)
+ ld a, BANK(wBGPals1)
ld [rSVBK], a
ld hl, HaveWantPals
@@ -618,8 +618,8 @@
Function17d370: ; 17d370
xor a
ld [wcd77], a
- ld [wcd78], a
- ld [wcd79], a
+ ld [wMobileCrashCheckPointer], a
+ ld [wMobileCrashCheckPointer + 1], a
dec a
ld [wcd6c], a
call ClearBGPalettes
@@ -956,9 +956,9 @@
ld h, a
add hl, bc
ld a, l
- ld [wcd78], a
+ ld [wMobileCrashCheckPointer], a
ld a, h
- ld [wcd79], a
+ ld [wMobileCrashCheckPointer + 1], a
ld a, $3
ld [wcd77], a
ret
@@ -1120,9 +1120,9 @@
ld a, [wcd77]
bit 7, a
jr nz, asm_17d721
- ld a, [wcd78]
+ ld a, [wMobileCrashCheckPointer]
ld l, a
- ld a, [wcd79]
+ ld a, [wMobileCrashCheckPointer + 1]
ld h, a
ld a, [hl]
cp $ff
@@ -1191,11 +1191,11 @@
dw Function17e27f
dw Function17e293
dw Function17e2a7
- dw Function17e367
- dw Function17e37e
- dw Function17e395
- dw Function17e3ac
- dw Function17e3c3
+ dw IncCrashCheckPointer_SaveGameData
+ dw IncCrashCheckPointer_SaveAfterLinkTrade
+ dw IncCrashCheckPointer_SaveBox
+ dw IncCrashCheckPointer_SaveChecksum
+ dw IncCrashCheckPointer_SaveTrainerRankingsChecksum
dw Function17e3e0
dw Function17e3f0
dw Function17e409
@@ -1206,12 +1206,12 @@
; 17d78d
Function17d78d: ; 17d78d
- call Function17e415
+ call IncCrashCheckPointer
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
- call Function17e41e
+ call HlToCrashCheckPointer
ld a, $6
call GetSRAMBank
ld hl, $a006
@@ -1227,28 +1227,28 @@
; 17d7b4
Function17d7b4: ; 17d7b4
- call Function17e415
+ call IncCrashCheckPointer
ld a, [hli]
ld e, a
ld d, $0
call PlayMusic2
- call Function17e41e
+ call HlToCrashCheckPointer
ret
; 17d7c2
Function17d7c2: ; 17d7c2
- call Function17e415
+ call IncCrashCheckPointer
ld a, [hli]
ld e, a
ld d, $0
call PlaySFX
call WaitSFX
- call Function17e41e
+ call HlToCrashCheckPointer
ret
; 17d7d3
Function17d7d3: ; 17d7d3
- call Function17e415
+ call IncCrashCheckPointer
ld a, [hli]
dec a
ld e, a
@@ -1255,12 +1255,12 @@
ld d, $0
call PlayCryHeader
call WaitSFX
- call Function17e41e
+ call HlToCrashCheckPointer
ret
; 17d7e5
Function17d7e5: ; 17d7e5
- call Function17e415
+ call IncCrashCheckPointer
ld a, [hli]
ld [wcd4f], a
ld a, [hli]
@@ -1281,12 +1281,12 @@
ld [wcd53], a
ld de, wcd4f
call Function17e691
- call Function17e41e
+ call HlToCrashCheckPointer
ret
; 17d818
Function17d818: ; 17d818
- call Function17e415
+ call IncCrashCheckPointer
ld a, [hli]
ld c, a
ld a, [hli]
@@ -1295,7 +1295,7 @@
ld e, a
ld a, [hli]
ld d, a
- call Function17e41e
+ call HlToCrashCheckPointer
call Function17e447
ld e, l
ld d, h
@@ -1306,7 +1306,7 @@
; 17d833
Function17d833: ; 17d833
- call Function17e415
+ call IncCrashCheckPointer
ld a, [hli]
ld e, a
ld a, [hli]
@@ -1315,7 +1315,7 @@
ld c, a
ld a, [hli]
ld b, a
- call Function17e41e
+ call HlToCrashCheckPointer
push de
push bc
call Function17e32b
@@ -1334,7 +1334,7 @@
; 17d85d
Function17d85d: ; 17d85d
- call Function17e415
+ call IncCrashCheckPointer
ld a, [hli]
ld e, a
ld a, [hli]
@@ -1404,7 +1404,7 @@
jr .asm_17d878
.asm_17d8c7
- call Function17e41e
+ call HlToCrashCheckPointer
push bc
ld a, $3
ld [rSVBK], a
@@ -1435,13 +1435,13 @@
; 17d902
Function17d902: ; 17d902
- call Function17e415
+ call IncCrashCheckPointer
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
push de
- call Function17e41e
+ call HlToCrashCheckPointer
call Function17e32b
pop de
ld hl, wBGPals1
@@ -1470,11 +1470,11 @@
; 17d93a
Function17d93a: ; 17d93a
- call Function17e415
+ call IncCrashCheckPointer
ld de, $c708
ld bc, $5
call CopyBytes
- call Function17e41e
+ call HlToCrashCheckPointer
call Function17e32b
ld a, [rSVBK]
push af
@@ -1506,11 +1506,11 @@
; 17d98b
Function17d98b: ; 17d98b
- call Function17e415
+ call IncCrashCheckPointer
ld de, $c708
ld bc, $4
call CopyBytes
- call Function17e41e
+ call HlToCrashCheckPointer
call Function17e32b
ld a, [rSVBK]
push af
@@ -1543,11 +1543,11 @@
; 17d9e3
Function17d9e3: ; 17d9e3
- call Function17e415
+ call IncCrashCheckPointer
ld de, $c708
ld bc, $7
call CopyBytes
- call Function17e41e
+ call HlToCrashCheckPointer
ld a, [$c70b]
push af
cp $c0
@@ -1589,11 +1589,11 @@
; 17da31
Function17da31: ; 17da31
- call Function17e415
+ call IncCrashCheckPointer
ld de, $c708
ld bc, $4
call CopyBytes
- call Function17e41e
+ call HlToCrashCheckPointer
ld a, [$c709]
push af
cp $c0
@@ -1679,7 +1679,7 @@
call Function17e55b
call Function17e5af
.asm_17daba
- jp Function17e415
+ jp IncCrashCheckPointer
.asm_17dabd
ld a, [wcd2f]
@@ -1721,7 +1721,7 @@
call Function17e5af
.asm_17db0e
- jp Function17e415
+ jp IncCrashCheckPointer
.asm_17db11
ld hl, wcd24
@@ -1756,7 +1756,7 @@
call Function17e5af
.asm_17db53
- jp Function17e415
+ jp IncCrashCheckPointer
; 17db56
Function17db56: ; 17db56
@@ -1774,7 +1774,7 @@
call Function17e5af
.asm_17db74
- jp Function17e415
+ jp IncCrashCheckPointer
; 17db77
Function17db77: ; 17db77
@@ -1806,7 +1806,7 @@
call Function17e5af
.asm_17dbae
- jp Function17e415
+ jp IncCrashCheckPointer
; 17dbb1
Function17dbb1: ; 17dbb1
@@ -1876,11 +1876,11 @@
call Function17e451
call Function17e55b
call Function17e5af
- jp Function17e415
+ jp IncCrashCheckPointer
; 17dc1f
Function17dc1f: ; 17dc1f
- call Function17e415
+ call IncCrashCheckPointer
ld de, $c688
ld bc, $6
call CopyBytes
@@ -1948,15 +1948,15 @@
; 17dc9f
Function17dc9f: ; 17dc9f
- call Function17e415
- call Function17e41e
+ call IncCrashCheckPointer
+ call HlToCrashCheckPointer
call RotateFourPalettesLeft
ret
; 17dca9
Function17dca9: ; 17dca9
- call Function17e415
- call Function17e41e
+ call IncCrashCheckPointer
+ call HlToCrashCheckPointer
Function17dcaf:
ld a, $5
@@ -1981,7 +1981,7 @@
; 17dccf
Function17dccf: ; 17dccf
- call Function17e415
+ call IncCrashCheckPointer
push hl
ld a, [wcd4b]
ld l, a
@@ -1997,11 +1997,11 @@
ld a, [hl]
ld b, a
call Function17e43d
- call Function17e41e
+ call HlToCrashCheckPointer
.asm_17dced
- ld a, [wcd78]
+ ld a, [wMobileCrashCheckPointer]
ld l, a
- ld a, [wcd79]
+ ld a, [wMobileCrashCheckPointer + 1]
ld h, a
ld a, [hl]
cp $ff
@@ -2019,7 +2019,7 @@
.asm_17dd0d
pop hl
- jp Function17e41e
+ jp HlToCrashCheckPointer
.asm_17dd11
pop hl
@@ -2027,7 +2027,7 @@
; 17dd13
Function17dd13: ; 17dd13
- call Function17e415
+ call IncCrashCheckPointer
ld a, [hli]
ld c, a
ld a, [hli]
@@ -2036,7 +2036,7 @@
ld e, a
ld a, [hli]
ld d, a
- call Function17e41e
+ call HlToCrashCheckPointer
call Function17e447
push hl
hlcoord 0, 0
@@ -2049,7 +2049,7 @@
; 17dd30
Function17dd30: ; 17dd30
- call Function17e415
+ call IncCrashCheckPointer
ld a, [hli]
ld e, a
ld a, [hli]
@@ -2059,7 +2059,7 @@
ld b, $0
ld a, [hli]
push af
- call Function17e41e
+ call HlToCrashCheckPointer
pop af
hlcoord 0, 0
add hl, de
@@ -2068,7 +2068,7 @@
; 17dd49
Function17dd49: ; 17dd49
- call Function17e415
+ call IncCrashCheckPointer
ld de, $c708
ld bc, $a
call CopyBytes
@@ -2149,7 +2149,7 @@
; 17ddcd
Function17ddcd: ; 17ddcd
- call Function17e415
+ call IncCrashCheckPointer
ld de, $c708
ld bc, $8
call CopyBytes
@@ -2211,7 +2211,7 @@
; 17de32
Function17de32: ; 17de32
- call Function17e415
+ call IncCrashCheckPointer
ld de, $c708
ld bc, $9
call CopyBytes
@@ -2270,7 +2270,7 @@
; 17de91
Function17de91: ; 17de91
- call Function17e415
+ call IncCrashCheckPointer
ld de, $c708
ld bc, $7
call CopyBytes
@@ -2313,7 +2313,7 @@
; 17ded9
Function17ded9: ; 17ded9
- call Function17e415
+ call IncCrashCheckPointer
ld de, $c708
ld bc, $1f
call CopyBytes
@@ -2654,7 +2654,7 @@
; 17e0fd
Function17e0fd: ; 17e0fd
- call Function17e415
+ call IncCrashCheckPointer
ld de, $c708
ld bc, $6
call CopyBytes
@@ -2688,7 +2688,7 @@
; 17e133
Function17e133: ; 17e133
- call Function17e415
+ call IncCrashCheckPointer
ld de, $c708
ld bc, $5
call CopyBytes
@@ -2719,7 +2719,7 @@
; 17e165
Function17e165: ; 17e165
- call Function17e415
+ call IncCrashCheckPointer
ld de, $c708
ld bc, $5
call CopyBytes
@@ -2756,7 +2756,7 @@
; 17e1a1
Function17e1a1: ; 17e1a1
- call Function17e415
+ call IncCrashCheckPointer
ld de, $c708
ld bc, $d
call CopyBytes
@@ -2865,7 +2865,7 @@
; 17e254
Function17e254: ; 17e254
- call Function17e415
+ call IncCrashCheckPointer
ld a, [hli]
ld e, a
ld a, [hli]
@@ -2872,12 +2872,12 @@
ld d, a
ld a, [hli]
ld [de], a
- call Function17e41e
+ call HlToCrashCheckPointer
ret
; 17e261
Function17e261: ; 17e261
- call Function17e415
+ call IncCrashCheckPointer
ld a, [hli]
ld e, a
ld a, [hli]
@@ -2886,12 +2886,12 @@
add [hl]
ld [de], a
inc hl
- call Function17e41e
+ call HlToCrashCheckPointer
ret
; 17e270
Function17e270: ; 17e270
- call Function17e415
+ call IncCrashCheckPointer
ld a, [hli]
ld e, a
ld a, [hli]
@@ -2900,12 +2900,12 @@
sub [hl]
ld [de], a
inc hl
- call Function17e41e
+ call HlToCrashCheckPointer
ret
; 17e27f
Function17e27f: ; 17e27f
- call Function17e415
+ call IncCrashCheckPointer
ld a, [hli]
ld e, a
ld a, [hli]
@@ -2914,7 +2914,7 @@
ld c, a
ld a, [hli]
ld b, a
- call Function17e41e
+ call HlToCrashCheckPointer
ld l, c
ld h, b
ld a, [de]
@@ -2924,7 +2924,7 @@
; 17e293
Function17e293: ; 17e293
- call Function17e415
+ call IncCrashCheckPointer
ld a, [hli]
ld e, a
ld a, [hli]
@@ -2933,7 +2933,7 @@
ld c, a
ld a, [hli]
ld b, a
- call Function17e41e
+ call HlToCrashCheckPointer
ld l, c
ld h, b
ld a, [de]
@@ -2943,8 +2943,8 @@
; 17e2a7
Function17e2a7: ; 17e2a7
- call Function17e415
- call Function17e41e
+ call IncCrashCheckPointer
+ call HlToCrashCheckPointer
call Function17e32b
xor a
ld [wcf66], a
@@ -3033,77 +3033,46 @@
ret
; 17e367
-Function17e367: ; 17e367
- call Function17e415
- call Function17e41e
+inc_crash_check_pointer_farcall: MACRO
+ call IncCrashCheckPointer
+ call HlToCrashCheckPointer ; redundant
ld a, [rSVBK]
push af
ld a, $1
ld [rSVBK], a
- farcall SaveGameData_
+rept _NARG
+ farcall \1
+ shift
+endr
pop af
ld [rSVBK], a
ret
+ENDM
+
+IncCrashCheckPointer_SaveGameData: ; 17e367
+ inc_crash_check_pointer_farcall SaveGameData_
; 17e37e
-Function17e37e: ; 17e37e
- call Function17e415
- call Function17e41e
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- farcall SaveAfterLinkTrade
- pop af
- ld [rSVBK], a
- ret
-; 17e395
+IncCrashCheckPointer_SaveAfterLinkTrade: ; 17e37e
+ inc_crash_check_pointer_farcall SaveAfterLinkTrade
-Function17e395: ; 17e395
- call Function17e415
- call Function17e41e
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- farcall SaveBox
- pop af
- ld [rSVBK], a
- ret
+IncCrashCheckPointer_SaveBox: ; 17e395
+ inc_crash_check_pointer_farcall SaveBox
; 17e3ac
-Function17e3ac: ; 17e3ac
- call Function17e415
- call Function17e41e
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- farcall SaveChecksum
- pop af
- ld [rSVBK], a
- ret
+IncCrashCheckPointer_SaveChecksum: ; 17e3ac
+ inc_crash_check_pointer_farcall SaveChecksum
; 17e3c3
-Function17e3c3: ; 17e3c3
- call Function17e415
- call Function17e41e
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- farcall UpdateTrainerRankingsChecksum2
- farcall BackupMobileEventIndex
- pop af
- ld [rSVBK], a
- ret
+IncCrashCheckPointer_SaveTrainerRankingsChecksum: ; 17e3c3
+ inc_crash_check_pointer_farcall UpdateTrainerRankingsChecksum2, BackupMobileEventIndex
; 17e3e0
Function17e3e0: ; 17e3e0
- call Function17e415
+ call IncCrashCheckPointer
ld a, [hli]
ld c, a
- call Function17e41e
+ call HlToCrashCheckPointer
ld a, $1
ld [hBGMapMode], a
call DelayFrames
@@ -3111,8 +3080,8 @@
; 17e3f0
Function17e3f0: ; 17e3f0
- call Function17e415
- call Function17e41e
+ call IncCrashCheckPointer
+ call HlToCrashCheckPointer
.asm_17e3f6
call JoyTextDelay
ld hl, hJoyPressed
@@ -3135,20 +3104,20 @@
Function17e40f: ; 17e40f
ld de, wBGPals1
add hl, de
- jr Function17e41e
+ jr HlToCrashCheckPointer
-Function17e415:
- ld a, [wcd78]
+IncCrashCheckPointer:
+ ld a, [wMobileCrashCheckPointer]
ld l, a
- ld a, [wcd79]
+ ld a, [wMobileCrashCheckPointer + 1]
ld h, a
inc hl
-Function17e41e:
+HlToCrashCheckPointer:
ld a, l
- ld [wcd78], a
+ ld [wMobileCrashCheckPointer], a
ld a, h
- ld [wcd79], a
+ ld [wMobileCrashCheckPointer + 1], a
ret
; 17e427
--- a/mobile/print_opp_message.asm
+++ b/mobile/print_opp_message.asm
@@ -10,7 +10,7 @@
call AddNTimes
ld de, wMobileOpponentBattleMessage
ld bc, $c
- ld a, $5 ; BANK(w5_MobileOpponentBattleMessages)
+ ld a, BANK(w5_MobileOpponentBattleMessages)
call FarCopyWRAM
ld a, [rSVBK]
--- a/wram.asm
+++ b/wram.asm
@@ -1228,8 +1228,7 @@
wOTMonSelection:: ds 2 ; ds 3
wcd77:: ds 1
-wcd78:: ds 1
-wcd79:: ds 1
+wMobileCrashCheckPointer:: dw
wcd7a:: ds 2
wcd7c:: ds 3
wcd7f:: ds 1
@@ -2337,6 +2336,7 @@
wRTC:: ds 8 ; d4ba
wDST:: db ; d4c2
+GameTime::
GameTimeCap:: db ; d4c3
GameTimeHours:: dw ; d4c4
GameTimeMinutes:: db ; d4c6
@@ -2938,6 +2938,7 @@
SECTION "GBC Video", WRAMX
; eight 4-color palettes each
+wPals::
wBGPals1:: ds 8 palettes ; d000
wOBPals1:: ds 8 palettes ; d040
wBGPals2:: ds 8 palettes ; d080
@@ -2948,6 +2949,7 @@
ds 1
+wMagnetTrain::
wMagnetTrainDirection:: db
wMagnetTrainInitPosition:: db
wMagnetTrainHoldPosition:: db