shithub: pokecrystal

Download patch

ref: 75035a71a544821de0b397cfd5bacad5cf4da8fd
parent: 0d683ea0c72c3d86736cd08667f14d6abe5964c3
author: Rangi <remy.oukaour+rangi42@gmail.com>
date: Sat Jun 13 14:48:26 EDT 2020

Label some mobile addresses, and revise some comments

--- a/audio/engine.asm
+++ b/audio/engine.asm
@@ -19,7 +19,7 @@
 	ld [hli], a ; rNR50 ; volume/vin
 	ld [hli], a ; rNR51 ; sfx channels
 	ld a, $80 ; all channels on
-	ld [hli], a ; ff26 ; music channels
+	ld [hli], a ; rNR52 ; music channels
 
 	ld hl, rNR10 ; sound channel registers
 	ld e, NUM_MUSIC_CHANS
@@ -1165,7 +1165,7 @@
 	ld a, [wCurMusicByte]
 	swap a
 	and $f
-	jr z, .rest ; pitch 0-> rest
+	jr z, .rest ; pitch 0 -> rest
 	; update pitch
 	ld hl, CHANNEL_PITCH
 	add hl, bc
--- a/constants/engine_flags.asm
+++ b/constants/engine_flags.asm
@@ -22,7 +22,7 @@
 	const ENGINE_CAUGHT_POKERUS
 	const ENGINE_ROCKET_SIGNAL_ON_CH20
 	const ENGINE_CREDITS_SKIP
-	const ENGINE_MAIN_MENU_MOBILE_CHOICES ; 10
+	const ENGINE_MAIN_MENU_MOBILE_CHOICES
 ; wStatusFlags2
 	const ENGINE_BUG_CONTEST_TIMER
 	const ENGINE_SAFARI_ZONE
@@ -41,7 +41,7 @@
 	const ENGINE_PLAINBADGE
 	const ENGINE_FOGBADGE
 	const ENGINE_MINERALBADGE
-	const ENGINE_STORMBADGE ; 20
+	const ENGINE_STORMBADGE
 	const ENGINE_GLACIERBADGE
 	const ENGINE_RISINGBADGE
 ; wKantoBadges
@@ -59,7 +59,7 @@
 	const ENGINE_UNLOCKED_UNOWNS_S_TO_W
 	const ENGINE_UNLOCKED_UNOWNS_X_TO_Z
 	const ENGINE_UNLOCKED_UNOWNS_UNUSED_4
-	const ENGINE_UNLOCKED_UNOWNS_UNUSED_5 ; 30
+	const ENGINE_UNLOCKED_UNOWNS_UNUSED_5
 	const ENGINE_UNLOCKED_UNOWNS_UNUSED_6
 	const ENGINE_UNLOCKED_UNOWNS_UNUSED_7
 ; wVisitedSpawns
@@ -76,7 +76,7 @@
 	const ENGINE_FLYPOINT_CELADON
 	const ENGINE_FLYPOINT_FUCHSIA
 	const ENGINE_FLYPOINT_CINNABAR
-	const ENGINE_FLYPOINT_INDIGO_PLATEAU ; 40
+	const ENGINE_FLYPOINT_INDIGO_PLATEAU
 	const ENGINE_FLYPOINT_NEW_BARK
 	const ENGINE_FLYPOINT_CHERRYGROVE
 	const ENGINE_FLYPOINT_VIOLET
@@ -95,7 +95,7 @@
 ; wStatusFlags2
 	const ENGINE_4F
 ; wDailyFlags1
-	const ENGINE_KURT_MAKING_BALLS ; 50
+	const ENGINE_KURT_MAKING_BALLS
 	const ENGINE_DAILY_BUG_CONTEST
 	const ENGINE_FISH_SWARM
 	const ENGINE_TIME_CAPSULE
@@ -113,7 +113,7 @@
 	const ENGINE_DAILY_MOVE_TUTOR
 	const ENGINE_BUENAS_PASSWORD
 ; wSwarmFlags
-	const ENGINE_BUENAS_PASSWORD_2 ; 60
+	const ENGINE_BUENAS_PASSWORD_2
 	const ENGINE_GOLDENROD_DEPT_STORE_SALE_IS_ON
 ; wGameTimerPause
 	const ENGINE_62
@@ -133,7 +133,7 @@
 	const ENGINE_RALPH
 	const ENGINE_LIZ
 	const ENGINE_ANTHONY
-	const ENGINE_TODD ; 70
+	const ENGINE_TODD
 	const ENGINE_GINA
 	const ENGINE_ARNIE
 	const ENGINE_ALAN
@@ -150,7 +150,7 @@
 	const ENGINE_BEVERLY_HAS_NUGGET
 	const ENGINE_JOSE_HAS_STAR_PIECE
 	const ENGINE_WADE_HAS_ITEM
-	const ENGINE_GINA_HAS_LEAF_STONE ; 80
+	const ENGINE_GINA_HAS_LEAF_STONE
 	const ENGINE_ALAN_HAS_FIRE_STONE
 	const ENGINE_DANA_HAS_THUNDERSTONE
 	const ENGINE_DEREK_HAS_NUGGET
@@ -167,7 +167,7 @@
 	const ENGINE_JOEY_MONDAY_AFTERNOON
 	const ENGINE_WADE_TUESDAY_NIGHT
 	const ENGINE_RALPH_WEDNESDAY_MORNING
-	const ENGINE_LIZ_THURSDAY_AFTERNOON ; 90
+	const ENGINE_LIZ_THURSDAY_AFTERNOON
 	const ENGINE_ANTHONY_FRIDAY_NIGHT
 	const ENGINE_TODD_SATURDAY_MORNING
 	const ENGINE_GINA_SUNDAY_AFTERNOON
@@ -185,6 +185,6 @@
 ; wPlayerSpriteSetupFlags
 	const ENGINE_KRIS_IN_CABLE_CLUB
 ; wSwarmFlags
-	const ENGINE_DUNSPARCE_SWARM ; a0
+	const ENGINE_DUNSPARCE_SWARM
 	const ENGINE_YANMA_SWARM
 NUM_ENGINE_FLAGS EQU const_value
--- a/data/engine_flags.asm
+++ b/data/engine_flags.asm
@@ -8,7 +8,7 @@
 ; entries correspond to ENGINE_* constants
 
 	; pokegear
