shithub: pokecrystal

Download patch

ref: ca58bd215cc462a950dc889f9d7f0f9e8ecd1b02
parent: d6ac5407e76558d28111be1d1bb478de4f99db62
author: yenatch <yenatch@gmail.com>
date: Fri Sep 19 08:44:48 EDT 2014

Clean up wram sections so that all space is accounted for.

--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -250,7 +250,9 @@
 HM_07         EQU $F9
 HM_08         EQU $FA
 
-NUM_TMS EQU HM_01 - TM_01 - 2
+
+NUM_TMS EQU 50
+NUM_HMS EQU 7
 
 
 ; leftovers from red
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -1,9 +1,15 @@
 PARTY_LENGTH EQU 6
 
+MAX_ITEMS     EQU 20
+MAX_BALLS     EQU 12
+MAX_KEY_ITEMS EQU 25
+MAX_PC_ITEMS  EQU 50
+
 ; strings
 PLAYER_NAME_LENGTH EQU 8
 PKMN_NAME_LENGTH EQU 11
 MOVE_NAME_LENGTH EQU 13
+ITEM_NAME_LENGTH EQU 13
 NAME_LENGTH EQU 11
 LV_CHAR EQU $6e
 
--- a/wram.asm
+++ b/wram.asm
@@ -116,26 +116,29 @@
                       ds 1 ; c132
 ENDM
 
-SECTION "tiles0",VRAM[$8000],BANK[0]
+
+
+SECTION "CHR0", VRAM [$8000], BANK [0]
 VTiles0::
-SECTION "tiles1",VRAM[$8800],BANK[0]
+SECTION "CHR1", VRAM [$8800], BANK [0]
 VTiles1::
-SECTION "tiles2",VRAM[$9000],BANK[0]
+SECTION "CHR2", VRAM [$9000], BANK [0]
 VTiles2::
-SECTION "bgmap0",VRAM[$9800],BANK[0]
+SECTION "BG0",  VRAM [$9800], BANK [0]
 VBGMap0::
-SECTION "bgmap1",VRAM[$9C00],BANK[0]
+SECTION "BG1",  VRAM [$9C00], BANK [0]
 VBGMap1::
 
 
 
-SECTION "WRAMBank0",WRAM0[$c000]
+SECTION "Stack", WRAM0
+	ds $ff
+Stack::
+	ds 1
 
-SECTION "stack",WRAM0[$c0ff]
-Stack:: ds -$100 ; c0ff
 
+SECTION "Audio", WRAM0
 
-SECTION "audio",WRAM0[$c100]
 MusicPlaying:: ; c100
 ; nonzero if playing
 	ds 1
@@ -249,6 +252,9 @@
 
 	ds 1
 
+
+SECTION "WRAM", WRAM0
+
 wLZAddress:: dw ; c2c2
 wLZBank::    db ; c2c4
 
@@ -274,8 +280,8 @@
 ScriptVar:: ; c2dd
 	ds 1
 
+	ds 28
 
-SECTION "tiles",WRAM0[$c2fa]
 TileDown:: ; c2fa
 	ds 1
 TileUp:: ; c2fb
@@ -294,19 +300,22 @@
 ; bit 0: right
 	ds 1
 
-SECTION "icons",WRAM0[$c3b6]
+	ds 183
 
 CurIcon:: ; c3b6
 	ds 1
 
-SECTION "gfx",WRAM0[$c400]
+	ds 73
 
+
+SECTION "Sprites", WRAM0 [$c400]
+
 Sprites:: ; c400
 ; 4 bytes per sprite
 ; 40 sprites
 ; struct:
-;	y in pixels
-;	x in pixels
+;	y (px)
+;	x (px)
 ;	tile id
 ;	attributes:
 ;		bit 7: priority
@@ -318,6 +327,9 @@
 	ds 4 * 40
 SpritesEnd::
 
+
+SECTION "Tilemap", WRAM0
+
 TileMap:: ; c4a0
 ; 20x18 grid of 8x8 tiles
 	ds SCREEN_WIDTH * SCREEN_HEIGHT
@@ -324,6 +336,8 @@
 TileMapEnd::
 
 
+SECTION "Battle", WRAM0
+
 wBattle::
 
 wEnemyMoveStruct::  ds MOVE_LENGTH ; c608
@@ -333,16 +347,16 @@
 BattleMonNick:: ds PKMN_NAME_LENGTH ; c621
 
 BattleMon:: battle_struct BattleMon ; c62c
+
 	ds 10
 
-OTName:: ; c656
-	ds NAME_LENGTH
+OTName:: ds NAME_LENGTH ; c656
 
 	ds 2
 
 CurOTMon:: ; c663
 	ds 1
