shithub: pokecrystal

Download patch

ref: 5a5df2ab87268c0ec8851a8a71ed088c2a04fe14
parent: 16c6696dd5d786eafca0beb855b55c00b25b01f4
author: Remy Oukaour <remy.oukaour@gmail.com>
date: Sat Dec 9 09:22:58 EST 2017

More WRAM organization

--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -70,16 +70,16 @@
 ; Start at the first command.
 	ld hl, BattleScriptBuffer
 	ld a, l
-	ld [BattleScriptBufferLoc], a
+	ld [BattleScriptBufferAddress], a
 	ld a, h
-	ld [BattleScriptBufferLoc + 1], a
+	ld [BattleScriptBufferAddress + 1], a
 
 .ReadMoveEffectCommand:
 
-; ld a, [BattleScriptBufferLoc++]
-	ld a, [BattleScriptBufferLoc]
+; ld a, [BattleScriptBufferAddress++]
+	ld a, [BattleScriptBufferAddress]
 	ld l, a
-	ld a, [BattleScriptBufferLoc + 1]
+	ld a, [BattleScriptBufferAddress + 1]
 	ld h, a
 
 	ld a, [hli]
@@ -86,9 +86,9 @@
 
 	push af
 	ld a, l
-	ld [BattleScriptBufferLoc], a
+	ld [BattleScriptBufferAddress], a
 	ld a, h
-	ld [BattleScriptBufferLoc + 1], a
+	ld [BattleScriptBufferAddress + 1], a
 	pop af
 
 ; endturn_command (-2) is used to terminate branches without ending the read cycle.
@@ -2743,9 +2743,9 @@
 
 
 EndMoveEffect: ; 352a3
-	ld a, [BattleScriptBufferLoc]
+	ld a, [BattleScriptBufferAddress]
 	ld l, a
-	ld a, [BattleScriptBufferLoc + 1]
+	ld a, [BattleScriptBufferAddress + 1]
 	ld h, a
 	ld a, $ff
 	ld [hli], a
@@ -7097,9 +7097,9 @@
 
 ; Loop back to the command before 'critical'.
 .loop_back_to_critical
-	ld a, [BattleScriptBufferLoc + 1]
+	ld a, [BattleScriptBufferAddress + 1]
 	ld h, a
-	ld a, [BattleScriptBufferLoc]
+	ld a, [BattleScriptBufferAddress]
 	ld l, a
 .not_critical
 	ld a, [hld]
@@ -7107,9 +7107,9 @@
 	jr nz, .not_critical
 	inc hl
 	ld a, h
-	ld [BattleScriptBufferLoc + 1], a
+	ld [BattleScriptBufferAddress + 1], a
 	ld a, l
-	ld [BattleScriptBufferLoc], a
+	ld [BattleScriptBufferAddress], a
 	ret
 
 ; 36a82
@@ -9983,9 +9983,9 @@
 
 SkipToBattleCommand: ; 37e8c
 ; Skip over commands until reaching command b.
-	ld a, [BattleScriptBufferLoc + 1]
+	ld a, [BattleScriptBufferAddress + 1]
 	ld h, a
-	ld a, [BattleScriptBufferLoc]
+	ld a, [BattleScriptBufferAddress]
 	ld l, a
 .loop
 	ld a, [hli]
@@ -9993,9 +9993,9 @@
 	jr nz, .loop
 
 	ld a, h
-	ld [BattleScriptBufferLoc + 1], a
+	ld [BattleScriptBufferAddress + 1], a
 	ld a, l
-	ld [BattleScriptBufferLoc], a
+	ld [BattleScriptBufferAddress], a
 	ret
 
 ; 37ea1
--- a/engine/pokedex.asm
+++ b/engine/pokedex.asm
@@ -512,7 +512,7 @@
 	call ClearSprites
 	call Pokedex_DrawOptionScreenBG
 	call Pokedex_InitArrowCursor
-	ld a, [wCurrentDexMode]
+	ld a, [wCurrentDexMode] ; Index of the topmost visible item in a scrolling menu ???
 	ld [wDexArrowCursorPosIndex], a
 	call Pokedex_DisplayModeDescription
 	call WaitBGMap
--- a/engine/trade/animation.asm
+++ b/engine/trade/animation.asm
@@ -100,7 +100,7 @@
 	tradeanim_end
 
 RunTradeAnimScript: ; 28fa1
-	ld hl, wTradeAnimPointer
+	ld hl, wTradeAnimAddress
 	ld [hl], e
 	inc hl
 	ld [hl], d
@@ -294,7 +294,7 @@
 ; 29114
 
 TradeAnim_AdvanceScriptPointer: ; 29114
-	ld hl, wTradeAnimPointer
+	ld hl, wTradeAnimAddress
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
--- a/gfx/load_pics.asm
+++ b/gfx/load_pics.asm
@@ -83,14 +83,14 @@
 	ld b, a
 	push bc
 	call GetFrontpicPointer
-	ld a, BANK(wDecompressScratch)
+	ld a, BANK(wDecompressEnemyFrontpic)
 	ld [rSVBK], a
 	ld a, b
-	ld de, wDecompressScratch + $800
+	ld de, wDecompressEnemyFrontpic
 	call FarDecompress
 	pop bc
 	ld hl, wDecompressScratch
-	ld de, wDecompressScratch + $800
+	ld de, wDecompressEnemyFrontpic
 	call PadFrontpic
 	pop hl
 	push hl
@@ -149,15 +149,15 @@
 	call GetFarWRAMByte
 	pop hl
 	and $f
-	ld de, w6_d800 + 5 * 5 tiles
+	ld de, wDecompressEnemyFrontpic + 5 * 5 tiles
 	ld c, 5 * 5
 	cp 5
 	jr z, .got_dims
-	ld de, w6_d800 + 6 * 6 tiles
+	ld de, wDecompressEnemyFrontpic + 6 * 6 tiles
 	ld c, 6 * 6
 	cp 6
 	jr z, .got_dims
-	ld de, w6_d800 + 7 * 7 tiles
+	ld de, wDecompressEnemyFrontpic + 7 * 7 tiles
 	ld c, 7 * 7
 .got_dims
 
--- a/home/map.asm
+++ b/home/map.asm
@@ -1415,7 +1415,7 @@
 	ld a, $1
 	ld [rVBK], a
 
-	ld hl, w6_d600
+	ld hl, wDecompressScratch + $60 tiles
 	ld de, VTiles2
 	ld bc, $60 tiles
 	call CopyBytes
