shithub: pokecrystal

Download patch

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]