-	
+
 	ds 1
 
 TypeModifier:: ; c665
@@ -355,11 +369,11 @@
 CriticalHit:: ; c666
 ; nonzero for a critical hit
 	ds 1
-	
+
 AttackMissed:: ; c667
 ; nonzero for a miss
 	ds 1
-	
+
 PlayerSubStatus1:: ; c668
 ; bit
 ; 7 attract
@@ -472,7 +486,7 @@
 	ds 2
 
 	ds 3
-	
+
 	ds 1
 
 BattleScriptBuffer:: ; c68a
@@ -584,7 +598,7 @@
 	ds 1
 
 	ds 3
-	
+
 PlayerScreens:: ; c6ff
 ; bit
 ; 4 reflect
@@ -662,14 +676,18 @@
 wBattleEnd::
 ; c741
 
-SECTION "overworldmap",WRAM0[$c800]
+	ds 191
+
+
+SECTION "Overworld Map", WRAM0 [$c800]
 OverworldMap:: ; c800
 	ds 1300
 OverworldMapEnd::
-	
+
 	ds 12
 
-SECTION "gfx2",WRAM0[$cd20]
+
+SECTION "Video", WRAM0 [$cd20]
 CreditsPos::
 BGMapBuffer:: ; cd20
 	ds 2
@@ -676,7 +694,7 @@
 CreditsTimer:: ; cd22
 	ds 1
 	ds 37
-	
+
 BGMapPalBuffer:: ; cd48
 	ds 40
 
@@ -690,7 +708,7 @@
 	ds 1
 EnemyHPPal:: ; cd9a
 	ds 1
-	
+
 	ds 62
 
 AttrMap:: ; cdd9
@@ -702,7 +720,7 @@
 AttrMapEnd::
 
 	ds 30
-	
+
 MonType:: ; cf5f
 	ds 1
 
@@ -730,9 +748,8 @@
 MenuSelection:: ; cf74
 	ds 1
 
+	ds 60
 
-
-SECTION "VBlank",WRAM0[$cfb1]
 OverworldDelay:: ; cfb1
 	ds 1
 TextDelayFrames:: ; cfb2
@@ -753,7 +770,8 @@
 ; bit 0
 	ds 1
 
-SECTION "Engine",WRAM0[$cfc2]
+	ds 5
+
 FXAnimID::
 FXAnimIDLo:: ; cfc2
 	ds 1
@@ -776,13 +794,13 @@
 ; bit 6: battle style shift/set
 ; bit 7: battle scene off/on
 	ds 1
-	
+
 	ds 1
 
 TextBoxFrame:: ; cfce
 ; bits 0-2: textbox frame 0-7
 	ds 1
-	
+
 	ds 1
 
 GBPrinter:: ; cfd0
@@ -799,12 +817,12 @@
 	ds 1
 
 	ds 46
-	
 
-SECTION "WRAMBank1",WRAMX[$d000],BANK[1]
 
+SECTION "WRAM 1", WRAMX, BANK [1]
+
 	ds 2
-	
+
 DefaultFlypoint:: ; d002
 	ds 1
 ; d003
@@ -888,7 +906,7 @@
 	ds 1
 
 	ds 1
-	
+
 CurPartySpecies:: ; d108
 	ds 1
 
@@ -912,14 +930,14 @@
 CurPartyLevel:: ; d143
 	ds 1
 
+	ds 16
 
-SECTION "UsedSprites",WRAMX[$d154],BANK[1]
 UsedSprites:: ; d154
 	ds 32
 
-SECTION "map",WRAMX[$d19d],BANK[1]
+	ds 41
 
-; both are in blocks (2x2 walkable tiles, 4x4 graphics tiles)
+; width/height are in blocks (2x2 walkable tiles, 4x4 graphics tiles)
 MapHeader:: ; d19d
 MapBorderBlock:: ; d19d
 	ds 1
@@ -1043,6 +1061,7 @@
 ; bank 3f
 	ds 2
 
+
 EvolvableFlags:: ; d1e8
 	flag_array PARTY_LENGTH
 
@@ -1055,7 +1074,9 @@
 Buffer2:: ; d1eb
 	ds 1
 
-SECTION "BattleMons2",WRAMX[$d1fa],BANK[1]
+	ds 14
+
+
 LinkBattleRNs:: ; d1fa
 	ds 10
 
@@ -1074,7 +1095,7 @@
 ; 1: wild battle
 ; 2: trainer battle
 	ds 1
-	
+
 	ds 1
 
 OtherTrainerClass:: ; d22f