--- a/misc/mobile_42.asm
+++ b/misc/mobile_42.asm
@@ -83,7 +83,7 @@
 	mobiletradeanim_end
 
 RunMobileTradeAnim_Frontpics: ; 10805b
-	ld hl, wTradeAnimPointer
+	ld hl, wTradeAnimAddress
 	ld [hl], e
 	inc hl
 	ld [hl], d
@@ -113,7 +113,7 @@
 ; 108089
 
 RunMobileTradeAnim_NoFrontpics: ; 108089
-	ld hl, wTradeAnimPointer
+	ld hl, wTradeAnimAddress
 	ld [hl], e
 	inc hl
 	ld [hl], d
@@ -411,7 +411,7 @@
 ; 1082b7
 
 GetMobileTradeAnimByte: ; 1082b7
-	ld hl, wTradeAnimPointer
+	ld hl, wTradeAnimAddress
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
--- a/wram.asm
+++ b/wram.asm
@@ -203,7 +203,7 @@
 
 SECTION "wSpriteAnims", WRAM0
 
-UNION
+UNION ; c300
 ; wSpriteAnimDict is a 10x2 dictionary
 ; keys: taken from third column of SpriteAnimSeqData
 ; values: VTiles
@@ -224,7 +224,7 @@
 SpriteAnim10:: sprite_anim_struct SpriteAnim10
 wSpriteAnimationStructsEnd::
 
-NEXTU
+NEXTU ; c300
 ; mobile data
 wc300:: ds 1
 wc301:: ds 1
@@ -325,29 +325,40 @@
 SECTION "Battle", WRAM0
 
 UNION
+; unidentified mobile/debug
 wc608::
+
+NEXTU ; c608
+; miscellaneous
+wMisc:: ds (SCREEN_WIDTH + 4) * (SCREEN_HEIGHT + 2)
+wMiscEnd::
+
+NEXTU ; c608
+; odd egg
 wOddEgg:: party_struct OddEgg
 wOddEggName:: ds PKMN_NAME_LENGTH
 wOddEggOTName:: ds PKMN_NAME_LENGTH
 
-NEXTU
+NEXTU ; c608
+; battle tower temp struct
 wBT_OTTemp:: battle_tower_struct wBT_OTTemp
 
-NEXTU
+NEXTU ; c608
+; hall of fame temp struct
 	hall_of_fame wHallOfFameTemp
 
-NEXTU
-wMisc:: ; ds (SCREEN_WIDTH + 4) * (SCREEN_HEIGHT + 2)
+NEXTU ; c608
+; timeset temp storage
+	ds 20
+wInitHourBuffer:: db ; c61c
+
+NEXTU ; c608
+; link engine data
 	ds 10
-wc612::
-	ds 6
-wc618::
-	ds 4
-wInitHourBuffer:: ; c61c
-	ds 10
-wc626::
+wc612:: ds 10
 
-NEXTU
+NEXTU ; c608
+; battle data
 wBattle::
 wEnemyMoveStruct::  move_struct wEnemyMoveStruct ; c608
 wPlayerMoveStruct:: move_struct wPlayerMoveStruct ; c60f
@@ -359,16 +370,15 @@
 
 	ds 2
 
-wWildMon:: ds 1 ; c64e
+wWildMon:: db ; c64e
 	ds 1
-wEnemyTrainerItem1:: ds 1 ; c650
-wEnemyTrainerItem2:: ds 1 ; c651
-wEnemyTrainerBaseReward:: ds 1 ; c652
+wEnemyTrainerItem1:: db ; c650
+wEnemyTrainerItem2:: db ; c651
+wEnemyTrainerBaseReward:: db ; c652
 wEnemyTrainerAIFlags:: ds 3 ; c653
 OTClassName:: ds TRAINER_CLASS_NAME_LENGTH ; c656
 
-CurOTMon:: ; c663
-	ds 1
+CurOTMon:: db ; c663
 
 wBattleParticipantsNotFainted::
 ; Bit array.  Bits 0 - 5 correspond to party members 1 - 6.
@@ -376,7 +386,7 @@
 ; Bit cleared if the mon faints.
 ; Backed up if the enemy switches.
 ; All bits cleared if the enemy faints.
-	ds 1
+	db
 
 TypeModifier:: ; c665
 ; >10: super-effective
@@ -383,17 +393,17 @@
 ;  10: normal
 ; <10: not very effective
 ; bit 7: stab
-	ds 1
+	db
 
 CriticalHit:: ; c666
 ; 0 if not critical
 ; 1 for a critical hit
 ; 2 for a OHKO
-	ds 1
+	db
 
 AttackMissed:: ; c667
 ; nonzero for a miss
-	ds 1
+	db
 
 PlayerSubStatus1:: ; c668
 ; bit
@@ -405,7 +415,7 @@
 ; 2 protect
 ; 1 curse
 ; 0 nightmare
-	ds 1
+	db
 PlayerSubStatus2:: ; c669
 ; bit
 ; 7
@@ -416,7 +426,7 @@
 ; 2
 ; 1
 ; 0 curled
-	ds 1
+	db
 PlayerSubStatus3:: ; c66a
 ; bit
 ; 7 confused
@@ -427,7 +437,7 @@
 ; 2 in loop
 ; 1 rampage
 ; 0 bide
-	ds 1
+	db
 PlayerSubStatus4:: ; c66b
 ; bit
 ; 7 leech seed
@@ -438,7 +448,7 @@
 ; 2 focus energy
 ; 1 mist
 ; 0 x accuracy
-	ds 1
+	db
 PlayerSubStatus5:: ; c66c
 ; bit
 ; 7 can't run
@@ -449,190 +459,143 @@
 ; 2
 ; 1
 ; 0 toxic
-	ds 1
+	db
 
 EnemySubStatus1:: ; c66d
 ; see PlayerSubStatus1
-	ds 1
+	db
 EnemySubStatus2:: ; c66e
 ; see PlayerSubStatus2
-	ds 1
+	db
 EnemySubStatus3:: ; c66f
 ; see PlayerSubStatus3
-	ds 1
+	db
 EnemySubStatus4:: ; c670
 ; see PlayerSubStatus4
-	ds 1
+	db
 EnemySubStatus5:: ; c671
 ; see PlayerSubStatus5
-	ds 1
+	db
 
