summaryrefslogtreecommitdiff
path: root/wram.asm
diff options
context:
space:
mode:
Diffstat (limited to 'wram.asm')
-rw-r--r--wram.asm383
1 files changed, 331 insertions, 52 deletions
diff --git a/wram.asm b/wram.asm
index a693e28c7..5b59e0a7d 100644
--- a/wram.asm
+++ b/wram.asm
@@ -476,12 +476,33 @@ BattleMonSpclAtk: ; c646
BattleMonSpclDef: ; c648
ds 2
- ds 25
+BattleMonType1: ; c64a
+ ds 1
+BattleMonType2: ; c64b
+ ds 1
+
+ ds 23
CurOTMon: ; c663
ds 1
- ds 4
+ ds 1
+
+TypeModifier: ; c665
+; >10: super-effective
+; 10: normal
+; <10: not very effective
+
+; bit 7: stab
+ ds 1
+
+CriticalHit: ; c666
+; nonzero for a critical hit
+ ds 1
+
+AttackMissed: ; c667
+; nonzero for a miss
+ ds 1
PlayerSubStatus1: ; c668
; bit
@@ -489,21 +510,29 @@ PlayerSubStatus1: ; c668
; 6 encore
; 5 endure
; 4 perish song
-; 3
+; 3 identified
; 2 protect
; 1 curse
; 0 nightmare
ds 1
PlayerSubStatus2: ; c669
-; unknown
- ds 1
-PlayerSubStatus3: ; c66a
; bit
-; 7 confusion
+; 7
; 6
; 5
+; 4
+; 3
+; 2
+; 1
+; 0 curled
+ ds 1
+PlayerSubStatus3: ; c66a
+; bit
+; 7 confused
+; 6 flying
+; 5 underground
; 4 charged
-; 3
+; 3 flinch
; 2
; 1 rollout
; 0 bide
@@ -511,22 +540,30 @@ PlayerSubStatus3: ; c66a
PlayerSubStatus4: ; c66b
; bit
; 7 leech seed
-; 6
+; 6 rage
; 5 recharge
; 4 substitute
; 3
-; 2
-; 1
-; 0
+; 2 focus energy
+; 1 mist
+; 0 bide: unleashed energy
ds 1
PlayerSubStatus5: ; c66c
-; unknown
+; bit
+; 7 cant run
+; 6 destiny bond
+; 5 lock-on
+; 4
+; 3
+; 2
+; 1
+; 0 toxic
ds 1
EnemySubStatus1: ; c66d
; see PlayerSubStatus1
ds 1
-EnemySubstatus2: ; c66e
+EnemySubStatus2: ; c66e
; see PlayerSubStatus2
ds 1
EnemySubStatus3: ; c66f
@@ -539,45 +576,91 @@ EnemySubStatus5: ; c671
; see PlayerSubStatus5
ds 1
- ds 4
-
+PlayerRolloutCount: ; c672
+ ds 1
+PlayerConfuseCount: ; c673
+ ds 1
+ ds 1
+PlayerDisableCount: ; c675
+ ds 1
PlayerEncoreCount: ; c676
ds 1
PlayerPerishCount: ; c677
ds 1
+PlayerFuryCutterCount: ; c678
+ ds 1
+ ds 1
- ds 5
-
+EnemyRolloutCount: ; c67a
+ ds 1
+EnemyConfuseCount: ; c67b
+ ds 1
+ ds 1
+EnemyDisableCount: ; c67d
+ ds 1
EnemyEncoreCount: ; c67e
ds 1
EnemyPerishCount: ; c67f
ds 1
-
- ds 2
+EnemyFuryCutterCount: ; c680
+ ds 1
+ ds 1
PlayerDamageTaken: ; c682
ds 2
EnemyDamageTaken: ; c684
ds 2
- ds 4
+ ds 3
+
+ ds 1
BattleScriptBuffer: ; c68a
ds 40
-BattleScriptBufferLocLo: ; c6b2
- ds 1
-BattleScriptBufferLocHi: ; c6b3
- ds 1
+BattleScriptBufferLoc: ; c6b2
+ ds 2
- ds 25
+ ds 24
PlayerStatLevels: ; c6cc
; 07 neutral
- ds 8
+PlayerAtkLevel: ; c6cc
+ ds 1
+PlayerDefLevel: ; c6cd
+ ds 1
+PlayerSpdLevel: ; c6ce
+ ds 1
+PlayerSAtkLevel: ; c6cf
+ ds 1
+PlayerSDefLevel: ; c6d0
+ ds 1
+PlayerAccLevel: ; c6d1
+ ds 1
+PlayerEvaLevel: ; c6d2
+ ds 1
+; c6d3
+ ds 1
+PlayerStatLevelsEnd:
+
EnemyStatLevels: ; c6d4
; 07 neutral
- ds 8
+EnemyAtkLevel: ; c6d4
+ 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
+; c6db
+ ds 1
EnemyTurnsTaken: ; c6dc
ds 1
@@ -595,12 +678,21 @@ LinkBattleRNCount: ; c6e5
; how far through the prng stream
ds 1
- ds 15
+ ds 3
-DisabledMove: ; c6f5
+CurEnemyMoveNum: ; c6e9
ds 1
- ds 2
+ ds 10
+
+AlreadyDisobeyed: ; c6f4
+ ds 1
+
+DisabledMove: ; c6f5
+ ds 1
+EnemyDisabledMove: ; c6f6
+ ds 1
+ ds 1
; exists so you can't counter on switch
LastEnemyCounterMove: ; c6f8
@@ -608,14 +700,40 @@ LastEnemyCounterMove: ; c6f8
LastPlayerCounterMove: ; c6f9
ds 1
- ds 8
+ ds 1
+
+AlreadyFailed: ; c6fb
+ ds 1
+
+ ds 3
+
+PlayerScreens: ; c6ff
+; bit
+; 4 reflect
+; 3 light screen
+; 2 safeguard
+; 0 spikes
+ ds 1
+
+EnemyScreens: ; c700
+; see PlayerScreens
+ ds 1
+
+ ds 1
PlayerLightScreenCount: ; c702
ds 1
PlayerReflectCount: ; c703
ds 1
- ds 6
+ ds 2
+
+EnemyLightScreenCount: ; c706
+ ds 1
+EnemyReflectCount: ; c707
+ ds 1
+
+ ds 2
Weather: ; c70a
; 00 normal
@@ -649,7 +767,7 @@ LastEnemyMove: ; c71c
SECTION "overworldmap",BSS[$c800]
OverworldMap: ; c800
ds 1300
-OverworldMapEnd
+OverworldMapEnd:
ds 12
@@ -779,7 +897,14 @@ StartFlypoint: ; d005
EndFlypoint: ; d006
ds 1
- ds 108
+ ds 55
+
+CurFruitTree: ; d03e
+ ds 1
+CurFruit: ; d03f
+ ds 1
+
+ ds 51
StringBuffer1: ; d073
ds 19
@@ -804,7 +929,12 @@ VramState: ; d0ed
; flickers when climbing waterfall
ds 1
- ds 26
+ ds 24
+
+CurItem: ; d106
+ ds 1
+
+ ds 1
CurPartySpecies: ; d108
ds 1
@@ -815,7 +945,76 @@ CurPartyMon: ; d109
; 0-5
ds 1
- ds 55
+ ds 4
+
+TempMon:
+TempMonSpecies: ; d10e
+ ds 1
+TempMonItem: ; d10f
+ ds 1
+TempMonMoves: ; d110
+TempMonMove1: ; d110
+ ds 1
+TempMonMove2: ; d111
+ ds 1
+TempMonMove3: ; d112
+ ds 1
+TempMonMove4: ; d113
+ ds 1
+TempMonID: ; d114
+ ds 2
+TempMonExp: ; d116
+ ds 3
+TempMonHPExp: ; d119
+ ds 2
+TempMonAtkExp: ; d11b
+ ds 2
+TempMonDefExp: ; d11d
+ ds 2
+TempMonSpdExp: ; d11f
+ ds 2
+TempMonSpclExp: ; d121
+ ds 2
+TempMonDVs: ; d123
+; hp = %1000 for each dv
+ ds 1 ; atk/def
+ ds 1 ; spd/spc
+TempMonPP: ; d125
+ ds 4
+TempMonHappiness: ; d129
+ ds 1
+TempMonPokerusStatus: ; d12a
+ ds 1
+TempMonCaughtData: ; d12b
+TempMonCaughtTime: ; d12b
+TempMonCaughtLevel: ; d12b
+ ds 1
+TempMonCaughtGender: ; d12c
+TempMonCaughtLocation: ; d12c
+ ds 1
+TempMonLevel: ; d12d
+ ds 1
+TempMonStatus: ; d12e
+ ds 1
+; d12f
+ ds 1
+TempMonCurHP: ; d130
+ ds 2
+TempMonMaxHP: ; d132
+ ds 2
+TempMonAtk: ; d134
+ ds 2
+TempMonDef: ; d136
+ ds 2
+TempMonSpd: ; d138
+ ds 2
+TempMonSpclAtk: ; d13a
+ ds 2
+TempMonSpclDef: ; d13c
+ ds 2
+TempMonEnd: ; d13e
+
+ ds 3
PartyMenuActionText ; d141
ds 1
@@ -849,7 +1048,10 @@ TileSetPalettes: ; d1e6
; bank 3f
ds 2
- ds 2
+EvolvableFlags: ; d1e8
+ ds 1
+
+ ds 1
Buffer1:
MagikarpLength: ; d1ea
@@ -857,17 +1059,16 @@ MagikarpLength: ; d1ea
Buffer2: ; d1eb
ds 1
-SECTION "prng2",BSS[$d1fa]
+SECTION "BattleMons2",BSS[$d1fa]
LinkBattleRNs: ; d1fa
ds 10
-SECTION "BattleMons2",BSS[$d204]
-
TempEnemyMonSpecies: ; d204
ds 1
TempBattleMonSpecies: ; d205
ds 1
-
+
+EnemyMon:
EnemyMonSpecies: ; d206
ds 1
EnemyMonItem: ; d207
@@ -882,6 +1083,7 @@ EnemyMonMove3: ; d20a
ds 1
EnemyMonMove4: ; d20b
ds 1
+EnemyMonMovesEnd
EnemyMonDVs:
EnemyMonAtkDefDV: ; d20c
@@ -919,6 +1121,7 @@ EnemyMonMaxHPHi: ; d218
EnemyMonMaxHPLo: ; d219
ds 1
+EnemyMonStats:
EnemyMonAtk: ; d21a
ds 2
EnemyMonDef: ; d21c
@@ -929,8 +1132,23 @@ EnemyMonSpclAtk: ; d220
ds 2
EnemyMonSpclDef: ; d222
ds 2
+EnemyMonStatsEnd
+
+EnemyMonType1: ; d224
+ ds 1
+EnemyMonType2: ; d225
+ ds 1
+
+EnemyMonBaseStats: ; d226
+ ds 5
+
+EnemyMonCatchRate: ; d22b
+ ds 1
+EnemyMonBaseExp: ; d22c
+ ds 1
+
+EnemyMonEnd
-SECTION "Battle",BSS[$d22d]
IsInBattle: ; d22d
; 0: overworld
@@ -966,15 +1184,66 @@ OtherTrainerID: ; d231
; (Joey, Mikey, Albert, etc.)
ds 1
- ds 2
+ ds 1
+
+TrainerClass: ; d233
+ ds 1
UnownLetter: ; d234
ds 1
ds 1
-CurBaseStats: ; d236
- ds 32
+CurBaseData: ; d236
+BaseDexNo: ; d236
+ ds 1
+BaseStats: ; d237
+BaseHP: ; d237
+ ds 1
+BaseAttack: ; d238
+ ds 1
+BaseDefense: ; d239
+ ds 1
+BaseSpeed: ; d23a
+ ds 1
+BaseSpecialAttack: ; d23b
+ ds 1
+BaseSpecialDefense: ; d23c
+ ds 1
+BaseType: ; d23d
+BaseType1: ; d23d
+ ds 1
+BaseType2: ; d23e
+ ds 1
+BaseCatchRate: ; d23f
+ ds 1
+BaseExp: ; d240
+ ds 1
+BaseItems: ; d241
+ ds 2
+BaseGender: ; d243
+ ds 1
+BaseUnknown1: ; d244
+ ds 1
+BaseEggSteps: ; d245
+ ds 1
+BaseUnknown2: ; d246
+ ds 1
+BasePicSize: ; d247
+ ds 1
+BasePadding: ; d248
+ ds 4
+BaseGrowthRate: ; d24c
+ ds 1
+BaseEggGroups: ; d24d
+ ds 1
+BaseTMHM: ; d24e
+ ds 8
+
+
+CurDamage: ; d256
+ ds 2
+
SECTION "TimeOfDay",BSS[$d269]
@@ -996,7 +1265,7 @@ OTPartySpecies: ; d281
; or the routine will keep going
OTPartyMon1:
-OTPartyMon1Species2: ; d288
+OTPartyMon1Species: ; d288
ds 1
OTPartyMon1Item: ; d289
ds 1
@@ -1133,6 +1402,7 @@ PlayerID: ; d47b
ds 2
PlayerName: ; d47d
ds 11
+PlayerNameEnd: ; d478
ds 46
@@ -1286,6 +1556,15 @@ Box13Name: ; dbe1
Box14Name: ; dbea
ds 9
+SECTION "fruittrees", BSS[$dc27]
+FruitTreeFlags: ; dc27
+ ds 1
+
+SECTION "steps", BSS[$dc73]
+StepCount: ; dc73
+ ds 1
+PoisonStepCount: ; dc74
+ ds 1
SECTION "FlypointPermissions", BSS[$dca5]
FlypointPerms: ; dca5
@@ -1319,9 +1598,8 @@ PartyCount: ; dcd7
ds 1 ; number of Pokémon in party
PartySpecies: ; dcd8
ds 6 ; species of each Pokémon in party
-; dcde
- ds 1 ; any empty slots including the 7th must be FF
- ; or the routine will keep going
+PartyEnd: ; dcde
+ ds 1 ; legacy functions don't check PartyCount
PartyMons:
PartyMon1:
@@ -1368,7 +1646,7 @@ PartyMon1PokerusStatus: ; dcfb
ds 1
PartyMon1CaughtData: ; dcfc
PartyMon1CaughtTime: ; dcfc
-PartyMon1CaughtLevel ; dcfc
+PartyMon1CaughtLevel: ; dcfc
ds 1
PartyMon1CaughtGender: ; dcfd
PartyMon1CaughtLocation: ; dcfd
@@ -1420,6 +1698,7 @@ PartyMon5OT: ; de2b
PartyMon6OT: ; de36
ds 11
+PartyMonNicknames:
PartyMon1Nickname: ; de41
ds 11
PartyMon2Nickname: ; de4c
@@ -1479,7 +1758,7 @@ BreedMon2Nick: ; df2f
BreedMon2OT: ; df3a
ds 11
BreedMon2Stats:
-BreedMon1Species: ; df45
+BreedMon2Species: ; df45
ds 1
ds 31