@@ -1163,15 +1184,16 @@
 CurDamage:: ; d256
 	ds 2
 
+	ds 17
 
-SECTION "TimeOfDay",WRAMX[$d269],BANK[1]
-
 TimeOfDay:: ; d269
 	ds 1
 
+	ds 22
 
-SECTION "OTParty",WRAMX[$d280],BANK[1]
 
+SECTION "Enemy Party", WRAMX, BANK [1]
+
 OTPartyCount::   ds 1 ; d280
 OTPartySpecies:: ds PARTY_LENGTH ; d281
 OTPartyEnd::     ds 1
@@ -1220,7 +1242,8 @@
 ScriptDelay:: ; d44d
 	ds 1
 
-SECTION "Player",WRAMX[$d472],BANK[1]
+	ds 36
+
 PlayerGender:: ; d472
 ; bit 0:
 ;	0 male
@@ -1346,17 +1369,18 @@
 	ds 40
 ; d6de
 
-SECTION "Objects",WRAMX[$d71e],BANK[1]
+	ds 64
+
 MapObjects:: ; d71e
 	ds OBJECT_LENGTH * NUM_OBJECTS
 
+	ds 16
 
-SECTION "VariableSprites",WRAMX[$d82e],BANK[1]
 VariableSprites:: ; d82e
 	ds $10
 
+	ds 3
 
-SECTION "Status",WRAMX[$d841],BANK[1]
 TimeOfDayPal:: ; d841
 	ds 1
 	ds 4
@@ -1365,7 +1389,7 @@
 	ds 1
 CurTimeOfDay:: ; d848
 	ds 1
-	
+
 	ds 3
 
 StatusFlags:: ; d84c
@@ -1383,42 +1407,42 @@
 
 Coins:: ; d855
 	ds 2
-	
+
 Badges::
 JohtoBadges:: ; d857
 	flag_array 8
 KantoBadges:: ; d858
 	flag_array 8
-	
-SECTION "Items",WRAMX[$d859],BANK[1]
+
+
 TMsHMs:: ; d859
-	ds 57
+	ds NUM_TMS + NUM_HMS
 TMsHMsEnd::
 
 NumItems:: ; d892
 	ds 1
 Items:: ; d893
-	ds 41
+	ds MAX_ITEMS * 2 + 1
 ItemsEnd::
 
 NumKeyItems:: ; d8bc
 	ds 1
 KeyItems:: ; d8bd
-	ds 26
+	ds MAX_KEY_ITEMS + 1
 KeyItemsEnd::
 
 NumBalls:: ; d8d7
 	ds 1
 Balls:: ; d8d8
-	ds 25
+	ds MAX_BALLS * 2 + 1
 BallsEnd::
 
 PCItems:: ; d8f1
-	ds 101
+	ds MAX_PC_ITEMS * 2 + 1
 PCItemsEnd::
 
+	ds 5
 
-SECTION "overworld",WRAMX[$d95b],BANK[1]
 WhichRegisteredItem:: ; d95b
 	ds 1
 RegisteredItem:: ; d95c
@@ -1427,7 +1451,8 @@
 PlayerState:: ; d95d
 	ds 1
 
-SECTION "scriptram",WRAMX[$d962],BANK[1]
+	ds 4
+
 MooMooBerries:: ; d962
 	ds 1 ; how many berries fed to MooMoo
 UndergroundSwitchPositions:: ; d963
@@ -1435,8 +1460,11 @@
 FarfetchdPosition:: ; d964
 	ds 1 ; which position the ilex farfetch'd is in
 
-SECTION "Map Triggers", WRAMX[$d972], BANK[1]
+	ds 13
 
+
+SECTION "Map Triggers", WRAMX, BANK [1]
+
 wPokecenter2FTrigger::                       ds 1 ; d972
 wTradeCenterTrigger::                        ds 1 ; d973
 wColosseumTrigger::                          ds 1 ; d974
@@ -1517,9 +1545,13 @@
 wMobileTradeRoomMobileTrigger::              ds 1 ; d9bf
 wMobileBattleRoomTrigger::                   ds 1 ; d9c0
 
+	ds 49
 
-SECTION "Events",WRAMX[$da72],BANK[1]
 
+SECTION "Events", WRAMX, BANK [1]
+
+	ds 128
+
 EventFlags:: ; da72
 ;RoomDecorations:: ; dac6
 ;TeamRocketAzaleaTownAttackEvent:: ; db51
@@ -1529,7 +1561,7 @@
 	flag_array 2000
 ; db6c
 
-SECTION "Boxes",WRAMX[$db72],BANK[1]
+	ds 6
 
 wCurBox:: ; db72
 	ds 1