-PlayerRolloutCount:: ; c672
-	ds 1
-PlayerConfuseCount:: ; c673
-	ds 1
-PlayerToxicCount:: ; c674
-	ds 1
-PlayerDisableCount:: ; c675
-	ds 1
-PlayerEncoreCount:: ; c676
-	ds 1
-PlayerPerishCount:: ; c677
-	ds 1
-PlayerFuryCutterCount:: ; c678
-	ds 1
-PlayerProtectCount:: ; c679
-	ds 1
+PlayerRolloutCount:: db ; c672
+PlayerConfuseCount:: db ; c673
+PlayerToxicCount:: db ; c674
+PlayerDisableCount:: db ; c675
+PlayerEncoreCount:: db ; c676
+PlayerPerishCount:: db ; c677
+PlayerFuryCutterCount:: db ; c678
+PlayerProtectCount:: db ; c679
 
-EnemyRolloutCount:: ; c67a
-	ds 1
-EnemyConfuseCount:: ; c67b
-	ds 1
-EnemyToxicCount:: ; c67c
-	ds 1
-EnemyDisableCount:: ; c67d
-	ds 1
-EnemyEncoreCount:: ; c67e
-	ds 1
-EnemyPerishCount:: ; c67f
-	ds 1
-EnemyFuryCutterCount:: ; c680
-	ds 1
-EnemyProtectCount:: ; c681
-	ds 1
+EnemyRolloutCount:: db ; c67a
+EnemyConfuseCount:: db ; c67b
+EnemyToxicCount:: db ; c67c
+EnemyDisableCount:: db ; c67d
+EnemyEncoreCount:: db ; c67e
+EnemyPerishCount:: db ; c67f
+EnemyFuryCutterCount:: db ; c680
+EnemyProtectCount:: db ; c681
 
-PlayerDamageTaken:: ; c682
-	ds 2
-EnemyDamageTaken:: ; c684
-	ds 2
+PlayerDamageTaken:: dw ; c682
+EnemyDamageTaken:: dw ; c684
 
 wBattleReward:: ds 3 ; c686
 wBattleAnimParam::
 wKickCounter::
-wPresentPower:: ds 1 ; c689
-BattleScriptBuffer:: ; c68a
-	ds 40
+wPresentPower:: db ; c689
+BattleScriptBuffer:: ds 40 ; c68a
 
-BattleScriptBufferLoc:: ; c6b2
-	ds 2
+BattleScriptBufferAddress:: dw ; c6b2
 
-wTurnEnded:: ds 1 ; c6b4
+wTurnEnded:: db ; c6b4
+
 	ds 1
 
 PlayerStats:: ; c6b6
-PlayerAttack:: ds 2
-PlayerDefense:: ds 2
-PlayerSpeed:: ds 2
-PlayerSpAtk:: ds 2
-PlayerSpDef:: ds 2
+PlayerAttack:: dw
+PlayerDefense:: dw
+PlayerSpeed:: dw
+PlayerSpAtk:: dw
+PlayerSpDef:: dw
 	ds 1
+
 EnemyStats:: ; c6c1
-EnemyAttack:: ds 2
-EnemyDefense:: ds 2
-EnemySpeed:: ds 2
-EnemySpAtk:: ds 2
-EnemySpDef:: ds 2
+EnemyAttack:: dw
+EnemyDefense:: dw
+EnemySpeed:: dw
+EnemySpAtk:: dw
+EnemySpDef:: dw
 	ds 1
 
 PlayerStatLevels:: ; c6cc
 ; 07 neutral
-PlayerAtkLevel:: ; c6cc
-	ds 1
-PlayerDefLevel:: ; c6cd
-	ds 1
-PlayerSpdLevel:: ; c6ce
-	ds 1
-PlayerSAtkLevel:: ; c6cf
-	ds 1
+PlayerAtkLevel:: db ; c6cc
+PlayerDefLevel:: db ; c6cd
+PlayerSpdLevel:: db ; c6ce
+PlayerSAtkLevel:: db ; c6cf
 
-UNION
-wc6d0::
-PlayerSDefLevel:: ; c6d0
-	ds 1
-PlayerAccLevel:: ; c6d1
-	ds 1
-PlayerEvaLevel:: ; c6d2
-	ds 1
-; c6d3
-	ds 1
+UNION ; c6d0
+PlayerSDefLevel:: db ; c6d0
+PlayerAccLevel:: db ; c6d1
+PlayerEvaLevel:: db ; c6d2
+	ds 1 ; c6d3
 PlayerStatLevelsEnd::
 
 EnemyStatLevels:: ; c6d4
 ; 07 neutral
-EnemyAtkLevel:: ; c6d4
+EnemyAtkLevel:: db ; c6d4
+EnemyDefLevel:: db ; c6d5
+EnemySpdLevel:: db ; c6d6
+EnemySAtkLevel:: db ; c6d7
+EnemySDefLevel:: db ; c6d8
+EnemyAccLevel:: db ; c6d9
+EnemyEvaLevel:: db ; c6da
 	ds 1
-EnemyDefLevel:: ; c6d5
-	ds 1
-EnemySpdLevel:: ; c6d6
-	ds 1
-EnemySAtkLevel:: ; c6d7
-	ds 1
-EnemySDefLevel:: ; c6d8
-	ds 1
-EnemyAccLevel:: ; c6d9
-	ds 1
-EnemyEvaLevel:: ; c6da
-	ds 1
 
+EnemyTurnsTaken:: db ; c6dc
+PlayerTurnsTaken:: db ; c6dd
 	ds 1
-EnemyTurnsTaken:: ; c6dc
-	ds 1
-PlayerTurnsTaken:: ; c6dd
-	ds 1
 
-	ds 1
+PlayerSubstituteHP:: db ; c6df
+EnemySubstituteHP:: db ; c6e0
 
-PlayerSubstituteHP:: ; c6df
+wUnusedPlayerLockedMove:: db ; c6e1
 	ds 1
-EnemySubstituteHP:: ; c6e0
-	ds 1
 
-wUnusedPlayerLockedMove:: ds 1 ; c6e1
-	ds 1
-CurPlayerMove:: ; c6e3
-	ds 1
-CurEnemyMove:: ; c6e4
-	ds 1
+CurPlayerMove:: db ; c6e3
+CurEnemyMove:: db ; c6e4
 
 LinkBattleRNCount:: ; c6e5
 ; how far through the prng stream
-	ds 1
+	db
 
-wEnemyItemState:: ds 1 ; c6e6
+wEnemyItemState:: db ; c6e6
 	ds 2
-CurEnemyMoveNum:: ; c6e9
-	ds 1
+CurEnemyMoveNum:: db ; c6e9
 