-	engine_flag wPokegearFlags, POKEGEAR_RADIO_CARD_F ; $0
+	engine_flag wPokegearFlags, POKEGEAR_RADIO_CARD_F
 	engine_flag wPokegearFlags, POKEGEAR_MAP_CARD_F
 	engine_flag wPokegearFlags, POKEGEAR_PHONE_CARD_F
 	engine_flag wPokegearFlags, POKEGEAR_EXPN_CARD_F
@@ -19,7 +19,7 @@
 	engine_flag wDayCareMan, DAYCAREMAN_HAS_MON_F
 	engine_flag wDayCareLady, DAYCARELADY_HAS_MON_F
 
-	engine_flag wMomSavingMoney, MOM_SAVING_SOME_MONEY_F ; $8
+	engine_flag wMomSavingMoney, MOM_SAVING_SOME_MONEY_F
 	engine_flag wMomSavingMoney, MOM_ACTIVE_F
 
 	engine_flag wUnusedTwoDayTimerOn, 0 ; unused, possibly related to a 2-day timer
@@ -39,7 +39,7 @@
 	engine_flag wStatusFlags2, STATUSFLAGS2_REACHED_GOLDENROD_F
 	engine_flag wStatusFlags2, STATUSFLAGS2_ROCKETS_IN_MAHOGANY_F
 
-	engine_flag wBikeFlags, BIKEFLAGS_STRENGTH_ACTIVE_F ; $18
+	engine_flag wBikeFlags, BIKEFLAGS_STRENGTH_ACTIVE_F
 	engine_flag wBikeFlags, BIKEFLAGS_ALWAYS_ON_BIKE_F
 	engine_flag wBikeFlags, BIKEFLAGS_DOWNHILL_F
 
@@ -48,7 +48,7 @@
 	engine_flag wJohtoBadges, PLAINBADGE
 	engine_flag wJohtoBadges, FOGBADGE
 	engine_flag wJohtoBadges, MINERALBADGE
-	engine_flag wJohtoBadges, STORMBADGE ; $20
+	engine_flag wJohtoBadges, STORMBADGE
 	engine_flag wJohtoBadges, GLACIERBADGE
 	engine_flag wJohtoBadges, RISINGBADGE
 
@@ -57,7 +57,7 @@
 	engine_flag wKantoBadges, THUNDERBADGE
 	engine_flag wKantoBadges, RAINBOWBADGE
 	engine_flag wKantoBadges, SOULBADGE
-	engine_flag wKantoBadges, MARSHBADGE ; $28
+	engine_flag wKantoBadges, MARSHBADGE
 	engine_flag wKantoBadges, VOLCANOBADGE
 	engine_flag wKantoBadges, EARTHBADGE
 
@@ -67,7 +67,7 @@
 	engine_flag wUnlockedUnowns, 2 ; S-W
 	engine_flag wUnlockedUnowns, 3 ; X-Z
 	engine_flag wUnlockedUnowns, 4 ; unused
-	engine_flag wUnlockedUnowns, 5 ; unused ; $30
+	engine_flag wUnlockedUnowns, 5 ; unused
 	engine_flag wUnlockedUnowns, 6 ; unused
 	engine_flag wUnlockedUnowns, 7 ; unused
 
@@ -77,7 +77,7 @@
 	engine_flag wVisitedSpawns, SPAWN_PALLET
 	engine_flag wVisitedSpawns, SPAWN_VIRIDIAN
 	engine_flag wVisitedSpawns, SPAWN_PEWTER
-	engine_flag wVisitedSpawns, SPAWN_CERULEAN ; $38
+	engine_flag wVisitedSpawns, SPAWN_CERULEAN
 	engine_flag wVisitedSpawns, SPAWN_ROCK_TUNNEL
 	engine_flag wVisitedSpawns, SPAWN_VERMILION
 	engine_flag wVisitedSpawns, SPAWN_LAVENDER
@@ -85,7 +85,7 @@
 	engine_flag wVisitedSpawns, SPAWN_CELADON
 	engine_flag wVisitedSpawns, SPAWN_FUCHSIA
 	engine_flag wVisitedSpawns, SPAWN_CINNABAR
-	engine_flag wVisitedSpawns, SPAWN_INDIGO ; $40
+	engine_flag wVisitedSpawns, SPAWN_INDIGO
 	engine_flag wVisitedSpawns, SPAWN_NEW_BARK
 	engine_flag wVisitedSpawns, SPAWN_CHERRYGROVE
 	engine_flag wVisitedSpawns, SPAWN_VIOLET
@@ -93,7 +93,7 @@
 	engine_flag wVisitedSpawns, SPAWN_CIANWOOD
 	engine_flag wVisitedSpawns, SPAWN_GOLDENROD
 	engine_flag wVisitedSpawns, SPAWN_OLIVINE
-	engine_flag wVisitedSpawns, SPAWN_ECRUTEAK ; $48
+	engine_flag wVisitedSpawns, SPAWN_ECRUTEAK
 	engine_flag wVisitedSpawns, SPAWN_MAHOGANY
 	engine_flag wVisitedSpawns, SPAWN_LAKE_OF_RAGE
 	engine_flag wVisitedSpawns, SPAWN_BLACKTHORN
@@ -104,7 +104,7 @@
 
 	engine_flag wStatusFlags2, STATUSFLAGS2_UNUSED_3_F
 
-	engine_flag wDailyFlags1, DAILYFLAGS1_KURT_MAKING_BALLS_F ; $50
+	engine_flag wDailyFlags1, DAILYFLAGS1_KURT_MAKING_BALLS_F
 	engine_flag wDailyFlags1, DAILYFLAGS1_BUG_CONTEST_F
 	engine_flag wDailyFlags1, DAILYFLAGS1_FISH_SWARM_F
 	engine_flag wDailyFlags1, DAILYFLAGS1_TIME_CAPSULE_F
@@ -113,7 +113,7 @@
 	engine_flag wDailyFlags1, DAILYFLAGS1_GOLDENROD_UNDERGROUND_BARGAIN_F
 	engine_flag wDailyFlags1, DAILYFLAGS1_TRAINER_HOUSE_F
 