@@ -1539,13 +1571,15 @@
 ; 8 chars + $50
 wBoxNames:: ds 9 * NUM_BOXES ; db75
 
-SECTION "bike", WRAMX[$dbf5],BANK[1]
+	ds 2
+
 BikeFlags:: ; dbf5
 ; bit 1: always on bike
 ; bit 2: downhill
 	ds 1
 
-SECTION "decorations", WRAMX[$dc0f],BANK[1]
+	ds 25
+
 ; Sprite id of each decoration
 Bed:: ; dc0f
 	ds 1
@@ -1564,21 +1598,24 @@
 BigDoll:: ; dc16
 	ds 1
 
-SECTION "fruittrees", WRAMX[$dc27],BANK[1]
+	ds 16
+
 FruitTreeFlags:: ; dc27
 	ds 1
 
-SECTION "steps", WRAMX[$dc73],BANK[1]
+	ds 75
+
 StepCount:: ; dc73
 	ds 1
 PoisonStepCount:: ; dc74
 	ds 1
 
-SECTION "Visited Spawn Points", WRAMX[$dca5],BANK[1]
+	ds 48
+
 VisitedSpawns:: ; dca5
 	flag_array 27
 
-SECTION "BackupMapInfo", WRAMX[$dcad],BANK[1]
+	ds 4
 
 ; used on maps like second floor pokécenter, which are reused, so we know which
 ; map to return to
@@ -1587,7 +1624,7 @@
 BackupMapNumber:: ; dcae
 	ds 1
 
-SECTION "PlayerMapInfo", WRAMX[$dcb4],BANK[1]
+	ds 5
 
 WarpNumber:: ; dcb4
 	ds 1
@@ -1600,8 +1637,11 @@
 XCoord:: ; dcb8
 	ds 1 ; current x coordinate relative to top-left corner of current map
 
-SECTION "PlayerParty",WRAMX[$dcd7],BANK[1]
+	ds 30
 
+
+SECTION "Party", WRAMX, BANK [1]
+
 PartyCount:: ; dcd7
 	ds 1 ; number of Pokémon in party
 PartySpecies:: ; dcd8
@@ -1623,8 +1663,11 @@
 PartyMonNicknamesEnd::
 
 
-SECTION "Pokedex", WRAMX[$de99], BANK[1]
+	ds 22
 
+
+SECTION "Pokedex", WRAMX, BANK [1]
+
 PokedexCaught:: ; de99
 	flag_array NUM_POKEMON
 EndPokedexCaught::
@@ -1640,6 +1683,9 @@
 
 	ds 1
 
+
+SECTION "Daycare", WRAMX, BANK [1]
+
 wDaycareMan:: ; def5
 ; bit 7: active
 ; bit 6: monsters are compatible
@@ -1675,6 +1721,9 @@
 
 	ds 1
 
+
+SECTION "Misc Pokemon", WRAMX, BANK [1]
+
 wContestMon:: party_struct wContestMon ; df9c
 
 	ds 3
@@ -1694,7 +1743,7 @@
 
 
 
-SECTION "WRAMBank5",WRAMX[$d000],BANK[5]
+SECTION "GBC Video", WRAMX, BANK [5]
 
 ; 8 4-color palettes
 Unkn1Pals:: ds 8 * 8 ; d000
@@ -1706,15 +1755,19 @@
 	ds SCREEN_HEIGHT_PX
 LYOverridesEnd::
 
-	ds 112
+	ds $100 - SCREEN_HEIGHT_PX
 
 LYOverridesBackup:: ; d200
 	ds SCREEN_HEIGHT_PX
 LYOverridesBackupEnd::
 
+	ds $100 - SCREEN_HEIGHT_PX
 
-SECTION "Battle Animations", WRAMX[$d30a], BANK[5]
 
+SECTION "Battle Animations", WRAMX, BANK [5]
+
+	ds 10
+
 ActiveAnimObjects:: ; d30a
 	ds 4 * 40
 
@@ -1744,12 +1797,12 @@
 	ds 8
 
 
-SECTION "Scratch", SRAM, BANK[0]
+SECTION "Scratch", SRAM, BANK [0]
 
 
-SECTION "SRAM Bank 1", SRAM, BANK[1]
+SECTION "SRAM Bank 1", SRAM, BANK [1]
 
-SECTION "BoxMons", SRAM[$ad10], BANK[1]
+SECTION "BoxMons", SRAM [$ad10], BANK [1]
 
 sBoxCount::   ds 1 ; ad10
 sBoxSpecies:: ds MONS_PER_BOX ; ad11