-wEnemyHPAtTimeOfPlayerSwitch:: ds 2 ; c6ea
+wEnemyHPAtTimeOfPlayerSwitch:: dw ; c6ea
 wPayDayMoney:: ds 3 ; c6ec
 
-wSafariMonAngerCount:: ds 1
-wSafariMonEating:: ds 2
-wEnemyBackupDVs:: ; used when enemy is transformed
-	ds 2
-AlreadyDisobeyed:: ; c6f4
+wSafariMonAngerCount:: db
+wSafariMonEating:: db
 	ds 1
+wEnemyBackupDVs:: dw ; used when enemy is transformed
+AlreadyDisobeyed:: db ; c6f4
 
-DisabledMove:: ; c6f5
-	ds 1
-EnemyDisabledMove:: ; c6f6
-	ds 1
-wWhichMonFaintedFirst:: ds 1
+DisabledMove:: db ; c6f5
+EnemyDisabledMove:: db ; c6f6
+wWhichMonFaintedFirst:: db
 
 ; exists so you can't counter on switch
-LastPlayerCounterMove:: ; c6f8
-	ds 1
-LastEnemyCounterMove:: ; c6f9
-	ds 1
+LastPlayerCounterMove:: db ; c6f8
+LastEnemyCounterMove:: db ; c6f9
 
-wEnemyMinimized:: ds 1 ; c6fa
+wEnemyMinimized:: db ; c6fa
 
-AlreadyFailed:: ; c6fb
-	ds 1
+AlreadyFailed:: db ; c6fb
 
-wBattleParticipantsIncludingFainted:: ds 1 ; c6fc
-wDanger:: ds 1 ; c6fd
-wPlayerMinimized:: ds 1 ; c6fe
+wBattleParticipantsIncludingFainted:: db ; c6fc
+wDanger:: db ; c6fd
+wPlayerMinimized:: db ; c6fe
 PlayerScreens:: ; c6ff
 ; bit
 ; 7
@@ -643,27 +606,22 @@
 ; 2 safeguard
 ; 1
 ; 0 spikes
-	ds 1
+	db
 
 EnemyScreens:: ; c700
 ; see PlayerScreens
-	ds 1
+	db
 
-PlayerSafeguardCount:: ; c701
+PlayerSafeguardCount:: db ; c701
+PlayerLightScreenCount:: db ; c702
+PlayerReflectCount:: db ; c703
 	ds 1
-PlayerLightScreenCount:: ; c702
-	ds 1
-PlayerReflectCount:: ; c703
-	ds 1
 
-	ds 1
-EnemySafeguardCount:: ; c705
-	ds 1
-EnemyLightScreenCount:: ; c706
-	ds 1
-EnemyReflectCount:: ; c707
-	ds 1
+EnemySafeguardCount:: db ; c705
+EnemyLightScreenCount:: db ; c706
+EnemyReflectCount:: db ; c707
 	ds 2
+
 Weather:: ; c70a
 ; 00 normal
 ; 01 rain
@@ -672,113 +630,110 @@
 ; 04 rain stopped
 ; 05 sunliight faded
 ; 06 sandstorm subsided
-	ds 1
+	db
 
 WeatherCount:: ; c70b
 ; # turns remaining
-	ds 1
+	db
 
-LoweredStat:: ; c70c
-	ds 1
-EffectFailed:: ; c70d
-	ds 1
-FailedMessage:: ; c70e
-	ds 1
-wEnemyGoesFirst:: ; c70f
-	ds 1
-wPlayerIsSwitching:: ds 1 ; c710
-wEnemyIsSwitching::  ds 1 ; c711
+LoweredStat:: db ; c70c
+EffectFailed:: db ; c70d
+FailedMessage:: db ; c70e
+wEnemyGoesFirst:: db ; c70f
 
+wPlayerIsSwitching:: db ; c710
+wEnemyIsSwitching::  db ; c711
+
 PlayerUsedMoves:: ; c712
 ; add a move that has been used once by the player
 ; added in order of use
 	ds NUM_MOVES
 
-wEnemyAISwitchScore:: ds 1 ; c716
-wEnemySwitchMonParam:: ds 1 ; c717
-wEnemySwitchMonIndex:: ds 1 ; c718
-wTempLevel:: ds 1 ; c719
-LastPlayerMon:: ds 1 ; c71a
-LastPlayerMove:: ; c71b
-	ds 1
-LastEnemyMove:: ; c71c
-	ds 1
+wEnemyAISwitchScore:: db ; c716
+wEnemySwitchMonParam:: db ; c717
+wEnemySwitchMonIndex:: db ; c718
+wTempLevel:: db ; c719
+LastPlayerMon:: db ; c71a
+LastPlayerMove:: db ; c71b
+LastEnemyMove:: db ; c71c
 
-wPlayerFutureSightCount:: ds 1 ; c71d
-wEnemyFutureSightCount:: ds 1 ; c71e
-wGivingExperienceToExpShareHolders:: ds 1 ; c71f
+wPlayerFutureSightCount:: db ; c71d
+wEnemyFutureSightCount:: db ; c71e
+
+wGivingExperienceToExpShareHolders:: db ; c71f
+
 wBackupEnemyMonBaseStats:: ds 5 ; c720
 wBackupEnemyMonCatchRate:: db ; c725
 wBackupEnemyMonBaseExp:: db ; c726
-wPlayerFutureSightDamage:: ds 2 ; c727
-wEnemyFutureSightDamage:: ds 2 ; c729
-wPlayerRageCounter:: ds 1 ; c72b
-wEnemyRageCounter:: ds 1 ; c72c
-wBeatUpHitAtLeastOnce:: ds 1 ; c72d
-wPlayerTrappingMove:: ds 1 ; c72e
-wEnemyTrappingMove:: ds 1 ; c72f
-wPlayerWrapCount:: ds 1 ; c730
-wEnemyWrapCount:: ds 1 ; c731
-wPlayerCharging:: ds 1 ; c732
-wEnemyCharging:: ds 1 ; c733
-BattleEnded:: ; c734
-	ds 1
 
+wPlayerFutureSightDamage:: dw ; c727
+wEnemyFutureSightDamage:: dw ; c729
+wPlayerRageCounter:: db ; c72b
+wEnemyRageCounter:: db ; c72c
+
+wBeatUpHitAtLeastOnce:: db ; c72d
+
+wPlayerTrappingMove:: db ; c72e
+wEnemyTrappingMove:: db ; c72f
+wPlayerWrapCount:: db ; c730
+wEnemyWrapCount:: db ; c731
+wPlayerCharging:: db ; c732
+wEnemyCharging:: db ; c733
+
+BattleEnded:: db ; c734
+
 wWildMonMoves:: ds NUM_MOVES ; c735
 wWildMonPP:: ds NUM_MOVES ; c739