-	engine_flag wDailyFlags2, DAILYFLAGS2_MT_MOON_SQUARE_CLEFAIRY_F ; $58
+	engine_flag wDailyFlags2, DAILYFLAGS2_MT_MOON_SQUARE_CLEFAIRY_F
 	engine_flag wDailyFlags2, DAILYFLAGS2_UNION_CAVE_LAPRAS_F
 	engine_flag wDailyFlags2, DAILYFLAGS2_GOLDENROD_UNDERGROUND_GOT_HAIRCUT_F
 	engine_flag wDailyFlags2, DAILYFLAGS2_GOLDENROD_DEPT_STORE_TM27_RETURN_F
@@ -122,7 +122,7 @@
 	engine_flag wDailyFlags2, DAILYFLAGS2_MOVE_TUTOR_F
 	engine_flag wDailyFlags2, DAILYFLAGS2_BUENAS_PASSWORD_F
 
-	engine_flag wSwarmFlags, SWARMFLAGS_BUENAS_PASSWORD_F ; $60
+	engine_flag wSwarmFlags, SWARMFLAGS_BUENAS_PASSWORD_F
 	engine_flag wSwarmFlags, SWARMFLAGS_GOLDENROD_DEPT_STORE_SALE_F
 
 	engine_flag wGameTimerPause, GAMETIMERPAUSE_MOBILE_7_F
@@ -135,7 +135,7 @@
 	engine_flag wDailyRematchFlags,  0 ; jack
 	engine_flag wDailyRematchFlags,  1 ; huey
 	engine_flag wDailyRematchFlags,  2 ; gaven
-	engine_flag wDailyRematchFlags,  3 ; beth ; $68
+	engine_flag wDailyRematchFlags,  3 ; beth
 	engine_flag wDailyRematchFlags,  4 ; jose
 	engine_flag wDailyRematchFlags,  5 ; reena
 	engine_flag wDailyRematchFlags,  6 ; joey
@@ -143,7 +143,7 @@
 	engine_flag wDailyRematchFlags,  8 ; ralph
 	engine_flag wDailyRematchFlags,  9 ; liz
 	engine_flag wDailyRematchFlags, 10 ; anthony
-	engine_flag wDailyRematchFlags, 11 ; todd ; $70
+	engine_flag wDailyRematchFlags, 11 ; todd
 	engine_flag wDailyRematchFlags, 12 ; gina
 	engine_flag wDailyRematchFlags, 13 ; arnie
 	engine_flag wDailyRematchFlags, 14 ; alan
@@ -151,7 +151,7 @@
 	engine_flag wDailyRematchFlags, 16 ; chad
 	engine_flag wDailyRematchFlags, 17 ; tully
 	engine_flag wDailyRematchFlags, 18 ; brent
-	engine_flag wDailyRematchFlags, 19 ; tiffany ; $78
+	engine_flag wDailyRematchFlags, 19 ; tiffany
 	engine_flag wDailyRematchFlags, 20 ; vance
 	engine_flag wDailyRematchFlags, 21 ; wilton
 	engine_flag wDailyRematchFlags, 22 ; parry
@@ -160,7 +160,7 @@
 	engine_flag wDailyPhoneItemFlags, 0 ; beverly has nugget
 	engine_flag wDailyPhoneItemFlags, 1 ; jose has star piece
 	engine_flag wDailyPhoneItemFlags, 2 ; wade has item (see EVENT_WADE_HAS_*** in constants/event_flags.asm)
-	engine_flag wDailyPhoneItemFlags, 3 ; gina has leaf stone ; $80
+	engine_flag wDailyPhoneItemFlags, 3 ; gina has leaf stone
 	engine_flag wDailyPhoneItemFlags, 4 ; alan has fire stone
 	engine_flag wDailyPhoneItemFlags, 5 ; liz has thunderstone
 	engine_flag wDailyPhoneItemFlags, 6 ; derek has nugget
@@ -169,7 +169,7 @@
 	engine_flag wDailyPhoneItemFlags, 9 ; wilton has item (see EVENT_WILTON_HAS_*** in constants/event_flags.asm)
 
 	engine_flag wDailyPhoneTimeOfDayFlags,  0 ; jack
-	engine_flag wDailyPhoneTimeOfDayFlags,  1 ; huey ; $88
+	engine_flag wDailyPhoneTimeOfDayFlags,  1 ; huey
 	engine_flag wDailyPhoneTimeOfDayFlags,  2 ; gaven
 	engine_flag wDailyPhoneTimeOfDayFlags,  3 ; beth
 	engine_flag wDailyPhoneTimeOfDayFlags,  4 ; jose
@@ -177,7 +177,7 @@
 	engine_flag wDailyPhoneTimeOfDayFlags,  6 ; joey
 	engine_flag wDailyPhoneTimeOfDayFlags,  7 ; wade
 	engine_flag wDailyPhoneTimeOfDayFlags,  8 ; ralph
-	engine_flag wDailyPhoneTimeOfDayFlags,  9 ; liz ; $90
+	engine_flag wDailyPhoneTimeOfDayFlags,  9 ; liz
 	engine_flag wDailyPhoneTimeOfDayFlags, 10 ; anthony
 	engine_flag wDailyPhoneTimeOfDayFlags, 11 ; todd
 	engine_flag wDailyPhoneTimeOfDayFlags, 12 ; gina
@@ -185,7 +185,7 @@
 	engine_flag wDailyPhoneTimeOfDayFlags, 14 ; alan
 	engine_flag wDailyPhoneTimeOfDayFlags, 15 ; dana
 	engine_flag wDailyPhoneTimeOfDayFlags, 16 ; chad
-	engine_flag wDailyPhoneTimeOfDayFlags, 17 ; tully ; $98
+	engine_flag wDailyPhoneTimeOfDayFlags, 17 ; tully
 	engine_flag wDailyPhoneTimeOfDayFlags, 18 ; brent
 	engine_flag wDailyPhoneTimeOfDayFlags, 19 ; tiffany
 	engine_flag wDailyPhoneTimeOfDayFlags, 20 ; vance
@@ -195,5 +195,5 @@
 
 	engine_flag wPlayerSpriteSetupFlags, PLAYERSPRITESETUP_FEMALE_TO_MALE_F
 
-	engine_flag wSwarmFlags, SWARMFLAGS_DUNSPARCE_SWARM_F ; $a0
+	engine_flag wSwarmFlags, SWARMFLAGS_DUNSPARCE_SWARM_F
 	engine_flag wSwarmFlags, SWARMFLAGS_YANMA_SWARM_F
