ref: 3b20ea29160760a85db9d84f61a92a957d14efb3
parent: 5e928616596b556194f3c2291ce0470ab0fb6ffd
parent: 8092f62cf42e20915ba608861e77588b38a36517
author: Bryan Bishop <[email protected]>
date: Sat Dec 22 21:56:46 EST 2012
Merge remote branch 'remotes/yenatch/master' fixes #49
--- a/extras/gbz80disasm.py
+++ b/extras/gbz80disasm.py
@@ -593,7 +593,7 @@
# why using a random value when you can use the address?
return ".ASM_" + hex(address)[2:]
-def output_bank_opcodes(original_offset, max_byte_count=0x4000):
+def output_bank_opcodes(original_offset, max_byte_count=0x4000, debug = False):
#fs = current_address
#b = bank_byte
#in = input_data -- rom
@@ -601,11 +601,14 @@
#i = offset
#ad = end_address
#a, oa = current_byte_number
-
+
+ load_labels()
+ load_rom()
+
bank_id = 0
if original_offset > 0x8000:
bank_id = original_offset / 0x4000
- print "bank id is: " + str(bank_id)
+ if debug: print "bank id is: " + str(bank_id)
last_hl_address = None #for when we're scanning the main map script
last_a_address = None
@@ -843,7 +846,7 @@
if not label_id < offset: return False
return True
+
+
if __name__ == "__main__":
- load_labels()
- load_rom()
print output_bank_opcodes(int(sys.argv[1], 16))[0]
--- a/main.asm
+++ b/main.asm
@@ -11414,7 +11414,7 @@
Function3e8eb: ; 3e8eb
;part of battle init
xor a
- ld hl, EnemyMonSpecies2
+ ld hl, EnemyMonSpecies
ld bc, $0027
call ByteFill
ld a, [InLinkBattle]
@@ -11423,8 +11423,8 @@
ld a, [$cfc0]
bit 0, a
jp nz, $5abd
- ld a, [EnemyMonSpecies]
- ld [EnemyMonSpecies2], a
+ ld a, [TempEnemyMonSpecies]
+ ld [EnemyMonSpecies], a
ld [$cf60], a
ld [$d108], a
call $3856
@@ -11515,7 +11515,7 @@
ld a, [$d22d]
dec a
jr nz, .asm_3ea1a
- ld a, [EnemyMonSpecies]
+ ld a, [TempEnemyMonSpecies]
cp a, UNOWN
jr nz, .notunown
ld hl, EnemyMonDVs
@@ -11524,7 +11524,7 @@
call CheckUnownLetter
jr c, .asm_3e9a0
.notunown
- ld a, [EnemyMonSpecies]
+ ld a, [TempEnemyMonSpecies]
cp a, MAGIKARP
jr nz, .asm_3ea1a
ld de, EnemyMonDVs
@@ -11679,7 +11679,7 @@
inc de
ld a, [$d240]
ld [de], a
- ld a, [EnemyMonSpecies]
+ ld a, [TempEnemyMonSpecies]
ld [$d265], a
call $343b
ld a, [$d22d]
@@ -11689,7 +11689,7 @@
ld de, $c616
ld bc, $000b
call CopyBytes
- ld a, [EnemyMonSpecies]
+ ld a, [TempEnemyMonSpecies]
dec a
ld c, a
ld b, $01
@@ -11715,7 +11715,7 @@
jr z, .check
ld hl, SleepingTreeMonNiteTable
.check
- ld a, [EnemyMonSpecies]
+ ld a, [TempEnemyMonSpecies]
ld de, $0001
call IsInArray
ret c
--- a/wram.asm
+++ b/wram.asm
@@ -1,3 +1,8 @@
+SECTION "stack",BSS[$c000]
+ ds 256
+Stack: ; c0ff
+
+
SECTION "audio",BSS[$c100]
MusicPlaying: ; c100
; nonzero if playing
@@ -239,7 +244,10 @@
ds 1
SFXNoiseSampleSet: ; c2a5
ds 1
-; c2a6
+Danger: ; c2a6
+; bit 7: on/off
+; bit 4: pitch
+; bit 0-3: counter
ds 1
MusicFade: ; c2a7
; fades volume over x frames
@@ -271,13 +279,16 @@
CurSFX: ; c2bf
; id of sfx currently playing
ds 1
+CurMusic: ; c2c0
+; id of music currently playing
+ ds 1
SECTION "linkbattle",BSS[$c2dc]
-
-InLinkBattle: ; 0xc2dc
+InLinkBattle: ; c2dc
ds 1 ; nonzero when in a link battle
+
SECTION "tiles",BSS[$c2fa]
TileDown: ; c2fa
ds 1
@@ -297,13 +308,72 @@
; bit 0: right
ds 1
-SECTION "BattleMons",BSS[$c62a]
-BattleMonSpecies: ; c62a
+SECTION "gfx",BSS[$c400]
+
+Sprites: ; c400
+; 4 bytes per sprite
+; 40 sprites
+; struct:
+; y in pixels
+; x in pixels
+; tile id
+; attributes:
+; bit 7: priority
+; bit 6: y flip
+; bit 5: x flip
+; bit 4: pal # (non-cgb)
+; bit 3: vram bank (cgb only)
+; bit 2-0: pal # (cgb only)
+ ds 160
+
+TileMap: ; c4a0
+; 20x18 grid of 8x8 tiles
+ ds 360
+
+
+SECTION "BattleMons",BSS[$c608]
+
+EnemyMoveStruct:
+EnemyMoveAnimation: ; c608
ds 1
+EnemyMoveEffect: ; c609
ds 1
-BattleMonSpecies2: ; c62c
+EnemyMovePower: ; c60a
ds 1
+EnemyMoveType: ; c60b
+ ds 1
+EnemyMoveAccuracy: ; c60c
+ ds 1
+EnemyMovePP: ; c60d
+ ds 1
+EnemyMoveEffectChance: ; c60e
+ ds 1
+
+PlayerMoveStruct:
+PlayerMoveAnimation: ; c60f
+ ds 1
+PlayerMoveEffect: ; c610
+ ds 1
+PlayerMovePower: ; c611
+ ds 1
+PlayerMoveType: ; c612
+ ds 1
+PlayerMoveAccuracy: ; c613
+ ds 1
+PlayerMovePP: ; c614
+ ds 1
+PlayerMoveEffectChance: ; c615
+ ds 1
+
+EnemyMonNick: ; c616
+ ds 11
+BattleMonNick: ; c621
+ ds 11
+
+
+BattleMonSpecies: ; c62c
+ ds 1
BattleMonItem: ; c62d
ds 1
@@ -357,11 +427,250 @@
BattleMonSpclDef: ; c648
ds 2
-SECTION "prng",BSS[$c6e5]
+ ds 25
+
+CurOTMon: ; c663
+ ds 1
+
+ ds 4
+
+PlayerSubStatus1: ; c668
+; bit
+; 7 attract
+; 6 encore
+; 5 endure
+; 4 perish song
+; 3
+; 2 protect
+; 1 curse
+; 0 nightmare
+ ds 1
+PlayerSubStatus2: ; c669
+; unknown
+ ds 1
+PlayerSubStatus3: ; c66a
+; bit
+; 7 confusion
+; 6
+; 5
+; 4 charged
+; 3
+; 2
+; 1 rollout
+; 0 bide
+ ds 1
+PlayerSubStatus4: ; c66b
+; bit
+; 7 leech seed
+; 6
+; 5 recharge
+; 4 substitute
+; 3
+; 2
+; 1
+; 0
+ ds 1
+PlayerSubStatus5: ; c66c
+; unknown
+ ds 1
+
+EnemySubStatus1: ; c66d
+; see PlayerSubStatus1
+ ds 1
+EnemySubstatus2: ; c66e
+; see PlayerSubStatus2
+ ds 1
+EnemySubStatus3: ; c66f
+; see PlayerSubStatus3
+ ds 1
+EnemySubStatus4: ; c670
+; see PlayerSubStatus4
+ ds 1
+EnemySubStatus5: ; c671
+; see PlayerSubStatus5
+ ds 1
+
+ ds 4
+
+PlayerEncoreCount: ; c676
+ ds 1
+PlayerPerishCount: ; c677
+ ds 1
+
+ ds 5
+
+EnemyEncoreCount: ; c67e
+ ds 1
+EnemyPerishCount: ; c67f
+ ds 1
+
+ ds 2
+
+PlayerDamageTaken: ; c682
+ ds 2
+EnemyDamageTaken: ; c684
+ ds 2
+
+ ds 4
+
+BattleScriptBuffer: ; c68a
+ ds 40
+
+BattleScriptBufferLocLo: ; c6b2
+ ds 1
+BattleScriptBufferLocHi: ; c6b3
+ ds 1
+
+ ds 24
+
+PlayerStatLevels: ; c6cc
+; 07 neutral
+ ds 8
+EnemyStatLevels: ; c6d4
+; 07 neutral
+ ds 8
+
+EnemyTurnsTaken: ; c6dc
+ ds 1
+PlayerTurnsTaken: ; c6dd
+ ds 1
+
+ ds 5
+
+CurPlayerMove: ; c6e3
+ ds 1
+CurEnemyMove: ; c6e4
+ ds 1
+
LinkBattleRNCount: ; c6e5
+; how far through the prng stream
ds 1
-SECTION "Engine",BSS[$cfcc]
+ ds 15
+
+DisabledMove: ; c6f5
+ ds 1
+
+ ds 2
+
+; exists so you can't counter on switch
+LastEnemyCounterMove: ; c6f8
+ ds 1
+LastPlayerCounterMove: ; c6f9
+ ds 1
+
+ ds 8
+
+PlayerLightScreenCount: ; c702
+ ds 1
+PlayerReflectCount: ; c703
+ ds 1
+
+ ds 6
+
+Weather: ; c70a
+; 00 normal
+; 01 rain
+; 02 sun
+; 03 sandstorm
+; 04 rain stopped
+; 05 sunliight faded
+; 06 sandstorm subsided
+ ds 1
+
+WeatherCount: ; c70b
+; # turns remaining
+ ds 1
+
+ ds 6
+
+PlayerUsedMoves: ; c712
+; add a move that has been used once by the player
+; added in order of use
+ ds 4
+
+ ds 5
+
+LastPlayerMove: ; c71b
+ ds 1
+LastEnemyMove: ; c71c
+ ds 1
+
+
+SECTION "gfx2",BSS[$c800]
+OverworldMap: ; c800
+ ds 1280
+
+; cd00
+ ds 32
+
+BGMapBuffer: ; cd20
+ ds 40
+
+BGMapPalBuffer: ; cd48
+ ds 40
+
+BGMapBufferPtrs: ; cd70
+; 20 bg map addresses (16x8 tiles)
+ ds 40
+
+SGBPredef: ; cd98
+ ds 1
+PlayerHPPal: ; cd99
+ ds 1
+EnemyHPPal: ; cd9a
+ ds 1
+
+ ds 62
+
+AttrMap: ; cdd9
+; 20x18 grid of palettes for 8x8 tiles
+; read horizontally from the top row
+; bit 3: vram bank
+; bit 0-2: palette id
+ ds 360
+
+ ds 30
+
+MonType: ; cf5f
+; 0 partymon
+; 1 otpartymon
+; 2 boxmon
+; 3 ????mon
+; 4 wildmon
+ ds 1
+
+CurBattleSpecies: ; cf60
+ ds 1
+
+ ds 33
+
+TileY: ; cf82
+ ds 1
+TileX: ; cf83
+ ds 1
+
+
+
+SECTION "VBlank",BSS[$cfb3]
+VBlankOccurred: ; cfb3
+ ds 1
+
+
+SECTION "Engine",BSS[$cfc2]
+FXAnimID:
+FXAnimIDLo: ; cfc2
+ ds 1
+FXAnimIDHi: ; cfc3
+ ds 1
+
+ ds 2
+
+TileAnimationTimer: ; cfc6
+ ds 1
+
+ ds 5
+
Options: ; cfcc
; bit 0-2: number of frames to delay when printing text
; fast 1; mid 3; slow 5
@@ -392,8 +701,12 @@
; bit 1: menu account off/on
ds 1
- ds 161
+ ds 47
+; d000
+
+ ds 114
+
StringBuffer1: ; d073
ds 19
StringBuffer2: ; d086
@@ -400,9 +713,16 @@
ds 19
StringBuffer3: ; d099
ds 19
-
- ds 65
+ ds 40
+
+CurBattleMon: ; d0d4
+ ds 1
+CurMoveNum: ; d0d5
+ ds 1
+
+ ds 23
+
VramState: ; d0ed
; bit 0: overworld sprite updating on/off
; bit 6: something to do with text
@@ -426,8 +746,32 @@
CurPartyLevel: ; d143
ds 1
- ds 166
+ ds 149
+TileSetHeader:
+TileSetBank: ; d1d9
+ ds 1
+TileSetAddress: ; d1da
+ ds 2
+TileSetBlocksBank: ; d1dc
+ ds 1
+TileSetBlocksAddress: ; d1dd
+ ds 2
+TileSetCollisionBank: ; d1df
+ ds 1
+TileSetCollisionAddress: ; d1e0
+ ds 2
+TileSetAnim: ; d1e2
+; bank 3f
+ ds 2
+; unused ; d1e4
+ ds 2
+TileSetPalettes: ; d1e6
+; bank 3f
+ ds 2
+
+ ds 2
+
Buffer1:
MagikarpLength:
MagikarpLengthHi: ; d1ea
@@ -440,12 +784,14 @@
LinkBattleRNs: ; d1fa
ds 10
-SECTION "EnemyMon",BSS[$d204]
+SECTION "BattleMons2",BSS[$d204]
-EnemyMonSpecies: ; d204
+TempEnemyMonSpecies: ; d204
ds 1
+TempBattleMonSpecies: ; d205
ds 1
-EnemyMonSpecies2: ; d206
+
+EnemyMonSpecies: ; d206
ds 1
EnemyMonItem: ; d207
ds 1
@@ -509,20 +855,20 @@
SECTION "Battle",BSS[$d22d]
-BattleClass: ; d22d
-; 0: wild battle
-; 1:
+IsInBattle: ; d22d
+; 0: overworld
+; 1: wild battle
; 2: trainer battle
ds 1
ds 1
-OtherTrainerClass: ; 0xd22f
+OtherTrainerClass: ; d22f
; class (Youngster, Bug Catcher, etc.) of opposing trainer
; 0 if opponent is a wild Pokémon, not a trainer
ds 1
-BattleType: ; 0xd230
+BattleType: ; d230
; $00 normal
; $01
; $02
@@ -538,7 +884,7 @@
; $0c suicune
ds 1
-OtherTrainerID: ; 0xd231
+OtherTrainerID: ; d231
; which trainer of the class that you're fighting
; (Joey, Mikey, Albert, etc.)
ds 1
@@ -555,7 +901,7 @@
SECTION "TimeOfDay",BSS[$d269]
-TimeOfDay: ; 0xd269
+TimeOfDay: ; d269
; 0 if morn
; 1 if day
; 2 if nite
@@ -1093,9 +1439,9 @@
SECTION "Player",BSS[$d47b]
-PlayerID: ; 0xd47b
+PlayerID: ; d47b
ds 2
-PlayerName: ; 0xd47d
+PlayerName: ; d47d
ds 11
ds 46
@@ -1110,14 +1456,27 @@
StartSecond: ; d4b9
ds 1
- ds 17
+ ds 9
+
+GameTimeCap: ; d4c3
+ ds 1
+GameTimeHours: ; 14c4
+ ds 2
+GameTimeMinutes: ; d4c6
+ ds 1
+GameTimeSeconds: ; d4c7
+ ds 1
+GameTimeFrames: ; d4c8
+ ds 1
+ ds 2
+
CurDay: ; d4cb
ds 1
ds 12
-PlayerSprite: ; 0xd4d8
+PlayerSprite: ; d4d8
ds 1
ds 5
@@ -1170,11 +1529,11 @@
ds 1
SECTION "scriptram",BSS[$d962]
-MooMooBerries: ; 0xd962
+MooMooBerries: ; d962
ds 1 ; how many berries fed to MooMoo
-UndergroundSwitchPositions: ; 0xd963
+UndergroundSwitchPositions: ; d963
ds 1 ; which positions the switches are in
-FarfetchdPosition: ; 0xd964
+FarfetchdPosition: ; d964
ds 1 ; which position the ilex farfetch'd is in
SECTION "Events",BSS[$dad4]
@@ -1197,33 +1556,33 @@
SECTION "BoxNames",BSS[$db75]
; 8 chars + $50
-Box1Name: ; 0xdb75
+Box1Name: ; db75
ds 9
-Box2Name: ; 0xdbce
+Box2Name: ; dbce
ds 9
-Box3Name: ; 0xdbd7
+Box3Name: ; dbd7
ds 9
-Box4Name: ; 0xdbe0
+Box4Name: ; dbe0
ds 9
-Box5Name: ; 0xdbe9
+Box5Name: ; dbe9
ds 9
-Box6Name: ; 0xdbf2
+Box6Name: ; dbf2
ds 9
-Box7Name: ; 0xdbfb
+Box7Name: ; dbfb
ds 9
-Box8Name: ; 0xdc04
+Box8Name: ; dc04
ds 9
-Box9Name: ; 0xdc0d
+Box9Name: ; dc0d
ds 9
-Box10Name: ; 0xdc16
+Box10Name: ; dc16
ds 9
-Box11Name: ; 0xdc1f
+Box11Name: ; dc1f
ds 9
-Box12Name: ; 0xdc28
+Box12Name: ; dc28
ds 9
-Box13Name: ; 0xdc31
+Box13Name: ; dc31
ds 9
-Box14Name: ; 0xdc3a
+Box14Name: ; dc3a
ds 9
SECTION "BackupMapInfo", BSS[$dcad]
@@ -1230,457 +1589,457 @@
; used on maps like second floor pokécenter, which are reused, so we know which
; map to return to
-BackupMapGroup: ; 0xdcad
+BackupMapGroup: ; dcad
ds 1
-BackupMapNumber: ; 0xdcae
+BackupMapNumber: ; dcae
ds 1
SECTION "PlayerMapInfo", BSS[$dcb4]
-WarpNumber: ; 0xdcb4
+WarpNumber: ; dcb4
ds 1
-MapGroup: ; 0xdcb5
+MapGroup: ; dcb5
ds 1 ; map group of current map
-MapNumber: ; 0xdcb6
+MapNumber: ; dcb6
ds 1 ; map number of current map
-YCoord: ; 0xdcb7
+YCoord: ; dcb7
ds 1 ; current y coordinate relative to top-left corner of current map
-XCoord: ; 0xdcb8
+XCoord: ; dcb8
ds 1 ; current x coordinate relative to top-left corner of current map
SECTION "PlayerParty",BSS[$dcd7]
-PartyCount: ; 0xdcd7
+PartyCount: ; dcd7
ds 1 ; number of Pokémon in party
-PartySpecies: ; 0xdcd8
+PartySpecies: ; dcd8
ds 6 ; species of each Pokémon in party
-; 0xdcde
+; dcde
ds 1 ; any empty slots including the 7th must be FF
; or the routine will keep going
PartyMons:
PartyMon1:
-PartyMon1Species: ; 0xdcdf
+PartyMon1Species: ; dcdf
ds 1
-PartyMon1Item: ; 0xdce0
+PartyMon1Item: ; dce0
ds 1
-PartyMon1Moves: ; 0xdce1
-PartyMon1Move1: ; 0xdce1
+PartyMon1Moves: ; dce1
+PartyMon1Move1: ; dce1
ds 1
-PartyMon1Move2: ; 0xdce2
+PartyMon1Move2: ; dce2
ds 1
-PartyMon1Move3: ; 0xdce3
+PartyMon1Move3: ; dce3
ds 1
-PartyMon1Move4: ; 0xdce4
+PartyMon1Move4: ; dce4
ds 1
-PartyMon1ID: ; 0xdce5
+PartyMon1ID: ; dce5
ds 2
-PartyMon1Exp: ; 0xdce7
+PartyMon1Exp: ; dce7
ds 3
-PartyMon1HPExp: ; 0xdcea
+PartyMon1HPExp: ; dcea
ds 2
-PartyMon1AtkExp: ; 0xdcec
+PartyMon1AtkExp: ; dcec
ds 2
-PartyMon1DefExp: ; 0xdcee
+PartyMon1DefExp: ; dcee
ds 2
-PartyMon1SpdExp: ; 0xdcf0
+PartyMon1SpdExp: ; dcf0
ds 2
-PartyMon1SpclExp: ; 0xdcf2
+PartyMon1SpclExp: ; dcf2
ds 2
-PartyMon1DVs: ; 0xdcf4
+PartyMon1DVs: ; dcf4
ds 2 ; Atk/Def/Spd/Spcl, HP is the high bits of these four nybbles
-PartyMon1PP: ; 0xdcf6
+PartyMon1PP: ; dcf6
ds 4
-PartyMon1Happiness: ; 0xdcfa
+PartyMon1Happiness: ; dcfa
ds 1
-PartyMon1PokerusStatus: ; 0xdcfb
+PartyMon1PokerusStatus: ; dcfb
ds 1
-PartyMon1CaughtData: ; 0xdcfc
-PartyMon1CaughtTime: ; 0xdcfc
-PartyMon1CaughtLevel ; 0xdcfc
+PartyMon1CaughtData: ; dcfc
+PartyMon1CaughtTime: ; dcfc
+PartyMon1CaughtLevel ; dcfc
ds 1
-PartyMon1CaughtGender: ; 0xdcfd
-PartyMon1CaughtLocation: ; 0xdcfd
+PartyMon1CaughtGender: ; dcfd
+PartyMon1CaughtLocation: ; dcfd
ds 1
-PartyMon1Level: ; 0xdcfe
+PartyMon1Level: ; dcfe
ds 1
-PartyMon1Status: ; 0xdcff
+PartyMon1Status: ; dcff
ds 1
-; 0xdd00 unused
+; dd00 unused
ds 1
-PartyMon1CurHP: ; 0xdd01
+PartyMon1CurHP: ; dd01
ds 2
-PartyMon1MaxHP: ; 0xdd03
+PartyMon1MaxHP: ; dd03
ds 2
-PartyMon1Atk: ; 0xdd05
+PartyMon1Atk: ; dd05
ds 2
-PartyMon1Def: ; 0xdd07
+PartyMon1Def: ; dd07
ds 2
-PartyMon1Spd: ; 0xdd09
+PartyMon1Spd: ; dd09
ds 2
-PartyMon1SpclAtk: ; 0xdd0b
+PartyMon1SpclAtk: ; dd0b
ds 2
-PartyMon1SpclDef: ; 0xdd0d
+PartyMon1SpclDef: ; dd0d
ds 2
-PartyMon2: ; 0xdd0f
-PartyMon2Species: ; 0xdd0f
+PartyMon2: ; dd0f
+PartyMon2Species: ; dd0f
ds 1
-PartyMon2Item: ; 0xdd10
+PartyMon2Item: ; dd10
ds 1
-PartyMon2Moves: ; 0xdd11
-PartyMon2Move1: ; 0xdd11
+PartyMon2Moves: ; dd11
+PartyMon2Move1: ; dd11
ds 1
-PartyMon2Move2: ; 0xdd12
+PartyMon2Move2: ; dd12
ds 1
-PartyMon2Move3: ; 0xdd13
+PartyMon2Move3: ; dd13
ds 1
-PartyMon2Move4: ; 0xdd14
+PartyMon2Move4: ; dd14
ds 1
-PartyMon2ID: ; 0xdd15
+PartyMon2ID: ; dd15
ds 2
-PartyMon2Exp: ; 0xdd17
+PartyMon2Exp: ; dd17
ds 3
-PartyMon2HPExp: ; 0xdd1a
+PartyMon2HPExp: ; dd1a
ds 2
-PartyMon2AtkExp: ; 0xdd1c
+PartyMon2AtkExp: ; dd1c
ds 2
-PartyMon2DefExp: ; 0xdd1e
+PartyMon2DefExp: ; dd1e
ds 2
-PartyMon2SpdExp: ; 0xdd20
+PartyMon2SpdExp: ; dd20
ds 2
-PartyMon2SpclExp: ; 0xdd22
+PartyMon2SpclExp: ; dd22
ds 2
-PartyMon2DVs: ; 0xdd24
+PartyMon2DVs: ; dd24
ds 2 ; Atk/Def/Spd/Spcl, HP is the high bits of these four nybbles
-PartyMon2PP: ; 0xdd26
+PartyMon2PP: ; dd26
ds 4
-PartyMon2Happiness: ; 0xdd2a
+PartyMon2Happiness: ; dd2a
ds 1
-PartyMon2PokerusStatus: ; 0xdd2b
+PartyMon2PokerusStatus: ; dd2b
ds 1
-PartyMon2CaughtData: ; 0xdd2c
-PartyMon2CaughtTime: ; 0xdd2c
-PartyMon2CaughtLevel ; 0xdd2c
+PartyMon2CaughtData: ; dd2c
+PartyMon2CaughtTime: ; dd2c
+PartyMon2CaughtLevel ; dd2c
ds 1
-PartyMon2CaughtGender: ; 0xdd2d
-PartyMon2CaughtLocation: ; 0xdd2d
+PartyMon2CaughtGender: ; dd2d
+PartyMon2CaughtLocation: ; dd2d
ds 1
-PartyMon2Level: ; 0xdd2e
+PartyMon2Level: ; dd2e
ds 1
-PartyMon2Status: ; 0xdd2f
+PartyMon2Status: ; dd2f
ds 1
-; 0xdd30 unused
+; dd30 unused
ds 1
-PartyMon2CurHP: ; 0xdd31
+PartyMon2CurHP: ; dd31
ds 2
-PartyMon2MaxHP: ; 0xdd33
+PartyMon2MaxHP: ; dd33
ds 2
-PartyMon2Atk: ; 0xdd35
+PartyMon2Atk: ; dd35
ds 2
-PartyMon2Def: ; 0xdd37
+PartyMon2Def: ; dd37
ds 2
-PartyMon2Spd: ; 0xdd39
+PartyMon2Spd: ; dd39
ds 2
-PartyMon2SpclAtk: ; 0xdd3b
+PartyMon2SpclAtk: ; dd3b
ds 2
-PartyMon2SpclDef: ; 0xdd3d
+PartyMon2SpclDef: ; dd3d
ds 2
-PartyMon3: ; 0xdd3f
-PartyMon3Species: ; 0xdd3f
+PartyMon3: ; dd3f
+PartyMon3Species: ; dd3f
ds 1
-PartyMon3Item: ; 0xdd40
+PartyMon3Item: ; dd40
ds 1
-PartyMon3Moves: ; 0xdd41
-PartyMon3Move1: ; 0xdd41
+PartyMon3Moves: ; dd41
+PartyMon3Move1: ; dd41
ds 1
-PartyMon3Move2: ; 0xdd42
+PartyMon3Move2: ; dd42
ds 1
-PartyMon3Move3: ; 0xdd43
+PartyMon3Move3: ; dd43
ds 1
-PartyMon3Move4: ; 0xdd44
+PartyMon3Move4: ; dd44
ds 1
-PartyMon3ID: ; 0xdd45
+PartyMon3ID: ; dd45
ds 2
-PartyMon3Exp: ; 0xdd47
+PartyMon3Exp: ; dd47
ds 3
-PartyMon3HPExp: ; 0xdd4a
+PartyMon3HPExp: ; dd4a
ds 2
-PartyMon3AtkExp: ; 0xdd4c
+PartyMon3AtkExp: ; dd4c
ds 2
-PartyMon3DefExp: ; 0xdd4e
+PartyMon3DefExp: ; dd4e
ds 2
-PartyMon3SpdExp: ; 0xdd50
+PartyMon3SpdExp: ; dd50
ds 2
-PartyMon3SpclExp: ; 0xdd52
+PartyMon3SpclExp: ; dd52
ds 2
-PartyMon3DVs: ; 0xdd54
+PartyMon3DVs: ; dd54
ds 2 ; Atk/Def/Spd/Spcl, HP is the high bits of these four nybbles
-PartyMon3PP: ; 0xdd56
+PartyMon3PP: ; dd56
ds 4
-PartyMon3Happiness: ; 0xdd5a
+PartyMon3Happiness: ; dd5a
ds 1
-PartyMon3PokerusStatus: ; 0xdd5b
+PartyMon3PokerusStatus: ; dd5b
ds 1
-PartyMon3CaughtData: ; 0xdd5c
-PartyMon3CaughtTime: ; 0xdd5c
-PartyMon3CaughtLevel ; 0xdd5c
+PartyMon3CaughtData: ; dd5c
+PartyMon3CaughtTime: ; dd5c
+PartyMon3CaughtLevel ; dd5c
ds 1
-PartyMon3CaughtGender: ; 0xdd5d
-PartyMon3CaughtLocation: ; 0xdd5d
+PartyMon3CaughtGender: ; dd5d
+PartyMon3CaughtLocation: ; dd5d
ds 1
-PartyMon3Level: ; 0xdd5e
+PartyMon3Level: ; dd5e
ds 1
-PartyMon3Status: ; 0xdd5f
+PartyMon3Status: ; dd5f
ds 1
-; 0xdd60 unused
+; dd60 unused
ds 1
-PartyMon3CurHP: ; 0xdd61
+PartyMon3CurHP: ; dd61
ds 2
-PartyMon3MaxHP: ; 0xdd63
+PartyMon3MaxHP: ; dd63
ds 2
-PartyMon3Atk: ; 0xdd65
+PartyMon3Atk: ; dd65
ds 2
-PartyMon3Def: ; 0xdd67
+PartyMon3Def: ; dd67
ds 2
-PartyMon3Spd: ; 0xdd69
+PartyMon3Spd: ; dd69
ds 2
-PartyMon3SpclAtk: ; 0xdd6b
+PartyMon3SpclAtk: ; dd6b
ds 2
-PartyMon3SpclDef: ; 0xdd6d
+PartyMon3SpclDef: ; dd6d
ds 2
-PartyMon4: ; 0xdd6f
-PartyMon4Species: ; 0xdd6f
+PartyMon4: ; dd6f
+PartyMon4Species: ; dd6f
ds 1
-PartyMon4Item: ; 0xdd70
+PartyMon4Item: ; dd70
ds 1
-PartyMon4Moves: ; 0xdd71
-PartyMon4Move1: ; 0xdd71
+PartyMon4Moves: ; dd71
+PartyMon4Move1: ; dd71
ds 1
-PartyMon4Move2: ; 0xdd72
+PartyMon4Move2: ; dd72
ds 1
-PartyMon4Move3: ; 0xdd73
+PartyMon4Move3: ; dd73
ds 1
-PartyMon4Move4: ; 0xdd74
+PartyMon4Move4: ; dd74
ds 1
-PartyMon4ID: ; 0xdd75
+PartyMon4ID: ; dd75
ds 2
-PartyMon4Exp: ; 0xdd77
+PartyMon4Exp: ; dd77
ds 3
-PartyMon4HPExp: ; 0xdd7a
+PartyMon4HPExp: ; dd7a
ds 2
-PartyMon4AtkExp: ; 0xdd7c
+PartyMon4AtkExp: ; dd7c
ds 2
-PartyMon4DefExp: ; 0xdd7e
+PartyMon4DefExp: ; dd7e
ds 2
-PartyMon4SpdExp: ; 0xdd80
+PartyMon4SpdExp: ; dd80
ds 2
-PartyMon4SpclExp: ; 0xdd82
+PartyMon4SpclExp: ; dd82
ds 2
-PartyMon4DVs: ; 0xdd84
+PartyMon4DVs: ; dd84
ds 2 ; Atk/Def/Spd/Spcl, HP is the high bits of these four nybbles
-PartyMon4PP: ; 0xdd86
+PartyMon4PP: ; dd86
ds 4
-PartyMon4Happiness: ; 0xdd8a
+PartyMon4Happiness: ; dd8a
ds 1
-PartyMon4PokerusStatus: ; 0xdd8b
+PartyMon4PokerusStatus: ; dd8b
ds 1
-PartyMon4CaughtData: ; 0xdd8c
-PartyMon4CaughtTime: ; 0xdd8c
-PartyMon4CaughtLevel ; 0xdd8c
+PartyMon4CaughtData: ; dd8c
+PartyMon4CaughtTime: ; dd8c
+PartyMon4CaughtLevel ; dd8c
ds 1
-PartyMon4CaughtGender: ; 0xdd8d
-PartyMon4CaughtLocation: ; 0xdd8d
+PartyMon4CaughtGender: ; dd8d
+PartyMon4CaughtLocation: ; dd8d
ds 1
-PartyMon4Level: ; 0xdd8e
+PartyMon4Level: ; dd8e
ds 1
-PartyMon4Status: ; 0xdd8f
+PartyMon4Status: ; dd8f
ds 1
-; 0xdd90 unused
+; dd90 unused
ds 1
-PartyMon4CurHP: ; 0xdd91
+PartyMon4CurHP: ; dd91
ds 2
-PartyMon4MaxHP: ; 0xdd93
+PartyMon4MaxHP: ; dd93
ds 2
-PartyMon4Atk: ; 0xdd95
+PartyMon4Atk: ; dd95
ds 2
-PartyMon4Def: ; 0xdd97
+PartyMon4Def: ; dd97
ds 2
-PartyMon4Spd: ; 0xdd99
+PartyMon4Spd: ; dd99
ds 2
-PartyMon4SpclAtk: ; 0xdd9b
+PartyMon4SpclAtk: ; dd9b
ds 2
-PartyMon4SpclDef: ; 0xdd9d
+PartyMon4SpclDef: ; dd9d
ds 2
-PartyMon5: ; 0xdd9f
-PartyMon5Species: ; 0xdd9f
+PartyMon5: ; dd9f
+PartyMon5Species: ; dd9f
ds 1
-PartyMon5Item: ; 0xdda0
+PartyMon5Item: ; dda0
ds 1
-PartyMon5Moves: ; 0xdda1
-PartyMon5Move1: ; 0xdda1
+PartyMon5Moves: ; dda1
+PartyMon5Move1: ; dda1
ds 1
-PartyMon5Move2: ; 0xdda2
+PartyMon5Move2: ; dda2
ds 1
-PartyMon5Move3: ; 0xdda3
+PartyMon5Move3: ; dda3
ds 1
-PartyMon5Move4: ; 0xdda4
+PartyMon5Move4: ; dda4
ds 1
-PartyMon5ID: ; 0xdda5
+PartyMon5ID: ; dda5
ds 2
-PartyMon5Exp: ; 0xdda7
+PartyMon5Exp: ; dda7
ds 3
-PartyMon5HPExp: ; 0xddaa
+PartyMon5HPExp: ; ddaa
ds 2
-PartyMon5AtkExp: ; 0xddac
+PartyMon5AtkExp: ; ddac
ds 2
-PartyMon5DefExp: ; 0xddae
+PartyMon5DefExp: ; ddae
ds 2
-PartyMon5SpdExp: ; 0xddb0
+PartyMon5SpdExp: ; ddb0
ds 2
-PartyMon5SpclExp: ; 0xddb2
+PartyMon5SpclExp: ; ddb2
ds 2
-PartyMon5DVs: ; 0xddb4
+PartyMon5DVs: ; ddb4
ds 2 ; Atk/Def/Spd/Spcl, HP is the high bits of these four nybbles
-PartyMon5PP: ; 0xddb6
+PartyMon5PP: ; ddb6
ds 4
-PartyMon5Happiness: ; 0xddba
+PartyMon5Happiness: ; ddba
ds 1
-PartyMon5PokerusStatus: ; 0xddbb
+PartyMon5PokerusStatus: ; ddbb
ds 1
-PartyMon5CaughtData: ; 0xddbc
-PartyMon5CaughtTime: ; 0xddbc
-PartyMon5CaughtLevel ; 0xddbc
+PartyMon5CaughtData: ; ddbc
+PartyMon5CaughtTime: ; ddbc
+PartyMon5CaughtLevel ; ddbc
ds 1
-PartyMon5CaughtGender: ; 0xddbd
-PartyMon5CaughtLocation: ; 0xddbd
+PartyMon5CaughtGender: ; ddbd
+PartyMon5CaughtLocation: ; ddbd
ds 1
-PartyMon5Level: ; 0xddbe
+PartyMon5Level: ; ddbe
ds 1
-PartyMon5Status: ; 0xddbf
+PartyMon5Status: ; ddbf
ds 1
-; 0xddc0 unused
+; ddc0 unused
ds 1
-PartyMon5CurHP: ; 0xddc1
+PartyMon5CurHP: ; ddc1
ds 2
-PartyMon5MaxHP: ; 0xddc3
+PartyMon5MaxHP: ; ddc3
ds 2
-PartyMon5Atk: ; 0xddc5
+PartyMon5Atk: ; ddc5
ds 2
-PartyMon5Def: ; 0xddc7
+PartyMon5Def: ; ddc7
ds 2
-PartyMon5Spd: ; 0xddc9
+PartyMon5Spd: ; ddc9
ds 2
-PartyMon5SpclAtk: ; 0xddcb
+PartyMon5SpclAtk: ; ddcb
ds 2
-PartyMon5SpclDef: ; 0xddcd
+PartyMon5SpclDef: ; ddcd
ds 2
-PartyMon6: ; 0xddcf
-PartyMon6Species: ; 0xddcf
+PartyMon6: ; ddcf
+PartyMon6Species: ; ddcf
ds 1
-PartyMon6Item: ; 0xddd0
+PartyMon6Item: ; ddd0
ds 1
-PartyMon6Moves: ; 0xddd1
-PartyMon6Move1: ; 0xddd1
+PartyMon6Moves: ; ddd1
+PartyMon6Move1: ; ddd1
ds 1
-PartyMon6Move2: ; 0xddd2
+PartyMon6Move2: ; ddd2
ds 1
-PartyMon6Move3: ; 0xddd3
+PartyMon6Move3: ; ddd3
ds 1
-PartyMon6Move4: ; 0xddd4
+PartyMon6Move4: ; ddd4
ds 1
-PartyMon6ID: ; 0xddd5
+PartyMon6ID: ; ddd5
ds 2
-PartyMon6Exp: ; 0xddd7
+PartyMon6Exp: ; ddd7
ds 3
-PartyMon6HPExp: ; 0xddda
+PartyMon6HPExp: ; ddda
ds 2
-PartyMon6AtkExp: ; 0xdddc
+PartyMon6AtkExp: ; dddc
ds 2
-PartyMon6DefExp: ; 0xddde
+PartyMon6DefExp: ; ddde
ds 2
-PartyMon6SpdExp: ; 0xdde0
+PartyMon6SpdExp: ; dde0
ds 2
-PartyMon6SpclExp: ; 0xdde2
+PartyMon6SpclExp: ; dde2
ds 2
-PartyMon6DVs: ; 0xdde4
+PartyMon6DVs: ; dde4
ds 2 ; Atk/Def/Spd/Spcl, HP is the high bits of these four nybbles
-PartyMon6PP: ; 0xdde6
+PartyMon6PP: ; dde6
ds 4
-PartyMon6Happiness: ; 0xddea
+PartyMon6Happiness: ; ddea
ds 1
-PartyMon6PokerusStatus: ; 0xddeb
+PartyMon6PokerusStatus: ; ddeb
ds 1
-PartyMon6CaughtData: ; 0xddec
-PartyMon6CaughtTime: ; 0xddec
-PartyMon6CaughtLevel ; 0xddec
+PartyMon6CaughtData: ; ddec
+PartyMon6CaughtTime: ; ddec
+PartyMon6CaughtLevel ; ddec
ds 1
-PartyMon6CaughtGender: ; 0xdded
-PartyMon6CaughtLocation: ; 0xdded
+PartyMon6CaughtGender: ; dded
+PartyMon6CaughtLocation: ; dded
ds 1
-PartyMon6Level: ; 0xddee
+PartyMon6Level: ; ddee
ds 1
-PartyMon6Status: ; 0xddef
+PartyMon6Status: ; ddef
ds 1
-; 0xddf0 unused
+; ddf0 unused
ds 1
-PartyMon6CurHP: ; 0xddf1
+PartyMon6CurHP: ; ddf1
ds 2
-PartyMon6MaxHP: ; 0xddf3
+PartyMon6MaxHP: ; ddf3
ds 2
-PartyMon6Atk: ; 0xddf5
+PartyMon6Atk: ; ddf5
ds 2
-PartyMon6Def: ; 0xddf7
+PartyMon6Def: ; ddf7
ds 2
-PartyMon6Spd: ; 0xddf9
+PartyMon6Spd: ; ddf9
ds 2
-PartyMon6SpclAtk: ; 0xddfb
+PartyMon6SpclAtk: ; ddfb
ds 2
-PartyMon6SpclDef: ; 0xddfd
+PartyMon6SpclDef: ; ddfd
ds 2
-PartyMon1OT: ; 0xddff
+PartyMon1OT: ; ddff
ds 11
-PartyMon2OT: ; 0xde0a
+PartyMon2OT: ; de0a
ds 11
-PartyMon3OT: ; 0xde15
+PartyMon3OT: ; de15
ds 11
-PartyMon4OT: ; 0xde20
+PartyMon4OT: ; de20
ds 11
-PartyMon5OT: ; 0xde2b
+PartyMon5OT: ; de2b
ds 11
-PartyMon6OT: ; 0xde36
+PartyMon6OT: ; de36
ds 11
-PartyMon1Nickname: ; 0xde41
+PartyMon1Nickname: ; de41
ds 11
-PartyMon2Nickname: ; 0xde4c
+PartyMon2Nickname: ; de4c
ds 11
-PartyMon3Nickname: ; 0xde57
+PartyMon3Nickname: ; de57
ds 11
-PartyMon4Nickname: ; 0xde62
+PartyMon4Nickname: ; de62
ds 11
-PartyMon5Nickname: ; 0xde6d
+PartyMon5Nickname: ; de6d
ds 11
-PartyMon6Nickname: ; 0xde78
+PartyMon6Nickname: ; de78
ds 11
SECTION "Pokedex",BSS[$de99]