-wAmuletCoin:: ds 1 ; c73a
-wSomeoneIsRampaging:: ds 1 ; c73b
-wPlayerJustGotFrozen:: ds 1 ; c73c
-wEnemyJustGotFrozen:: ds 1 ; c73d
+
+wAmuletCoin:: db ; c73a
+
+wSomeoneIsRampaging:: db ; c73b
+
+wPlayerJustGotFrozen:: db ; c73c
+wEnemyJustGotFrozen:: db ; c73d
 wBattleEnd::
 ; Battle RAM
-
 ; c741
-NEXTU
+
+NEXTU ; c6d0
+; trade
 wTrademons::
 wPlayerTrademon:: trademon wPlayerTrademon
 wOTTrademon::     trademon wOTTrademon
 wTrademonsEnd::
-wTradeAnimPointer::
-	ds 2
+wTradeAnimAddress:: dw
 wLinkPlayer1Name:: ds NAME_LENGTH
 wLinkPlayer2Name:: ds NAME_LENGTH
-wLinkTradeSendmonSpecies:: ds 1
-wLinkTradeGetmonSpecies:: ds 1
-wc74e:: ds 107
-wc7b9:: ds 1
-wc7ba:: ds 1
-wc7bb:: ds 2
-wc7bd::
+wLinkTradeSendmonSpecies:: db
+wLinkTradeGetmonSpecies::  db
 
-NEXTU
+NEXTU ; c6d0
 ; naming screen
-wNamingScreenDestinationPointer:: ds 2 ; c6d0
-wNamingScreenCurrNameLength:: ds 1 ; c6d2
-wNamingScreenMaxNameLength:: ds 1 ; c6d3
-wNamingScreenType:: ds 1 ; c6d4
-wNamingScreenCursorObjectPointer:: ds 2 ; c6d5
-wNamingScreenLastCharacter:: ds 1 ; c6d7
-wNamingScreenStringEntryCoord:: ds 2 ; c6d8
+wNamingScreenDestinationPointer:: dw ; c6d0
+wNamingScreenCurrNameLength:: db ; c6d2
+wNamingScreenMaxNameLength:: db ; c6d3
+wNamingScreenType:: db ; c6d4
+wNamingScreenCursorObjectPointer:: dw ; c6d5
+wNamingScreenLastCharacter:: db ; c6d7
+wNamingScreenStringEntryCoord:: dw ; c6d8
 
-NEXTU
+NEXTU ; c6d0
 ; pokegear
-wPokegearPhoneLoadNameBuffer:: ds 1 ; c6d0
-wPokegearPhoneCursorPosition:: ds 1 ; c6d1
-wPokegearPhoneScrollPosition:: ds 1 ; c6d2
-wPokegearPhoneSelectedPerson:: ds 1 ; c6d3
-wPokegearPhoneSubmenuCursor:: ds 1 ; c6d4
-wPokegearMapCursorObjectPointer:: ds 2 ; c6d5
-wPokegearMapCursorLandmark:: ds 1 ; c6d7
-wPokegearMapPlayerIconLandmark:: ds 1 ; c6d8
-wPokegearRadioChannelBank:: ds 1 ; c6d9
-wPokegearRadioChannelAddr:: ds 2 ; c6da
-wPokegearRadioMusicPlaying:: ds 1 ; c6dc
+wPokegearPhoneLoadNameBuffer:: db ; c6d0
+wPokegearPhoneCursorPosition:: db ; c6d1
+wPokegearPhoneScrollPosition:: db ; c6d2
+wPokegearPhoneSelectedPerson:: db ; c6d3
+wPokegearPhoneSubmenuCursor:: db ; c6d4
+wPokegearMapCursorObjectPointer:: dw ; c6d5
+wPokegearMapCursorLandmark:: db ; c6d7
+wPokegearMapPlayerIconLandmark:: db ; c6d8
+wPokegearRadioChannelBank:: db ; c6d9
+wPokegearRadioChannelAddr:: dw ; c6da
+wPokegearRadioMusicPlaying:: db ; c6dc
 
-NEXTU
+NEXTU ; c6d0
+; slot machine
 wSlots::
-; Slot Machine
-; c6d0
 wReel1:: slot_reel wReel1
 wReel2:: slot_reel wReel2
 wReel3:: slot_reel wReel3
@@ -786,127 +741,130 @@
 wReel1Stopped:: ds 3
 wReel2Stopped:: ds 3
 wReel3Stopped:: ds 3
-wSlotBias:: ds 1
-wSlotBet:: ds 1
-wFirstTwoReelsMatching:: ds 1
-wFirstTwoReelsMatchingSevens:: ds 1
-wSlotMatched:: ds 1
+wSlotBias:: db
+wSlotBet:: db
+wFirstTwoReelsMatching:: db
+wFirstTwoReelsMatchingSevens:: db
+wSlotMatched:: db
 wCurrReelStopped:: ds 3
-wPayout:: ds 2
-wCurrReelXCoord:: ds 1
-wCurrReelYCoord:: ds 1
+wPayout:: dw
+wCurrReelXCoord:: db
+wCurrReelYCoord:: db
 	ds 2
-wSlotBuildingMatch:: ds 1
+wSlotBuildingMatch:: db
 wSlotsDataEnd::
 	ds 28
 wSlotsEnd::
 
-NEXTU
-; Card Flip
-; c6d0
+NEXTU ; c6d0
+; card flip
 wCardFlip::
 wDeck:: ds 24
 wDeckEnd::
 ; c6e8
-wCardFlipNumCardsPlayed:: ds 1
-wCardFlipFaceUpCard:: ds 1
+wCardFlipNumCardsPlayed:: db
+wCardFlipFaceUpCard:: db
 wDiscardPile:: ds 24
 wDiscardPileEnd::
 wCardFlipEnd::
 
-NEXTU
-; Dummy Game
-; c6d0
+NEXTU ; c6d0
+; dummy game
 wDummyGame::
 wDummyGameCards:: ds 9 * 5
 wDummyGameCardsEnd::