--- a/data/predef_pointers.asm
+++ b/data/predef_pointers.asm
@@ -7,7 +7,7 @@
 ENDM
 
 PredefPointers::
-	add_predef LearnMove ; $0
+	add_predef LearnMove
 	add_predef DummyPredef1
 	add_predef HealParty ; this is both a special and a predef
 	add_predef SmallFarFlagAction
@@ -23,7 +23,7 @@
 	add_predef CalcMonStatC
 	add_predef CanLearnTMHMMove
 	add_predef GetTMHMMove
-	add_predef LinkTextboxAtHL ; $ 10
+	add_predef LinkTextboxAtHL
 	add_predef PrintMoveDescription
 	add_predef UpdatePlayerHUD
 	add_predef PlaceGraphic
@@ -31,7 +31,7 @@
 	add_predef UpdateEnemyHUD
 	add_predef StartBattle
 	add_predef FillInExpBar
-	add_predef GetBattleMonBackpic ; $18
+	add_predef GetBattleMonBackpic
 	add_predef GetEnemyMonFrontpic
 	add_predef LearnLevelMoves
 	add_predef FillMoves
@@ -39,7 +39,7 @@
 	add_predef TradeAnimationPlayer2
 	add_predef TradeAnimation
 	add_predef CopyMonToTempMon
-	add_predef ListMoves ; $20
+	add_predef ListMoves
 	add_predef PlaceNonFaintStatus
 	add_predef Unused_PlaceEnemyHPLevel
 	add_predef ListMovePP
@@ -47,7 +47,7 @@
 	add_predef StatsScreenInit
 	add_predef DrawPlayerHP
 	add_predef DrawEnemyHP
-	add_predef PrintTempMonStats ; $28
+	add_predef PrintTempMonStats
 	add_predef GetTypeName
 	add_predef PrintMoveType
 	add_predef PrintType
@@ -55,7 +55,7 @@
 	add_predef GetUnownLetter
 	add_predef LoadPoisonBGPals
 	add_predef DummyPredef2F
-	add_predef InitSGBBorder ; $30
+	add_predef InitSGBBorder
 	add_predef LoadSGBLayout
 	add_predef Pokedex_GetArea
 	add_predef Unused_CheckShininess
@@ -63,7 +63,7 @@
 	add_predef DummyPredef35
 	add_predef DummyPredef36
 	add_predef PlayBattleAnim
-	add_predef DummyPredef38 ; $38
+	add_predef DummyPredef38
 	add_predef DummyPredef39
 	add_predef DummyPredef3A
 	add_predef PartyMonItemName
@@ -71,7 +71,7 @@
 	add_predef GetMonBackpic
 	add_predef GetAnimatedFrontpic
 	add_predef GetTrainerPic
-	add_predef DecompressGet2bpp ; $40
+	add_predef DecompressGet2bpp
 	add_predef CheckTypeMatchup
 	add_predef ConvertMon_1to2
 	add_predef NewPokedexEntry
@@ -79,6 +79,6 @@
 	add_predef PlaceStatusString
 	add_predef LoadMonAnimation
 	add_predef AnimateFrontpic
-	add_predef Unused_HOF_AnimateAlignedFrontpic ; $48
+	add_predef Unused_HOF_AnimateAlignedFrontpic
 	add_predef HOF_AnimateFrontpic
 	dbw -1, InexplicablyEmptyFunction ; ???
--- a/data/special_pointers.asm
+++ b/data/special_pointers.asm
@@ -7,7 +7,7 @@
 ENDM
 
 SpecialsPointers::
-	add_special WarpToSpawnPoint ; $0
+	add_special WarpToSpawnPoint
 
 ; Communications
 	add_special SetBitsForLinkTradeRequest
@@ -17,7 +17,7 @@
 	add_special CheckBothSelectedSameRoom
 	add_special FailedLinkToPast
 	add_special CloseLink
-	add_special WaitForOtherPlayerToExit ; $8
+	add_special WaitForOtherPlayerToExit
 	add_special SetBitsForBattleRequest
 	add_special SetBitsForTimeCapsuleRequest
 	add_special CheckTimeCapsuleCompatibility
@@ -25,7 +25,7 @@
 	add_special TradeCenter
 	add_special Colosseum
 	add_special TimeCapsule
-	add_special CableClubCheckWhichChris ; $10
+	add_special CableClubCheckWhichChris
 	add_special CheckMysteryGift
 	add_special GetMysteryGiftItem
 	add_special UnlockMysteryGift
@@ -35,7 +35,7 @@
 	add_special CheckPartyFullAfterContest
 	add_special ContestDropOffMons
 	add_special ContestReturnMons
-	add_special GiveParkBalls ; $18
+	add_special GiveParkBalls
 	add_special CheckMagikarpLength
 	add_special MagikarpHouseSign
 	add_special HealParty ; this is both a special and a predef
@@ -43,7 +43,7 @@
 	add_special PlayersHousePC
 	add_special DayCareMan
 	add_special DayCareLady
-	add_special DayCareManOutside ; $20
+	add_special DayCareManOutside
 	add_special MoveDeletion
 	add_special BankOfMom
 	add_special MagnetTrain
@@ -51,7 +51,7 @@
 	add_special SetDayOfWeek
 	add_special OverworldTownMap
 	add_special UnownPrinter
-	add_special MapRadio ; $28
+	add_special MapRadio
 	add_special UnownPuzzle
 	add_special SlotMachine
 	add_special CardFlip
@@ -59,7 +59,7 @@
 	add_special ClearBGPalettesBufferScreen
 	add_special FadeOutPalettes
 	add_special BattleTowerFade
-	add_special FadeBlackQuickly ; $30
+	add_special FadeBlackQuickly
 	add_special FadeInPalettes
 	add_special FadeInQuickly
 	add_special ReloadSpritesNoPalettes ; bank 0
@@ -67,7 +67,7 @@
 	add_special UpdateTimePals ; bank 0
 	add_special ClearTilemap ; bank 0
 	add_special UpdateSprites ; bank 0
-	add_special ReplaceKrisSprite ; $38 ; bank 0
+	add_special ReplaceKrisSprite ; bank 0
 	add_special GameCornerPrizeMonCheckDex
 	add_special UnusedSetSeenMon
 	add_special WaitSFX ; bank 0
@@ -75,7 +75,7 @@
 	add_special RestartMapMusic ; bank 0
 	add_special HealMachineAnim
 	add_special SurfStartStep
-	add_special FindPartyMonAboveLevel ; $40
+	add_special FindPartyMonAboveLevel
 	add_special FindPartyMonAtLeastThatHappy
 	add_special FindPartyMonThatSpecies
 	add_special FindPartyMonThatSpeciesYourTrainerID
@@ -83,7 +83,7 @@
 	add_special DayCareMon1
 	add_special DayCareMon2
 	add_special SelectRandomBugContestContestants
-	add_special ActivateFishingSwarm ; $48
+	add_special ActivateFishingSwarm
 	add_special ToggleMaptileDecorations
 	add_special ToggleDecorationsVisibility
 	add_special GiveShuckle
@@ -91,7 +91,7 @@
 	add_special BillsGrandfather
 	add_special CheckPokerus
 	add_special DisplayCoinCaseBalance
-	add_special DisplayMoneyAndCoinBalance ; $50
+	add_special DisplayMoneyAndCoinBalance
 	add_special PlaceMoneyTopRight
 	add_special CheckForLuckyNumberWinners
 	add_special CheckLuckyNumberShowFlag
@@ -99,7 +99,7 @@
 	add_special PrintTodaysLuckyNumber
 	add_special SelectApricornForKurt
 	add_special NameRater
-	add_special DisplayLinkRecord ; $58
+	add_special DisplayLinkRecord
 	add_special GetFirstPokemonHappiness
 	add_special CheckFirstMonIsEgg
 	add_special RandomUnseenWildMon
@@ -107,7 +107,7 @@
 	add_special RandomPhoneMon
 	add_special LoadUsedSpritesGFX
 	add_special PlaySlowCry
-	add_special SnorlaxAwake ; $60
+	add_special SnorlaxAwake
 	add_special OlderHaircutBrother
 	add_special YoungerHaircutBrother
 	add_special DaisysGrooming
@@ -115,7 +115,7 @@
 	add_special ProfOaksPCBoot
 	add_special GameboyCheck
 	add_special TrainerHouse
-	add_special PhotoStudio ; $68
+	add_special PhotoStudio
 	add_special InitRoamMons
 	add_special FadeOutMusic
 	add_special Diploma
@@ -125,7 +125,7 @@
 	add_special Function11ac3e
 	add_special Function11b444
 	add_special Function11b5e8
-	add_special Function11b7e5 ; $70
+	add_special Function11b7e5
 	add_special Function11b879
 	add_special Function11b920
 	add_special Function11b93b
@@ -133,7 +133,7 @@
 	add_special Function1700ba
 	add_special Function170114
 	add_special BattleTowerBattle
-	add_special Function1704e1 ; $78
+	add_special Function1704e1
 	add_special DummySpecial_17021d
 	add_special LoadOpponentTrainerAndPokemonWithOTSprite
 	add_special Function11ba38
@@ -141,7 +141,7 @@
 	add_special GiveOddEgg
 	add_special Reset ; bank 0
 	add_special Function1011f1
-	add_special Function101220 ; $80
+	add_special Function101220
 	add_special Function101225
 	add_special Function101231
 	add_special MoveTutor
@@ -149,7 +149,7 @@
 	add_special Function11c1ab
 	add_special BattleTowerAction
 	add_special DisplayUnownWords
-	add_special Menu_ChallengeExplanationCancel ; $88
+	add_special Menu_ChallengeExplanationCancel
 	add_special Function17d2b6
 	add_special Function17d2ce
 	add_special BattleTowerMobileError
@@ -157,7 +157,7 @@
 	add_special HoOhChamber
 	add_special Function102142
 	add_special CelebiShrineEvent
-	add_special CheckCaughtCelebi ; $90
+	add_special CheckCaughtCelebi
 	add_special PokeSeer
 	add_special BuenasPassword
 	add_special BuenaPrize
@@ -165,7 +165,7 @@
 	add_special SampleKenjiBreakCountdown
 	add_special BeastsCheck
 	add_special MonCheck
-	add_special SetPlayerPalette ; $98
+	add_special SetPlayerPalette
 	add_special DummySpecial_170bd2
 	add_special Mobile_SelectThreeMons
 	add_special Function1037eb
@@ -173,7 +173,7 @@
 	add_special StubbedTrainerRankings_Healings
 	add_special RefreshSprites
 	add_special Function1037c2
-	add_special Mobile_DummyReturnFalse ; $a0
+	add_special Mobile_DummyReturnFalse
 	add_special Function103780
 	add_special Function10387b
 	add_special AskRememberPassword
@@ -181,4 +181,4 @@
 	add_special UnusedFindItemInPCOrBag
 	add_special InitialSetDSTFlag
 	add_special InitialClearDSTFlag
-	add_special DummySpecial_c224 ; $a8
+	add_special DummySpecial_c224
--- a/engine/battle/check_battle_scene.asm
+++ b/engine/battle/check_battle_scene.asm
@@ -19,9 +19,9 @@
 	and a
 	jr nz, .from_wram
 
-	ld a, 4 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
+	ld a, BANK(s4_a60c) ; MBC30 bank used by JP Crystal; inaccessible by MBC3
 	call GetSRAMBank
-	ld a, [$a60c] ; address of MBC30 bank
+	ld a, [s4_a60c]
 	ld c, a
 	call CloseSRAM
 
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -230,9 +230,9 @@
 
 Stubbed_Function3c1bf:
 	ret
-	ld a, 5 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
+	ld a, BANK(s5_a89b) ; MBC30 bank used by JP Crystal; inaccessible by MBC3
 	call GetSRAMBank
-	ld hl, $a89b ; address of MBC30 bank
+	ld hl, s5_a89b ; address of MBC30 bank
 	inc [hl]
 	jr nz, .finish
 	dec hl
--- a/engine/battle/effect_commands.asm
+++ b/engine/battle/effect_commands.asm
@@ -1543,7 +1543,7 @@
 	call Multiply
 
 ; ...divide by 100%...
-	ld a, $ff ; 100%
+	ld a, 100 percent
 	ldh [hDivisor], a
 	ld b, $4
 	call Divide
--- a/engine/battle/move_effects/rollout.asm
+++ b/engine/battle/move_effects/rollout.asm
@@ -14,7 +14,7 @@
 	bit SUBSTATUS_ROLLOUT, a
 	jr z, .reset
 