-wDummyGameLastCardPicked:: ds 1 ; c6fd
-wDummyGameCard1:: ds 1 ; c6fe
-wDummyGameCard2:: ds 1 ; c6ff
-wDummyGameCard1Location:: ds 1 ; c700
-wDummyGameCard2Location:: ds 1 ; c701
-wDummyGameNumberTriesRemaining:: ds 1 ; c702
+wDummyGameLastCardPicked:: db ; c6fd
+wDummyGameCard1:: db ; c6fe
+wDummyGameCard2:: db ; c6ff
+wDummyGameCard1Location:: db ; c700
+wDummyGameCard2Location:: db ; c701
+wDummyGameNumberTriesRemaining:: db ; c702
 wDummyGameLastMatches:: ds 5 ; c703
-wDummyGameCounter:: ds 1 ; c708
-wDummyGameNumCardsMatched:: ds 1 ; c709
+wDummyGameCounter:: db ; c708
+wDummyGameNumCardsMatched:: db ; c709
 wDummyGameEnd::
 
-NEXTU
-; Unown Puzzle
+NEXTU ; c6d0
+; unown puzzle
 wUnownPuzzle::
 wPuzzlePieces::
 	ds 6 * 6
 wUnownPuzzleEnd::
 
-NEXTU
+NEXTU ; c6d0
+; pokedex
 wPokedexDataStart::
 wPokedexOrder:: ds NUM_POKEMON +- 1
-wPokedexOrderEnd:: ds 6
+wPokedexOrderEnd::
+	ds 6
 wPokedexMetadata::
-wDexListingScrollOffset:: ; offset of the first displayed entry from the start
-wc7d0:: ds 1
-wDexListingCursor::
-wc7d1:: ds 1 ; Dex cursor
-wDexListingEnd::
-wc7d2:: ds 1 ; Last mon to display
-wDexListingHeight:: ; number of entries displayed at once in the dex listing
-wc7d3:: ds 1
-wCurrentDexMode::   ; Pokedex Mode
-wc7d4:: ds 1 ; Index of the topmost visible item in a scrolling menu
-wDexSearchMonType1:: ds 1 ; first type to search
-wDexSearchMonType2:: ds 1 ; second type to search
-wDexSearchResultCount:: ds 1
-wDexArrowCursorPosIndex:: ds 1
-wDexArrowCursorDelayCounter:: ds 1
-wDexArrowCursorBlinkCounter:: ds 1
-wDexSearchSlowpokeFrame:: ds 1
-wUnlockedUnownMode:: ds 1
-wDexCurrentUnownIndex:: ds 1
-wDexUnownCount:: ds 1
-wDexConvertedMonType:: ds 1 ; mon type converted from dex search mon type
-wDexListingScrollOffsetBackup:: ds 1
-wDexListingCursorBackup:: ds 1
-wBackupDexListingCursor::
-wc7e2:: ds 1
-wBackupDexListingPage::
-wc7e3:: ds 1
-wDexCurrentLocation::
-wc7e4:: ds 1
+wDexListingScrollOffset:: db ; offset of the first displayed entry from the start
+wDexListingCursor:: db ; Dex cursor
+wDexListingEnd:: db ; Last mon to display
+wDexListingHeight:: db ; number of entries displayed at once in the dex listing
+wCurrentDexMode:: db ; Pokedex Mode
+wDexSearchMonType1:: db ; first type to search
+wDexSearchMonType2:: db ; second type to search
+wDexSearchResultCount:: db
+wDexArrowCursorPosIndex:: db
+wDexArrowCursorDelayCounter:: db
+wDexArrowCursorBlinkCounter:: db
+wDexSearchSlowpokeFrame:: db
+wUnlockedUnownMode:: db
+wDexCurrentUnownIndex:: db
+wDexUnownCount:: db
+wDexConvertedMonType:: db ; mon type converted from dex search mon type
+wDexListingScrollOffsetBackup:: db
+wDexListingCursorBackup:: db
+wBackupDexListingCursor:: db
+wBackupDexListingPage:: db
+wDexCurrentLocation:: db
 IF DEF(CRYSTAL11)
-wPokedexStatus::
-ELSE
+wPokedexStatus:: ds 1
 wPokedexDataEnd::
+ELSE
+wPokedexDataEnd:: ds 1
 ENDC
-	ds 1
-IF DEF(CRYSTAL11)
-wPokedexDataEnd::
-ENDC
 	ds 2
 
-wMiscEnd::
+NEXTU ; c6d0
+; mobile data
+wc6d0:: ds 126
+wc74e:: ds 107
+wc7b9:: ds 1
+wc7ba:: ds 1
+wc7bb:: ds 2
+wc7bd:: ds 19
+wc7d0:: ds 1
+wc7d1:: ds 1
+wc7d2:: ds 1
+wc7d3:: ds 1
+wc7d4:: ds 1
 ENDU
 ENDU
 
 wc7e8:: ds 24 ; ????
 
+
 SECTION "Overworld Map", WRAM0
 
-UNION
+UNION ; c800
 OverworldMap:: ; c800
 	ds 1300
 OverworldMapEnd::
-NEXTU
 
+NEXTU ; c800
+; GB Printer screen RAM
 wGameboyPrinterRAM::
 wGameboyPrinterScreen:: ds SCREEN_HEIGHT * SCREEN_WIDTH ; c800
 wGameboyPrinterScreenEnd:: ; c968
-NEXTU
 
-wGameboyPrinter2bppSource::
-	ds 40 tiles
+NEXTU ; c800
+; GB Printer data
+wGameboyPrinter2bppSource:: ds 40 tiles
 wGameboyPrinter2bppSourceEnd::
 wca80:: ds 1
-wPrinterRowIndex:: ds 1
+wPrinterRowIndex:: db
 
 ; Printer data header
 wca82:: ds 1
@@ -914,16 +872,16 @@
 wca84:: ds 1
 wca85:: ds 1
 wPrinterChecksum:: dw ; ca86
-wPrinterHandshake:: ds 1
+wPrinterHandshake:: db
 wPrinterStatusFlags::
 ; bit 7: set if error 1 (battery low)
 ; bit 6: set if error 4 (too hot or cold)
 ; bit 5: set if error 3 (paper jammed or empty)
 ; if this and the previous byte are both $ff: error 2 (connection error)
-	ds 1
+	db
 
-wHandshakeFrameDelay:: ds 1
-wPrinterSerialFrameDelay:: ds 1
+wHandshakeFrameDelay:: db
+wPrinterSerialFrameDelay:: db
 wPrinterSendByteOffset:: dw
 wPrinterSendByteCounter:: dw
 
@@ -930,27 +888,29 @@
 ; tilemap backup?
 wPrinterTileMapBuffer:: ds SCREEN_HEIGHT * SCREEN_WIDTH ; ca90
 wPrinterTileMapBufferEnd::