-	ld b, $4 ; doturn
+	ld b, doturn_command
 	jp SkipToBattleCommand
 
 .reset
--- a/engine/battle_anims/bg_effects.asm
+++ b/engine/battle_anims/bg_effects.asm
@@ -1510,10 +1510,10 @@
 
 Functionc88a5:
 	push af
-	ld a, [wFXAnimID + 1] ; FXAnimID + 1
+	ld a, [wFXAnimID + 1]
 	or a
 	jr nz, .not_rollout
-	ld a, [wFXAnimID] ; FXAnimID
+	ld a, [wFXAnimID]
 	cp ROLLOUT
 	jr z, .rollout
 .not_rollout
--- a/engine/link/mystery_gift.asm
+++ b/engine/link/mystery_gift.asm
@@ -1537,12 +1537,12 @@
 	ld a, [sCrystalData + 0]
 	ld [de], a
 	inc de
-	ld a, 4 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
+	ld a, BANK(s4_a603) ; aka BANK(s4_a007) ; MBC30 bank used by JP Crystal; inaccessible by MBC3
 	call GetSRAMBank
-	ld hl, $a603 ; address of MBC30 bank
+	ld hl, s4_a603 ; address of MBC30 bank
 	ld bc, $8
 	call CopyBytes
-	ld hl, $a007 ; address of MBC30 bank
+	ld hl, s4_a007 ; address of MBC30 bank
 	ld bc, $c
 	call CopyBytes
 	call CloseSRAM
--- a/engine/menus/save.asm
+++ b/engine/menus/save.asm
@@ -422,9 +422,9 @@
 	ret
 
 Unreferenced_Function14d6c:
-	ld a, 4 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
+	ld a, BANK(s4_a60b) ; MBC30 bank used by JP Crystal; inaccessible by MBC3
 	call GetSRAMBank
-	ld a, [$a60b] ; address of MBC30 bank
+	ld a, [s4_a60b] ; address of MBC30 bank
 	ld b, $0
 	and a
 	jr z, .ok
@@ -432,24 +432,24 @@
 
 .ok
 	ld a, b
-	ld [$a60b], a ; address of MBC30 bank
+	ld [s4_a60b], a ; address of MBC30 bank
 	call CloseSRAM
 	ret
 
 Unreferenced_Function14d83:
-	ld a, 4 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
+	ld a, BANK(s4_a60c) ; aka BANK(s4_a60d) ; MBC30 bank used by JP Crystal; inaccessible by MBC3
 	call GetSRAMBank
 	xor a
-	ld [$a60c], a ; address of MBC30 bank
-	ld [$a60d], a ; address of MBC30 bank
+	ld [s4_a60c], a ; address of MBC30 bank
+	ld [s4_a60d], a ; address of MBC30 bank
 	call CloseSRAM
 	ret
 
 Unreferenced_Function14d93:
-	ld a, 7 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
+	ld a, BANK(s7_a000) ; MBC30 bank used by JP Crystal; inaccessible by MBC3
 	call GetSRAMBank
 	xor a
-	ld [$a000], a ; address of MBC30 bank
+	ld [s7_a000], a ; address of MBC30 bank
 	call CloseSRAM
 	ret
 
--- a/layout.link
+++ b/layout.link
@@ -363,5 +363,7 @@
 	"SRAM Mobile 2"
 SRAM $06
 	"SRAM Mobile 3"
+SRAM $07
+	"SRAM Mobile 4"
 HRAM
 	"HRAM"
--- a/maps/BattleTowerBattleRoom.asm
+++ b/maps/BattleTowerBattleRoom.asm
@@ -30,7 +30,7 @@
 	battletowertext BATTLETOWERTEXT_INTRO
 	promptbutton
 	closetext
-	special BattleTowerBattle ; calls predef startbattle
+	special BattleTowerBattle ; predef StartBattle
 	special FadeOutPalettes
 	reloadmap
 	ifnotequal $0, Script_FailedBattleTowerChallenge
--- a/maps/Route36.asm
+++ b/maps/Route36.asm
@@ -365,7 +365,7 @@
 	fruittree FRUITTREE_ROUTE_36
 
 SudowoodoShakeMovement:
-	tree_shake ; shake
+	tree_shake
 	step_end
 
 WeirdTreeMovement_Flee:
--- a/maps/TinTower1F.asm
+++ b/maps/TinTower1F.asm
@@ -86,7 +86,7 @@
 	pause 15
 	setval RAIKOU
 	special MonCheck
-	iftrue .Next1 ; if player caught Raikou, he doesn't appear in Tin Tower
+	iftrue .Next1 ; if player caught Raikou, it doesn't appear in Tin Tower
 	applymovement TINTOWER1F_RAIKOU, TinTowerRaikouMovement1
 	turnobject PLAYER, LEFT
 	cry RAIKOU
@@ -99,7 +99,7 @@
 .Next1:
 	setval ENTEI
 	special MonCheck
-	iftrue .Next2 ; if player caught Entei, he doesn't appear in Tin Tower
+	iftrue .Next2 ; if player caught Entei, it doesn't appear in Tin Tower
 	applymovement TINTOWER1F_ENTEI, TinTowerEnteiMovement1
 	turnobject PLAYER, RIGHT
 	cry ENTEI
--- a/mobile/fixed_words.asm
+++ b/mobile/fixed_words.asm
@@ -93,25 +93,25 @@
 
 PrintEZChatBattleMessage:
 ; Use up to 6 words from bc to print text starting at de.
-	; Preserve $cf63, $cf64
+	; Preserve [wJumptableIndex], [wcf64]
 	ld a, [wJumptableIndex]
 	ld l, a
 	ld a, [wcf64]
 	ld h, a
 	push hl
-	; reset value at c618 (not preserved)
-	ld hl, $c618
+	; reset value at [wc618] (not preserved)
+	ld hl, wc618
 	ld a, $0
 	ld [hli], a
 	; preserve de
 	push de
-	; $cf63 keeps track of which line we're on (0, 1, or 2)
-	; $cf64 keeps track of how much room we have left in the current line
+	; [wJumptableIndex] keeps track of which line we're on (0, 1, or 2)
+	; [wcf64] keeps track of how much room we have left in the current line
 	xor a
 	ld [wJumptableIndex], a
 	ld a, 18
 	ld [wcf64], a
-	ld a, $6 ; up to 6 times
+	ld a, 6
 .loop
 	push af
 	; load the 2-byte word data pointed to by bc
@@ -178,7 +178,7 @@
 	; deduct the length of the word
 	sub e
 	ld [wcf64], a
-	ld de, $c608
+	ld de, wc608
 .place_string_loop
 	; load the string from de to hl
 	ld a, [de]
@@ -195,11 +195,11 @@
 	jr nz, .loop
 	; we're finished, place "<DONE>"
 	ld [hl], "<DONE>"
-	; now, let's place the string from c618 to bc
+	; now, let's place the string from wc618 to bc
 	pop bc
-	ld hl, $c618
+	ld hl, wc618
 	call PlaceHLTextAtBC
-	; restore the original values of $cf63 and $cf64
+	; restore the original values of [wJumptableIndex] and [wcf64]
 	pop hl
 	ld a, l
 	ld [wJumptableIndex], a
@@ -209,7 +209,7 @@
 
 GetLengthOfWordAtC608:
 	ld c, $0
-	ld hl, $c608
+	ld hl, wc608
 .loop
 	ld a, [hli]
 	cp "@"
@@ -223,7 +223,7 @@
 	ld a, $1
 	ldh [rSVBK], a
 	ld a, "@"
-	ld hl, $c608
+	ld hl, wc608
 	ld bc, NAME_LENGTH
 	call ByteFill
 	ld a, d
@@ -252,9 +252,9 @@
 	add hl, bc
 	ld bc, NAME_LENGTH_JAPANESE - 1
 .copy_string
-	ld de, $c608
+	ld de, wc608
 	call CopyBytes
-	ld de, $c608
+	ld de, wc608
 	pop af
 	ldh [rSVBK], a
 	ret
@@ -327,7 +327,7 @@
 	push af
 	ld a, $5
 	ldh [rSVBK], a
-	ld hl, $c6d0
+	ld hl, wc6d0
 	ld de, wLYOverrides
 	ld bc, $100
 	call CopyBytes
@@ -341,7 +341,7 @@
 	push af
 	ld a, $4
 	call GetSRAMBank
-	ld hl, $a007
+	ld hl, s4_a007
 	pop af
 	sla a
 	sla a
@@ -560,7 +560,7 @@
 	call Function11cfb5
 
 Function11c3ed:
-	ld hl, wcd20 ; wcd20
+	ld hl, wcd20
 	ld de, hJoypadPressed
 	ld a, [de]
 	and $8
@@ -595,11 +595,11 @@
 	jr .asm_11c475
 .asm_11c426
 	ld a, $8
-	ld [wcd20], a ; wcd20
+	ld [wcd20], a
 	ret
 
 .asm_11c42c
-	ld a, [wcd20] ; wcd20
+	ld a, [wcd20]
 	cp $6
 	jr c, .asm_11c472
 	sub $6
@@ -778,7 +778,7 @@
 	ld hl, wcd24
 	set 0, [hl]
 	ld a, $8
-	ld [wcd20], a ; wcd20
+	ld [wcd20], a
 
 .b
 	ld a, $4
@@ -806,7 +806,7 @@
 	ret
 
 .done
-	ld a, [wcd20] ; wcd20
+	ld a, [wcd20]
 	call Function11ca6a
 	call PlayClickSFX
 	ret
@@ -1132,8 +1132,8 @@
 	jr .load
 
 .cd2b_is_nonzero
-	; compute from [c6a8 + 2 * [cd22]]
-	ld hl, $c6a8 ; $c68a + 30
+	; compute from [wc6a8 + 2 * [wcd22]]
+	ld hl, wc6a8
 	ld a, [wcd22]
 	ld c, a
 	ld b, 0
@@ -1212,7 +1212,7 @@
 	ret
 
 .asm_11c814
-	ld hl, $c648
+	ld hl, wc648
 	ld a, [wcd22]
 	ld e, a
 	ld d, $0
@@ -1366,7 +1366,7 @@
 	db "つぎ@"
 
 Function11c8f6:
-	ld a, [wcd20] ; wcd20
+	ld a, [wcd20]
 	call Function11c95d
 	push hl
 	ld a, [wcd2b]
@@ -1386,7 +1386,7 @@
 	push de
 	call Function11c05d
 	pop de
-	ld a, [wcd20] ; wcd20
+	ld a, [wcd20]
 	ld c, a
 	ld b, $0
 	ld hl, wcd36
@@ -1408,7 +1408,7 @@
 	ld a, [hl]
 	jr .asm_11c911
 .asm_11c938
-	ld hl, $c648
+	ld hl, wc648
 	ld a, [wcd22]
 	ld e, a
 	ld d, $0
@@ -1528,7 +1528,7 @@
 	jr nz, .asm_11c9e9
 	call Function11ca5e
 	xor a
-	ld [wcd20], a ; wcd20
+	ld [wcd20], a
 .asm_11c9e9
 	ld hl, wcd24
 	set 4, [hl]
@@ -1764,7 +1764,7 @@
 	jr nz, .asm_11cbd4
 	ld a, $4
 	call GetSRAMBank
-	ld hl, $a007
+	ld hl, s4_a007
 	ld a, [wMenuCursorY]
 	dec a
 	sla a
@@ -2083,7 +2083,7 @@
 	ld hl, wcd24
 	set 0, [hl]
 	ld a, $8
-	ld [wcd20], a ; wcd20
+	ld [wcd20], a
 .b
 	ld a, $4
 	jr .load
@@ -2109,7 +2109,7 @@
 	ret
 
 .done
-	ld a, [wcd20] ; wcd20
+	ld a, [wcd20]
 	call Function11ca6a
 	call PlayClickSFX
 	ret
@@ -2480,7 +2480,7 @@
 	dw .ten
 
 .zero
-	ld a, [wcd20] ; wcd20
+	ld a, [wcd20]
 	sla a
 	ld hl, .Coords_Zero
 	ld e, $1
@@ -2959,7 +2959,7 @@
 EZChat_GetSeenPokemonByKana:
 	ldh a, [rSVBK]
 	push af
-	ld hl, $c648
+	ld hl, wc648
 	ld a, LOW(w5_d800)
 	ld [wcd2d], a
 	ld [hli], a
@@ -2972,14 +2972,14 @@
 	ld a, HIGH(EZChat_SortedPokemon)
 	ld [wcd30], a
 