-wPrinterStatus:: ds 1 ; cbf8
+wPrinterStatus:: db ; cbf8
 	ds 1
 wcbfa:: ds 1
-wGBPrinterSettings:: ds 1
+wGBPrinterSettings:: db
 	ds 16
 wGameboyPrinterRAMEnd::
 
-NEXTU
+NEXTU ; c800
+; bill's pc data
 wBillsPCPokemonList:: ; c800
 ; Pokemon, box number, list index
+	ds 3 * 30
 
-wMysteryGiftPartyTemp:: ; ds PARTY_LENGTH * (1 + 1 + NUM_MOVES)
-wMysteryGiftStaging::
-
+NEXTU ; c800
+; link data
 wLinkData:: ; ds $514
 wLinkPlayerName:: ds NAME_LENGTH
-wLinkPartyCount:: ds 1
+wLinkPartyCount:: db
 wLinkPartySpecies:: ds PARTY_LENGTH
-wLinkPartySpeciesEnd:: ds 1
+wLinkPartySpeciesEnd:: db
 
-UNION
+UNION ; c813
+; time capsule party data
 wTimeCapsulePlayerData::
 wTimeCapsulePartyMon1:: red_party_struct wTimeCapsulePartyMon1
 wTimeCapsulePartyMon2:: red_party_struct wTimeCapsulePartyMon2
@@ -962,7 +922,8 @@
 wTimeCapsulePartyMonNicks:: ds PARTY_LENGTH * PKMN_NAME_LENGTH
 wTimeCapsulePlayerDataEnd::
 
-NEXTU
+NEXTU ; c813
+; link player data
 wLinkPlayerData::
 wLinkPlayerPartyMon1:: party_struct wLinkPlayerPartyMon1
 wLinkPlayerPartyMon2:: party_struct wLinkPlayerPartyMon2
@@ -974,12 +935,14 @@
 wLinkPlayerPartyMonNicks:: ds PARTY_LENGTH * PKMN_NAME_LENGTH
 wLinkPlayerDataEnd::
 ENDU
-	ds $35d
-
+	ds 861
 wLinkDataEnd::
-NEXTU
 
-wc800::	ds 1
+NEXTU ; c800
+; mystery gift data
+wMysteryGiftPartyTemp:: ; ds PARTY_LENGTH * (1 + 1 + NUM_MOVES)
+wMysteryGiftStaging::
+wc800:: ds 1
 wc801:: ds 1
 wc802:: ds 1
 wc803:: ds 4
@@ -996,11 +959,12 @@
 wc821:: ds 15
 wc830:: ds 16
 wc840:: ds 16
-UNION
+
+UNION ; c850
 wMysteryGiftTrainerData:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2
 wMysteryGiftTrainerDataEnd::
 
-NEXTU
+NEXTU ; c850
 wc850:: ds 16
 wc860:: ds 16
 wc870:: ds 16
@@ -1076,15 +1040,15 @@
 wcb0e:: ds 5
 wcb13:: ds 9
 wcb1c:: ds 14
-wBillsPC_ScrollPosition:: ds 1
-wBillsPC_CursorPosition:: ds 1
-wBillsPC_NumMonsInBox:: ds 1
-wBillsPC_NumMonsOnScreen:: ds 1
-wBillsPC_LoadedBox:: ds 1 ; 0 if party, 1 - 14 if box, 15 if active box
-wBillsPC_BackupScrollPosition:: ds 1
-wBillsPC_BackupCursorPosition:: ds 1
-wBillsPC_BackupLoadedBox:: ds 1
-wBillsPC_MonHasMail:: ds 1
+wBillsPC_ScrollPosition:: db
+wBillsPC_CursorPosition:: db
+wBillsPC_NumMonsInBox:: db
+wBillsPC_NumMonsOnScreen:: db
+wBillsPC_LoadedBox:: db ; 0 if party, 1 - 14 if box, 15 if active box
+wBillsPC_BackupScrollPosition:: db
+wBillsPC_BackupCursorPosition:: db
+wBillsPC_BackupLoadedBox:: db
+wBillsPC_MonHasMail:: db
 	ds 18
 wcb45:: ds 20
 wcb59:: ds 20
@@ -1110,9 +1074,10 @@
 wccba:: ds 102
 ENDU
 
+
 SECTION "Video", WRAM0
 
-UNION
+UNION ; cd20
 CreditsPos::
 BGMapBuffer::
 wMobileMonSpeciesPointerBuffer:: dw
@@ -1121,7 +1086,7 @@
 wMobileMonNicknamePointerBuffer:: dw
 wMobileMonMailPointerBuffer:: dw
 
-NEXTU
+NEXTU ; cd20
 wcd20:: ds 1
 wcd21:: ds 1
 wcd22::
@@ -2213,7 +2178,9 @@
 
 	ds 1
 
+
 SECTION "Enemy Party", WRAMX
+
 UNION
 wPokedexShowPointerAddr::
 wd26b:: ds 1
@@ -2931,40 +2898,42 @@
 wPokemonDataEnd::
 wGameDataEnd::
 
+
 SECTION "Pic Animations", WRAMX
 
 TempTileMap::
 ; 20x18 grid of 8x8 tiles
 	ds SCREEN_WIDTH * SCREEN_HEIGHT ; $168 = 360
+
 ; PokeAnim Header
-wPokeAnimSceneIndex:: ds 1
-wPokeAnimPointer:: ds 2
-wPokeAnimSpecies:: ds 1
-wPokeAnimUnownLetter:: ds 1
-wPokeAnimSpeciesOrUnown:: ds 1
-wPokeAnimGraphicStartTile:: ds 1
-wPokeAnimCoord:: ds 2
-wPokeAnimFrontpicHeight:: ds 1
+wPokeAnimSceneIndex:: db
+wPokeAnimPointer:: dw
+wPokeAnimSpecies:: db
+wPokeAnimUnownLetter:: db
+wPokeAnimSpeciesOrUnown:: db
+wPokeAnimGraphicStartTile:: db
+wPokeAnimCoord:: dw
+wPokeAnimFrontpicHeight:: db
 ; PokeAnim Data