-	ld a, LOW($c6a8)
+	ld a, LOW(wc6a8)
 	ld [wcd31], a
-	ld a, HIGH($c6a8)
+	ld a, HIGH(wc6a8)
 	ld [wcd32], a
 
-	ld a, LOW($c64a)
+	ld a, LOW(wc64a)
 	ld [wcd33], a
-	ld a, HIGH($c64a)
+	ld a, HIGH(wc64a)
 	ld [wcd34], a
 
 	ld hl, EZChat_SortedWords
@@ -3089,7 +3089,7 @@
 ; Push pop to bc.
 	push hl
 	pop bc
-; Load the pointer from [wcd31] (default: $c6a8)
+; Load the pointer from [wcd31] (default: wc6a8)
 	ld a, [wcd31]
 	ld l, a
 	ld a, [wcd32]
@@ -3104,7 +3104,7 @@
 	ld [wcd31], a
 	ld a, h
 	ld [wcd32], a
-; Recover the pointer from [wcd33] (default: $c64a)
+; Recover the pointer from [wcd33] (default: wc64a)
 	ld a, [wcd33]
 	ld l, a
 	ld a, [wcd34]
@@ -4088,7 +4088,7 @@
 	dw x - w3_d000, \1
 x = x + 2 * \1
 ENDM
-x = $d012
+x = $d012 ; w3_d012
 	macro_11f23c $2f ; a
 	macro_11f23c $1e ; i
 	macro_11f23c $11 ; u
@@ -4133,6 +4133,6 @@
 	macro_11f23c $02 ; re
 	macro_11f23c $02 ; ro
 	macro_11f23c $15 ; wa
-x = $d000
+x = $d000 ; w3_d000
 	macro_11f23c $09 ; end
 .End
--- a/mobile/mobile_22.asm
+++ b/mobile/mobile_22.asm
@@ -336,7 +336,7 @@
 
 Function8931b:
 	push hl
-	ld hl, $a03b ; 4:a03b
+	ld hl, s4_a03b
 	ld a, [wMenuSelection]
 	dec a
 	ld bc, 37
--- a/mobile/mobile_22_2.asm
+++ b/mobile/mobile_22_2.asm
@@ -118,8 +118,8 @@
 	ret
 
 Function8b3b0:
-	ld bc, $a037 ; 4:a037
-	ld a, [$a60b]
+	ld bc, s4_a037
+	ld a, [s4_a60b]
 	and a
 	jr z, .asm_8b3c2
 	cp $3
@@ -129,9 +129,9 @@
 .asm_8b3c2
 	call Function8b36c
 	xor a
-	ld [$a60b], a
+	ld [s4_a60b], a
 .asm_8b3c9
-	ld a, [$a60b]
+	ld a, [s4_a60b]
 	ret
 
 Function8b3cd:
@@ -441,7 +441,7 @@
 .strings_equal
 	call OpenSRAMBank4
 	ld hl, wd013
-	ld de, $a037 ; 4:a037
+	ld de, s4_a037
 	ld bc, $4
 	call CopyBytes
 	call CloseSRAM
@@ -498,7 +498,7 @@
 	ld bc, wd013
 	call Function8b493
 	call OpenSRAMBank4
-	ld hl, $a037 ; 4:a037
+	ld hl, s4_a037
 	call Function8b3a4
 	call CloseSRAM
 	jr z, .asm_8b635
--- a/mobile/mobile_42.asm
+++ b/mobile/mobile_42.asm
@@ -1186,7 +1186,7 @@
 asm_108966:
 	call DelayFrame
 	ld hl, vTiles2
-	lb bc, $a, $31 ; $a is the bank of ?????
+	lb bc, BANK(TradeGameBoyLZ), $31
 	call Request2bpp
 	call WaitTop
 	call MobileTradeAnim_ClearTilemap
--- a/sram.asm
+++ b/sram.asm
@@ -248,12 +248,16 @@
 
 s4_a013:: ds 36 ; a013
 
-	ds $5d5
+s4_a037:: ds 4 ; a037
 
-s4_a60c:: db ; a60c
+s4_a03b:: ds 37 * 40 ; a03b
 
-	ds $1
+s4_a603:: ds 8 ; a603
 
+s4_a60b:: db ; a60b
+s4_a60c:: db ; a60c
+s4_a60d:: db ; a60d
+
 s4_a60e:: dw ; a60e
 
 	ds $1f0
@@ -328,8 +332,9 @@
 
 s5_a894:: ds NAME_LENGTH_JAPANESE ; a894
 
-	ds $2
+	ds $1
 
+s5_a89b:: ds 1 ; a89b
 s5_a89c:: ds 22 ; a89c
 s5_a8b2:: ds 150 ; a8b2
 
@@ -408,3 +413,8 @@
 SECTION "SRAM Mobile 3", SRAM
 
 s6_a000:: ; a000
+
+
+SECTION "SRAM Mobile 4", SRAM
+
+s7_a000:: ; a000
--- a/wram.asm
+++ b/wram.asm
@@ -774,14 +774,17 @@
 wOddEggOTName:: ds NAME_LENGTH
 
 NEXTU ; c608
-wc608:: ds 53
+wc608:: ds 16
+wc618:: ds 37
 wc63d:: ds 5
 wc642:: ds 5
-wc647:: ds 33
+wc647:: ds 1
+wc648:: ds 2
+wc64a:: ds 30
 wc668:: ds 32
 wc688:: ds 2
-wc68a:: ds 4
-	ds 66
+wc68a:: ds 30
+wc6a8:: ds 40
 ENDU ; c6d0
 
 ; This union spans 280 bytes from c6d0 to c7e8.
@@ -2984,7 +2987,7 @@
 
 wTempTilemap::
 ; 20x18 grid of 8x8 tiles
-	ds SCREEN_WIDTH * SCREEN_HEIGHT ; $168 = 360
+	ds SCREEN_WIDTH * SCREEN_HEIGHT
 
 ; PokeAnim data
 wPokeAnimStruct::
@@ -3024,7 +3027,8 @@
 
 w3_d000:: ds 1 ; d000
 w3_d001:: ds 1
-w3_d002:: ds $7e
+w3_d002:: ds 16
+w3_d012:: ds $6e
 w3_d080:: ds 1
 w3_d081:: ds $f
 w3_d090:: ds $70