-wPokeAnimExtraFlag:: ds 1
-wPokeAnimSpeed:: ds 1
-wPokeAnimPointerBank:: ds 1
-wPokeAnimPointerAddr:: ds 2
-wPokeAnimFramesBank:: ds 1
-wPokeAnimFramesAddr:: ds 2
-wPokeAnimBitmaskBank:: ds 1
-wPokeAnimBitmaskAddr:: ds 2
-wPokeAnimFrame:: ds 1
-wPokeAnimJumptableIndex:: ds 1
-wPokeAnimRepeatTimer:: ds 1
-wPokeAnimCurBitmask:: ds 1
-wPokeAnimWaitCounter:: ds 1
-wPokeAnimCommand:: ds 1
-wPokeAnimParameter:: ds 1
+wPokeAnimExtraFlag:: db
+wPokeAnimSpeed:: db
+wPokeAnimPointerBank:: db
+wPokeAnimPointerAddr:: dw
+wPokeAnimFramesBank:: db
+wPokeAnimFramesAddr:: dw
+wPokeAnimBitmaskBank:: db
+wPokeAnimBitmaskAddr:: dw
+wPokeAnimFrame:: db
+wPokeAnimJumptableIndex:: db
+wPokeAnimRepeatTimer:: db
+wPokeAnimCurBitmask:: db
+wPokeAnimWaitCounter:: db
+wPokeAnimCommand:: db
+wPokeAnimParameter:: db
 	ds 1
-wPokeAnimBitmaskCurCol:: ds 1
-wPokeAnimBitmaskCurRow:: ds 1
-wPokeAnimBitmaskCurBit:: ds 1
+wPokeAnimBitmaskCurCol:: db
+wPokeAnimBitmaskCurRow:: db
+wPokeAnimBitmaskCurBit:: db
 wPokeAnimBitmaskBuffer:: ds 7
 	ds 2
 wPokeAnimStructEnd::
@@ -3025,28 +2994,29 @@
 w3_dfec:: ds $10
 w3_dffc:: ds 4
 
+
 SECTION "GBC Video", WRAMX
 
-; 8 4-color palettes
+; eight 4-color palettes each
 UnknBGPals:: ds 8 palettes ; d000
 UnknOBPals:: ds 8 palettes ; d040
 BGPals::     ds 8 palettes ; d080
 OBPals::     ds 8 palettes ; d0c0
 
-LYOverrides:: ; d100
-	ds SCREEN_HEIGHT_PX
+LYOverrides:: ds SCREEN_HEIGHT_PX ; d100
 LYOverridesEnd:: ; d190
 
 	ds 1
-wMagnetTrainDirection:: ds 1
-wMagnetTrainInitPosition:: ds 1
-wMagnetTrainHoldPosition:: ds 1
-wMagnetTrainFinalPosition:: ds 1
-wMagnetTrainPlayerSpriteInitX:: ds 1
+
+wMagnetTrainDirection:: db
+wMagnetTrainInitPosition:: db
+wMagnetTrainHoldPosition:: db
+wMagnetTrainFinalPosition:: db
+wMagnetTrainPlayerSpriteInitX:: db
+
 	ds 106
 
-LYOverridesBackup:: ; d200
-	ds SCREEN_HEIGHT_PX
+LYOverridesBackup:: ds SCREEN_HEIGHT_PX ; d200
 LYOverridesBackupEnd::
 
 
@@ -3075,40 +3045,33 @@
 BGEffect5:: battle_bg_effect BGEffect5
 ActiveBGEffectsEnd::
 
-wNumActiveBattleAnims:: ds 1 ; d40e
+wNumActiveBattleAnims:: db ; d40e
 
-BattleAnimFlags:: ; d40f
-	ds 1
-BattleAnimAddress:: ; d410
-	ds 2
-BattleAnimDuration:: ; d412
-	ds 1
-BattleAnimParent:: ; d413
-	ds 2
-BattleAnimLoops:: ; d415
-	ds 1
-BattleAnimVar:: ; d416
-	ds 1
-BattleAnimByte:: ; d417
-	ds 1
-wBattleAnimOAMPointerLo:: ds 1 ; d418
+BattleAnimFlags:: db ; d40f
+BattleAnimAddress:: dw ; d410
+BattleAnimDuration:: db ; d412
+BattleAnimParent:: dw ; d413
+BattleAnimLoops:: db ; d415
+BattleAnimVar:: db ; d416
+BattleAnimByte:: db ; d417
+wBattleAnimOAMPointerLo:: db ; d418
 BattleAnimTemps:: ; d419
 wBattleAnimTempOAMFlags::
-wBattleAnimTemp0:: ds 1
-wBattleAnimTemp1:: ds 1
+wBattleAnimTemp0:: db
+wBattleAnimTemp1:: db
 wBattleAnimTempTileID::
-wBattleAnimTemp2:: ds 1
+wBattleAnimTemp2:: db
 wBattleAnimTempXCoord::
-wBattleAnimTemp3:: ds 1
+wBattleAnimTemp3:: db
 wBattleAnimTempYCoord::
-wBattleAnimTemp4:: ds 1
+wBattleAnimTemp4:: db
 wBattleAnimTempXOffset::
-wBattleAnimTemp5:: ds 1
+wBattleAnimTemp5:: db
 wBattleAnimTempYOffset::
-wBattleAnimTemp6:: ds 1
-wBattleAnimTemp7:: ds 1
+wBattleAnimTemp6:: db
+wBattleAnimTemp7:: db
 wBattleAnimTempPalette::
-wBattleAnimTemp8:: ds 1
+wBattleAnimTemp8:: db
 
 UNION
 wSurfWaveBGEffect:: ds $40
@@ -3120,6 +3083,7 @@
 ENDU
 
 SECTION "WRAM 5 MOBILE", WRAMX
+
 w5_d800:: ds $200
 w5_da00:: ds $200
 w5_dc00:: ds $d
@@ -3130,17 +3094,23 @@
 w5_MobileOpponentBattleWinMessage:: ds $c ; dc32
 w5_MobileOpponentBattleLossMessage:: ds $c ; dc3e
 
+
 SECTION "WRAM 6", WRAMX
 
-wDecompressScratch::
-wScratchTileMap::
-	ds BG_MAP_WIDTH * BG_MAP_HEIGHT
-wScratchAttrMap:: ds $200
-w6_d600:: ds $200
-w6_d800::
+UNION ; d000
+wScratchTileMap:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT
+wScratchAttrMap:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT
 
-INCLUDE "sram.asm"
+NEXTU ; d000
+wDecompressScratch:: ds $80 tiles
+wDecompressEnemyFrontpic:: ds $80 tiles
+ENDU
 
+
 SECTION "WRAM 7", WRAMX
+
 wWindowStack:: ds $1000 - 1
 wWindowStackBottom:: ds 1
+
+
+INCLUDE "sram.asm"