mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-16 18:30:50 +12:00
1203 lines
32 KiB
NASM
1203 lines
32 KiB
NASM
|
||
|
||
SECTION "WRAM Bank 0", WRAM0
|
||
|
||
|
||
SECTION "Sprite State Data", WRAM0[$c100]
|
||
|
||
wSpriteStateData1: ; c100
|
||
; data for all sprites on the current map
|
||
; holds info for 16 sprites with $10 bytes each
|
||
; player sprite is always sprite 0
|
||
; C1x0: picture ID (fixed, loaded at map init)
|
||
; C1x1: movement status (0: uninitialized, 1: ready, 2: delayed, 3: moving)
|
||
; C1x2: sprite image index (changed on update, $ff if off screen, includes facing direction, progress in walking animation and a sprite-specific offset)
|
||
; C1x3: Y screen position delta (-1,0 or 1; added to c1x4 on each walking animation update)
|
||
; C1x4: Y screen position (in pixels, always 4 pixels above grid which makes sprites appear to be in the center of a tile)
|
||
; C1x5: X screen position delta (-1,0 or 1; added to c1x6 on each walking animation update)
|
||
; C1x6: X screen position (in pixels, snaps to grid if not currently walking)
|
||
; C1x7: intra-animation-frame counter (counting upwards to 4 until c1x8 is incremented)
|
||
; C1x8: animation frame counter (increased every 4 updates, hold four states (totalling to 16 walking frames)
|
||
; C1x9: facing direction (0: down, 4: up, 8: left, $c: right)
|
||
; C1xA
|
||
; C1xB
|
||
; C1xC
|
||
; C1xD
|
||
; C1xE
|
||
; C1xF
|
||
ds $10 * $10
|
||
|
||
wSpriteStateData2: ; c200
|
||
; more data for all sprites on the current map
|
||
; holds info for 16 sprites with $10 bytes each
|
||
; player sprite is always sprite 0
|
||
; C2x0: walk animation counter (counting from $10 backwards when moving)
|
||
; C2x1:
|
||
; C2x2: Y displacement (initialized at 8, supposed to keep moving sprites from moving too far, but bugged)
|
||
; C2x3: X displacement (initialized at 8, supposed to keep moving sprites from moving too far, but bugged)
|
||
; C2x4: Y position (in 2x2 tile grid steps, topmost 2x2 tile has value 4)
|
||
; C2x5: X position (in 2x2 tile grid steps, leftmost 2x2 tile has value 4)
|
||
; C2x6: movement byte 1 (determines whether a sprite can move, $ff:not moving, $fe:random movements, others unknown)
|
||
; C2x7: (?) (set to $80 when in grass, else $0; may be used to draw grass above the sprite)
|
||
; C2x8: delay until next movement (counted downwards, status (c1x1) is set to ready if reached 0)
|
||
; C2x9
|
||
; C2xA
|
||
; C2xB
|
||
; C2xC
|
||
; C2xD
|
||
; C2xE: sprite image base offset (in video ram, player always has value 1, used to compute c1x2)
|
||
; C2xF
|
||
ds $10 * $10
|
||
|
||
|
||
wOAMBuffer: ; c300
|
||
; buffer for OAM data. Copied to OAM by DMA
|
||
ds 4 * 40
|
||
|
||
|
||
SECTION "Tile Map", WRAM0[$c3a0]
|
||
|
||
wTileMap: ; c3a0
|
||
; buffer for tiles that are visible on screen (20 columns by 18 rows)
|
||
ds 20 * 18
|
||
|
||
wTileMapBackup: ; c508
|
||
; buffer for temporarily saving and restoring current screen's tiles
|
||
; (e.g. if menus are drawn on top)
|
||
ds 20 * 18
|
||
|
||
; c670
|
||
|
||
|
||
SECTION "Screen Edge Tiles", WRAM0[$cbfc]
|
||
|
||
wScreenEdgeTiles: ; cbfc
|
||
; the tiles of the row or column to be redrawn by RedrawExposedScreenEdge
|
||
ds 20 * 2
|
||
|
||
; coordinates of the position of the cursor for the top menu item (id 0)
|
||
wTopMenuItemY: ; cc24
|
||
ds 1
|
||
wTopMenuItemX: ; cc25
|
||
ds 1
|
||
|
||
wCurrentMenuItem: ; cc26
|
||
; the id of the currently selected menu item
|
||
; the top item has id 0, the one below that has id 1, etc.
|
||
; note that the "top item" means the top item currently visible on the screen
|
||
; add this value to [wListScrollOffset] to get the item's position within the list
|
||
ds 1
|
||
|
||
wTileBehindCursor: ; cc27
|
||
; the tile that was behind the menu cursor's current location
|
||
ds 1
|
||
|
||
wMaxMenuItem: ; cc28
|
||
; id of the bottom menu item
|
||
ds 1
|
||
|
||
wMenuWatchedKeys: ; cc29
|
||
; bit mask of keys that the menu will respond to
|
||
ds 1
|
||
|
||
wLastMenuItem: ; cc2a
|
||
; id of previously selected menu item
|
||
ds 1
|
||
|
||
; cc2b
|
||
|
||
ds 3
|
||
|
||
wPlayerMoveListIndex: ; cc2e
|
||
ds 1
|
||
|
||
wPlayerMonNumber: ; cc2f
|
||
ds 1
|
||
|
||
wMenuCursorLocation: ; cc30
|
||
; the address of the menu cursor's current location within wTileMap
|
||
ds 2
|
||
|
||
ds 2
|
||
|
||
wMenuJoypadPollCount: ; cc34
|
||
; how many times should HandleMenuInput poll the joypad state before it returns?
|
||
ds 1
|
||
|
||
ds 1
|
||
|
||
wListScrollOffset: ; cc36
|
||
; offset of the current top menu item from the beginning of the list
|
||
; keeps track of what section of the list is on screen
|
||
ds 1
|
||
|
||
ds 19
|
||
|
||
wMenuWrappingEnabled: ; cc4a
|
||
; set to 1 if you can go from the bottom to the top or top to bottom of a menu
|
||
; set to 0 if you can't go past the top or bottom of the menu
|
||
ds 1
|
||
|
||
ds 10
|
||
|
||
wTrainerHeaderFlagBit: ; cc55
|
||
ds 1
|
||
|
||
; cc56
|
||
|
||
|
||
SECTION "RLE", WRAM0[$ccd2]
|
||
wRLEByteCount: ; ccd2
|
||
ds 1
|
||
|
||
ds 4
|
||
|
||
; current HP of player and enemy substitutes
|
||
wPlayerSubstituteHP: ; ccd7
|
||
ds 1
|
||
wEnemySubstituteHP: ; ccd8
|
||
ds 1
|
||
|
||
ds 2
|
||
|
||
wMoveMenuType: ; ccdb
|
||
; 0=regular, 1=mimic, 2=above message box (relearn, heal pp..)
|
||
ds 1
|
||
|
||
wPlayerSelectedMove: ; ccdc
|
||
ds 1
|
||
wEnemySelectedMove: ; ccdd
|
||
ds 1
|
||
|
||
ds 1
|
||
|
||
wAICount: ; ccdf
|
||
; number of times remaining that AI action can occur
|
||
ds 1
|
||
|
||
ds 2
|
||
|
||
wEnemyMoveListIndex: ; cce2
|
||
ds 1
|
||
|
||
; cce3
|
||
|
||
|
||
SECTION "Stat Modifiers", WRAM0[$cd1a]
|
||
|
||
; stat modifiers for the player's current pokemon
|
||
; value can range from 1 - 13 ($1 to $D)
|
||
; 7 is normal
|
||
|
||
wPlayerMonStatMods:
|
||
wPlayerMonAttackMod: ; cd1a
|
||
ds 1
|
||
wPlayerMonDefenseMod: ; cd1b
|
||
ds 1
|
||
wPlayerMonSpeedMod: ; cd1c
|
||
ds 1
|
||
wPlayerMonSpecialMod: ; cd1d
|
||
ds 1
|
||
wPlayerMonAccuracyMod: ; cd1e
|
||
ds 1
|
||
wPlayerMonEvasionMod: ; cd1f
|
||
ds 1
|
||
|
||
ds 13
|
||
|
||
wEngagedTrainerClass: ; cd2d
|
||
ds 1
|
||
wEngagedTrainerSet: ; cd2e
|
||
; ds 1
|
||
|
||
; stat modifiers for the enemy's current pokemon
|
||
; value can range from 1 - 13 ($1 to $D)
|
||
; 7 is normal
|
||
|
||
wEnemyMonStatMods:
|
||
wEnemyMonAttackMod: ; cd2e
|
||
ds 1
|
||
wEnemyMonDefenseMod: ; cd2f
|
||
ds 1
|
||
wEnemyMonSpeedMod: ; cd30
|
||
ds 1
|
||
wEnemyMonSpecialMod: ; cd31
|
||
ds 1
|
||
wEnemyMonAccuracyMod: ; cd32
|
||
ds 1
|
||
wEnemyMonEvasionMod: ; cd33
|
||
ds 1
|
||
|
||
ds 9
|
||
|
||
wWhichTrade: ; cd3d
|
||
; which entry from TradeMons to select
|
||
; ds 1
|
||
|
||
wTrainerSpriteOffset: ; cd3d
|
||
ds 1
|
||
wTrainerEngageDistance: ; cd3e
|
||
ds 1
|
||
wTrainerFacingDirection: ; cd3f
|
||
ds 1
|
||
wTrainerScreenY: ; cd40
|
||
ds 1
|
||
wTrainerScreenX: ; cd41
|
||
ds 1
|
||
|
||
ds 30
|
||
|
||
wFlags_0xcd60: ; cd60
|
||
; bit 0: is player engaged by trainer (to avoid being engaged by multiple trainers simultaniously)
|
||
ds 1
|
||
|
||
ds 10
|
||
|
||
wJoypadForbiddenButtonsMask: ; cd6b
|
||
; bit 1 means button presses will be ignored for that button
|
||
ds 1
|
||
|
||
ds 21
|
||
|
||
wTileMapBackup2: ; cd81
|
||
; second buffer for temporarily saving and restoring current screen's tiles (e.g. if menus are drawn on top)
|
||
ds 20 * 18
|
||
|
||
wBuffer: ; cee9
|
||
; used for temporary things
|
||
|
||
wHPBarMaxHP: ; cee9
|
||
ds 2
|
||
wHPBarOldHP: ; ceeb
|
||
ds 2
|
||
wHPBarNewHP: ; ceed
|
||
ds 2
|
||
wHPBarDelta: ; ceef
|
||
ds 1
|
||
|
||
ds 13
|
||
|
||
wHPBarHPDifference: ; cefd
|
||
ds 1
|
||
|
||
ds 9
|
||
|
||
wAnimSoundID: ; cf07
|
||
; sound ID during battle animations
|
||
ds 1
|
||
|
||
ds 12
|
||
|
||
wCurSpriteMovement2: ; cf14
|
||
; movement byte 2 of current sprite
|
||
ds 1
|
||
|
||
ds 74
|
||
|
||
wGymCityName: ; cf5f
|
||
wStringBuffer1: ; cf5f
|
||
ds 16 + 1
|
||
wGymLeaderName: ; cf70
|
||
wStringBuffer2: ; cf70
|
||
ds 16 + 1
|
||
wStringBuffer3: ; cf81
|
||
ds 16 + 1
|
||
|
||
wWhichPokemon: ; cf92
|
||
; which pokemon you selected
|
||
ds 1
|
||
|
||
ds 1
|
||
|
||
wListMenuID: ; cf94
|
||
; ID used by DisplayListMenuID
|
||
ds 1
|
||
|
||
|
||
|
||
W_WALKCOUNTER EQU $CFC5 ; walk animation counter
|
||
|
||
W_CURCHANNELPOINTER EQU $CFC7 ; (the current music channel pointer - $4000) / 3
|
||
|
||
W_ENEMYMOVENUM EQU $CFCC
|
||
W_ENEMYMOVEEFFECT EQU $CFCD
|
||
W_ENEMYMOVEPOWER EQU $CFCE
|
||
W_ENEMYMOVETYPE EQU $CFCF
|
||
W_ENEMYMOVEACCURACY EQU $CFD0
|
||
W_ENEMYMOVEMAXPP EQU $CFD1
|
||
|
||
W_PLAYERMOVENUM EQU $CFD2
|
||
W_PLAYERMOVEEFFECT EQU $CFD3
|
||
W_PLAYERMOVEPOWER EQU $CFD4
|
||
W_PLAYERMOVETYPE EQU $CFD5
|
||
W_PLAYERMOVEACCURACY EQU $CFD6
|
||
W_PLAYERMOVEMAXPP EQU $CFD7
|
||
|
||
W_ENEMYMONID EQU $CFD8
|
||
|
||
W_ENEMYMONNAME EQU $CFDA
|
||
|
||
W_ENEMYMONCURHP EQU $CFE6 ; active opponent's hp (16 bits)
|
||
W_ENEMYMONNUMBER EQU $CFE8 ; active opponent's position in team (0 to 5)
|
||
W_ENEMYMONSTATUS EQU $CFE9 ; active opponent's status condition
|
||
; bit 0 slp
|
||
; bit 1 slp
|
||
; bit 2 slp
|
||
; bit 3 psn
|
||
; bit 4 brn
|
||
; bit 5 frz
|
||
; bit 6 par
|
||
; unused? (XXX confirm)
|
||
W_ENEMYMONTYPES EQU $CFEA
|
||
W_ENEMYMONTYPE1 EQU $CFEA
|
||
W_ENEMYMONTYPE2 EQU $CFEB
|
||
W_ENEMYMONMOVES EQU $CFED
|
||
W_ENEMYMONATKDEFIV EQU $CFF1
|
||
W_ENEMYMONSPDSPCIV EQU $CFF2
|
||
W_ENEMYMONLEVEL EQU $CFF3
|
||
W_ENEMYMONMAXHP EQU $CFF4 ; (16 bits)
|
||
W_ENEMYMONATTACK EQU $CFF6
|
||
W_ENEMYMONDEFENSE EQU $CFF8
|
||
W_ENEMYMONSPEED EQU $CFFA
|
||
W_ENEMYMONSPECIAL EQU $CFFC
|
||
W_ENEMYMONPP EQU $CFFE
|
||
|
||
|
||
SECTION "WRAM Bank 1", WRAMX, BANK[1]
|
||
|
||
W_PLAYERMONNAME EQU $D009
|
||
W_PLAYERMONID EQU $D014
|
||
W_PLAYERMONCURHP EQU $D015 ; active opponent's hp (16 bits)
|
||
W_PLAYERMONSTATUS EQU $D018 ; the status of the player’s current monster
|
||
; bit 0 slp
|
||
; bit 1 slp
|
||
; bit 2 slp
|
||
; bit 3 psn
|
||
; bit 4 brn
|
||
; bit 5 frz
|
||
; bit 6 par
|
||
; unused? (XXX confirm)
|
||
W_PLAYERMONTYPES EQU $D019
|
||
W_PLAYERMONTYPE1 EQU $D019
|
||
W_PLAYERMONTYPE2 EQU $D01A
|
||
W_PLAYERMONMOVES EQU $D01C
|
||
W_PLAYERMONIVS EQU $D020 ; 4x 4 bit: atk, def, spd, spc
|
||
W_PLAYERMONLEVEL EQU $D022
|
||
W_PLAYERMONMAXHP EQU $D023 ; (16 bits)
|
||
W_PLAYERMONATK EQU $D025
|
||
W_PLAYERMONDEF EQU $D027
|
||
W_PLAYERMONSPEED EQU $D029
|
||
W_PLAYERMONSPECIAL EQU $D02B
|
||
W_PLAYERMONPP EQU $D02D
|
||
|
||
W_TRAINERCLASS EQU $D031
|
||
|
||
W_ISINBATTLE EQU $D057 ; no battle, this is 0
|
||
; wild battle, this is 1
|
||
; trainer battle, this is 2
|
||
|
||
W_PLAYERMONSALIVEFLAGS EQU $D058 ; 6 bit array, 1 if player mon is alive
|
||
|
||
W_CUROPPONENT EQU $D059 ; in a wild battle, this is the species of pokemon
|
||
; in a trainer battle, this is the trainer class + $C8
|
||
|
||
W_BATTLETYPE EQU $D05A ; in normal battle, this is 0
|
||
; in old man battle, this is 1
|
||
; in safari battle, this is 2
|
||
|
||
W_LONEATTACKNO EQU $D05C ; which entry in LoneAttacks to use
|
||
W_GYMLEADERNO EQU $D05C ; it's actually the same thing as ^
|
||
W_TRAINERNO EQU $D05D ; which instance of [youngster, lass, etc] is this?
|
||
|
||
W_MOVEMISSED EQU $D05F
|
||
|
||
; not entirely sure that all these bits are 100% correct
|
||
; Battle Status Byte 1
|
||
; bit 0 - bide
|
||
; bit 1 - thrash / petal dance
|
||
; bit 2 - attacking multiple times (e.g. double kick)
|
||
; bit 3 - flinch
|
||
; bit 4 - charging up for attack
|
||
; bit 5 - using multi-turn move (e.g. wrap)
|
||
; bit 6 - invulnerable to normal attack (using fly/dig)
|
||
; bit 7 - confusion
|
||
|
||
; Battle Status Byte 2
|
||
; bit 0 - X Accuracy effect
|
||
; bit 1 - protected by "mist"
|
||
; bit 2 - focus energy effect
|
||
; bit 4 - has a substitute
|
||
; bit 5 - need to recharge
|
||
; bit 6 - rage
|
||
; bit 7 - leech seeded
|
||
|
||
; Battle Status Byte 3
|
||
; bit 0 - toxic
|
||
; bit 1 - light screen
|
||
; bit 2 - reflect
|
||
; bit 3 - tranformed
|
||
|
||
W_PLAYERBATTSTATUS1 EQU $D062
|
||
W_PLAYERBATTSTATUS2 EQU $D063
|
||
W_PLAYERBATTSTATUS3 EQU $D064
|
||
|
||
W_ENEMYBATTSTATUS1 EQU $D067
|
||
W_ENEMYBATTSTATUS2 EQU $D068
|
||
W_ENEMYBATTSTATUS3 EQU $D069
|
||
|
||
W_PLAYERTOXICCOUNTER EQU $D06C
|
||
W_PLAYERDISABLEDMOVE EQU $D06D
|
||
|
||
W_ENEMYTOXICCOUNTER EQU $D071
|
||
W_ENEMYDISABLEDMOVE EQU $D072
|
||
|
||
W_NUMHITS EQU $D074 ; number of hits in attacks like Doubleslap, etc.
|
||
|
||
W_ANIMATIONID EQU $D07C ; ID number of the current battle animation
|
||
|
||
; base coordinates of frame block
|
||
W_BASECOORDX EQU $D081
|
||
W_BASECOORDY EQU $D082
|
||
|
||
W_FBTILECOUNTER EQU $D084 ; counts how many tiles of the current frame block have been drawn
|
||
|
||
W_SUBANIMFRAMEDELAY EQU $D086 ; duration of each frame of the current subanimation in terms of screen refreshes
|
||
W_SUBANIMCOUNTER EQU $D087 ; counts the number of subentries left in the current subanimation
|
||
|
||
W_NUMFBTILES EQU $D089 ; number of tiles in current battle animation frame block
|
||
|
||
W_SUBANIMTRANSFORM EQU $D08B ; controls what transformations are applied to the subanimation
|
||
; 01: flip horizontally and vertically
|
||
; 02: flip horizontally and translate downwards 40 pixels
|
||
; 03: translate base coordinates of frame blocks, but don't change their internal coordinates or flip their tiles
|
||
; 04: reverse the subanimation
|
||
|
||
W_PBSTOREDREGISTERH EQU $D08C
|
||
W_PBSTOREDREGISTERL EQU $D08D
|
||
W_PBSTOREDREGISTERD EQU $D08E
|
||
W_PBSTOREDREGISTERE EQU $D08F
|
||
W_PBSTOREDROMBANK EQU $D092
|
||
|
||
W_SUBANIMADDRPTR EQU $D094 ; the address _of the address_ of the current subanimation entry (2 bytes)
|
||
|
||
W_SUBANIMSUBENTRYADDR EQU $D096 ; the address of the current subentry of the current subanimation (2 bytes)
|
||
|
||
W_FBDESTADDR EQU $D09C ; current destination address in OAM for frame blocks (2 bytes, big endian)
|
||
|
||
W_FBMODE EQU $D09E ; controls how the frame blocks are put together to form frames
|
||
; specifically, after finishing drawing the frame block, the frame block's mode determines what happens
|
||
; 00: clean OAM buffer and delay
|
||
; 02: move onto the next frame block with no delay and no cleaning OAM buffer
|
||
; 03: delay, but don't clean OAM buffer
|
||
; 04: delay, without cleaning OAM buffer, and do not advance [W_FBDESTADDR], so that the next frame block will overwrite this one
|
||
|
||
; sprite data is written column by column, each byte contains 8 columns (one for ech bit)
|
||
; for 2bpp sprites, pairs of two consecutive bytes (i.e. pairs of consecutive rows of sprite data)
|
||
; contain the upper and lower bit of each of the 8 pixels, respectively
|
||
SPRITEBUFFERSIZE EQU $188 ; 7 * 7 (tiles) * 8 (bytes per tile)
|
||
S_SPRITEBUFFER0 EQU $A000 + 0 * SPRITEBUFFERSIZE
|
||
S_SPRITEBUFFER1 EQU $A000 + 1 * SPRITEBUFFERSIZE
|
||
S_SPRITEBUFFER2 EQU $A000 + 2 * SPRITEBUFFERSIZE
|
||
|
||
W_SPRITECURPOSX EQU $D0A1
|
||
W_SPRITECURPOSY EQU $D0A2
|
||
W_SPRITEWITDH EQU $D0A3
|
||
W_SPRITEHEIGHT EQU $D0A4
|
||
W_SPRITEINPUTCURBYTE EQU $D0A5 ; current input byte
|
||
W_SPRITEINPUTBITCOUNTER EQU $D0A6 ; bit offset of last read input bit
|
||
|
||
; determines where in the output byte the two bits are placed. Each byte contains four columns (2bpp data)
|
||
; 3 -> XX000000 1st column
|
||
; 2 -> 00XX0000 2nd column
|
||
; 1 -> 0000XX00 3rd column
|
||
; 0 -> 000000XX 4th column
|
||
W_SPRITEOUTPUTBITOFFSET EQU $D0A7
|
||
|
||
; bit 0 determines used buffer (0 -> $a188, 1 -> $a310)
|
||
; bit 1 loading last sprite chunk? (there are at most 2 chunks per load operation)
|
||
W_SPRITELOADFLAGS EQU $D0A8
|
||
W_SPRITEUNPACKMODE EQU $D0A9
|
||
W_SPRITEFLIPPED EQU $D0AA
|
||
|
||
W_SPRITEINPUTPTR EQU $D0AB ; pointer to next input byte
|
||
W_SPRITEOUTPUTPTR EQU $D0AD ; pointer to current output byte
|
||
W_SPRITEOUTPUTPTRCACHED EQU $D0AF ; used to revert pointer for different bit offsets
|
||
W_SPRITEDECODETABLE0PTR EQU $D0B1 ; pointer to differential decoding table (assuming initial value 0)
|
||
W_SPRITEDECODETABLE1PTR EQU $D0B3 ; pointer to differential decoding table (assuming initial value 1)
|
||
|
||
|
||
; List type
|
||
; used in $D0B6
|
||
W_LISTTYPE EQU $D0B6
|
||
|
||
W_MONHEADER EQU $d0b8
|
||
W_MONHDEXNUM EQU $d0b8
|
||
W_MONHBASESTATS EQU $d0b9
|
||
;W_MONHBASEHP EQU $d0b9
|
||
;W_MONHBASEATTACK EQU $d0ba
|
||
;W_MONHBASEDEFENSE EQU $d0bb
|
||
W_MONHBASESPEED EQU $d0bc
|
||
;W_MONHBASESPECIAL EQU $d0bd
|
||
W_MONHTYPES EQU $d0be
|
||
W_MONHTYPE1 EQU $d0be
|
||
W_MONHTYPE2 EQU $d0bf
|
||
W_MONHCATCHRATE EQU $d0c0
|
||
;W_MONHBASEXP EQU $d0c1
|
||
W_MONHSPRITEDIM EQU $d0c2
|
||
W_MONHFRONTSPRITE EQU $d0c3
|
||
W_MONHBACKSPRITE EQU $d0c5
|
||
W_MONHMOVES EQU $d0c7
|
||
;W_MONHMOVE1 EQU $d0c7
|
||
;W_MONHMOVE2 EQU $d0c8
|
||
;W_MONHMOVE3 EQU $d0c9
|
||
;W_MONHMOVE4 EQU $d0ca
|
||
W_MONHGROWTHRATE EQU $d0cb
|
||
W_MONHLEARNSET EQU $d0cc ; bit field, 7 bytes
|
||
;W_MONHPADDING EQU $d0d7
|
||
|
||
|
||
|
||
W_DAMAGE EQU $D0D7
|
||
|
||
|
||
W_CURENEMYLVL EQU $D127
|
||
|
||
W_ISLINKBATTLE EQU $D12B
|
||
|
||
W_PRIZE1 EQU $D13D
|
||
W_PRIZE2 EQU $D13E
|
||
W_PRIZE3 EQU $D13F
|
||
|
||
W_PLAYERNAME EQU $D158 ; 11 characters, including null
|
||
|
||
W_NUMINPARTY EQU $D163
|
||
|
||
W_PARTYMON1 EQU $D164
|
||
W_PARTYMON2 EQU $D165
|
||
W_PARTYMON3 EQU $D166
|
||
W_PARTYMON4 EQU $D167
|
||
W_PARTYMON5 EQU $D168
|
||
W_PARTYMON6 EQU $D169
|
||
W_PARTYMONEND EQU $D16A
|
||
|
||
W_PARTYMON1DATA EQU $D16B
|
||
W_PARTYMON1_NUM EQU $D16B
|
||
W_PARTYMON1_HP EQU $D16C
|
||
W_PARTYMON1_BOXLEVEL EQU $D16E
|
||
W_PARTYMON1_STATUS EQU $D16F
|
||
W_PARTYMON1_TYPE1 EQU $D170
|
||
W_PARTYMON1_TYPE2 EQU $D171
|
||
W_PARTYMON1_CRATE EQU $D172
|
||
W_PARTYMON1_MOVE1 EQU $D173
|
||
W_PARTYMON1_MOVE2 EQU $D174
|
||
W_PARTYMON1_MOVE3 EQU $D175
|
||
W_PARTYMON1_MOVE4 EQU $D176
|
||
W_PARTYMON1_OTID EQU $D177
|
||
W_PARTYMON1_EXP EQU $D179
|
||
W_PARTYMON1_EVHP EQU $D17C
|
||
W_PARTYMON1_EVATTACK EQU $D17E
|
||
W_PARTYMON1_EVDEFENSE EQU $D180
|
||
W_PARTYMON1_EVSPEED EQU $D182
|
||
W_PARTYMON1_EVSECIAL EQU $D184
|
||
W_PARTYMON1_IV EQU $D186
|
||
W_PARTYMON1_MOVE1PP EQU $D188
|
||
W_PARTYMON1_MOVE2PP EQU $D189
|
||
W_PARTYMON1_MOVE3PP EQU $D18A
|
||
W_PARTYMON1_MOVE4PP EQU $D18B
|
||
W_PARTYMON1_LEVEL EQU $D18C
|
||
W_PARTYMON1_MAXHP EQU $D18D
|
||
W_PARTYMON1_ATACK EQU $D18F
|
||
W_PARTYMON1_DEFENSE EQU $D191
|
||
W_PARTYMON1_SPEED EQU $D193
|
||
W_PARTYMON1_SPECIAL EQU $D195
|
||
|
||
W_PARTYMON2DATA EQU $D197
|
||
W_PARTYMON2_NUM EQU $D197
|
||
W_PARTYMON2_HP EQU $D198
|
||
W_PARTYMON2_BOXLEVEL EQU $D19A
|
||
W_PARTYMON2_STATUS EQU $D19B
|
||
W_PARTYMON2_TYPE1 EQU $D19C
|
||
W_PARTYMON2_TYPE2 EQU $D19D
|
||
W_PARTYMON2_CRATE EQU $D19E
|
||
W_PARTYMON2_MOVE1 EQU $D19F
|
||
W_PARTYMON2_MOVE2 EQU $D1A0
|
||
W_PARTYMON2_MOVE3 EQU $D1A1
|
||
W_PARTYMON2_MOVE4 EQU $D1A2
|
||
W_PARTYMON2_OTID EQU $D1A3
|
||
W_PARTYMON2_EXP EQU $D1A5
|
||
W_PARTYMON2_EVHP EQU $D1A8
|
||
W_PARTYMON2_EVATTACK EQU $D1AA
|
||
W_PARTYMON2_EVDEFENSE EQU $D1AC
|
||
W_PARTYMON2_EVSPEED EQU $D1AE
|
||
W_PARTYMON2_EVSECIAL EQU $D1B0
|
||
W_PARTYMON2_IV EQU $D1B2
|
||
W_PARTYMON2_MOVE1PP EQU $D1B4
|
||
W_PARTYMON2_MOVE2PP EQU $D1B5
|
||
W_PARTYMON2_MOVE3PP EQU $D1B6
|
||
W_PARTYMON2_MOVE4PP EQU $D1B7
|
||
W_PARTYMON2_LEVEL EQU $D1B8
|
||
W_PARTYMON2_MAXHP EQU $D1B9
|
||
W_PARTYMON2_ATACK EQU $D1BB
|
||
W_PARTYMON2_DEFENSE EQU $D1BD
|
||
W_PARTYMON2_SPEED EQU $D1BF
|
||
W_PARTYMON2_SPECIAL EQU $D1C1
|
||
|
||
W_PARTYMON3DATA EQU $D1C3
|
||
W_PARTYMON3_NUM EQU $D1C3
|
||
W_PARTYMON3_HP EQU $D1C4
|
||
W_PARTYMON3_BOXLEVEL EQU $D1C6
|
||
W_PARTYMON3_STATUS EQU $D1C7
|
||
W_PARTYMON3_TYPE1 EQU $D1C8
|
||
W_PARTYMON3_TYPE2 EQU $D1C9
|
||
W_PARTYMON3_CRATE EQU $D1CA
|
||
W_PARTYMON3_MOVE1 EQU $D1CB
|
||
W_PARTYMON3_MOVE2 EQU $D1CC
|
||
W_PARTYMON3_MOVE3 EQU $D1CD
|
||
W_PARTYMON3_MOVE4 EQU $D1CE
|
||
W_PARTYMON3_OTID EQU $D1CF
|
||
W_PARTYMON3_EXP EQU $D1D1
|
||
W_PARTYMON3_EVHP EQU $D1D4
|
||
W_PARTYMON3_EVATTACK EQU $D1D6
|
||
W_PARTYMON3_EVDEFENSE EQU $D1D8
|
||
W_PARTYMON3_EVSPEED EQU $D1DA
|
||
W_PARTYMON3_EVSECIAL EQU $D1DC
|
||
W_PARTYMON3_IV EQU $D1DE
|
||
W_PARTYMON3_MOVE1PP EQU $D1E0
|
||
W_PARTYMON3_MOVE2PP EQU $D1E1
|
||
W_PARTYMON3_MOVE3PP EQU $D1E2
|
||
W_PARTYMON3_MOVE4PP EQU $D1E3
|
||
W_PARTYMON3_LEVEL EQU $D1E4
|
||
W_PARTYMON3_MAXHP EQU $D1E5
|
||
W_PARTYMON3_ATACK EQU $D1E7
|
||
W_PARTYMON3_DEFENSE EQU $D1E9
|
||
W_PARTYMON3_SPEED EQU $D1EB
|
||
W_PARTYMON3_SPECIAL EQU $D1ED
|
||
|
||
W_PARTYMON4DATA EQU $D1EF
|
||
W_PARTYMON4_NUM EQU $D1EF
|
||
W_PARTYMON4_HP EQU $D1F0
|
||
W_PARTYMON4_BOXLEVEL EQU $D1F2
|
||
W_PARTYMON4_STATUS EQU $D1F3
|
||
W_PARTYMON4_TYPE1 EQU $D1F4
|
||
W_PARTYMON4_TYPE2 EQU $D1F5
|
||
W_PARTYMON4_CRATE EQU $D1F6
|
||
W_PARTYMON4_MOVE1 EQU $D1F7
|
||
W_PARTYMON4_MOVE2 EQU $D1F8
|
||
W_PARTYMON4_MOVE3 EQU $D1F9
|
||
W_PARTYMON4_MOVE4 EQU $D1FA
|
||
W_PARTYMON4_OTID EQU $D1FB
|
||
W_PARTYMON4_EXP EQU $D1FD
|
||
W_PARTYMON4_EVHP EQU $D200
|
||
W_PARTYMON4_EVATTACK EQU $D202
|
||
W_PARTYMON4_EVDEFENSE EQU $D204
|
||
W_PARTYMON4_EVSPEED EQU $D206
|
||
W_PARTYMON4_EVSECIAL EQU $D208
|
||
W_PARTYMON4_IV EQU $D20A
|
||
W_PARTYMON4_MOVE1PP EQU $D20C
|
||
W_PARTYMON4_MOVE2PP EQU $D20D
|
||
W_PARTYMON4_MOVE3PP EQU $D20E
|
||
W_PARTYMON4_MOVE4PP EQU $D20F
|
||
W_PARTYMON4_LEVEL EQU $D210
|
||
W_PARTYMON4_MAXHP EQU $D211
|
||
W_PARTYMON4_ATACK EQU $D213
|
||
W_PARTYMON4_DEFENSE EQU $D215
|
||
W_PARTYMON4_SPEED EQU $D217
|
||
W_PARTYMON4_SPECIAL EQU $D219
|
||
|
||
W_PARTYMON5DATA EQU $D21B
|
||
W_PARTYMON5_NUM EQU $D21B
|
||
W_PARTYMON5_HP EQU $D21C
|
||
W_PARTYMON5_BOXLEVEL EQU $D21E
|
||
W_PARTYMON5_STATUS EQU $D21F
|
||
W_PARTYMON5_TYPE1 EQU $D220
|
||
W_PARTYMON5_TYPE2 EQU $D221
|
||
W_PARTYMON5_CRATE EQU $D222
|
||
W_PARTYMON5_MOVE1 EQU $D223
|
||
W_PARTYMON5_MOVE2 EQU $D224
|
||
W_PARTYMON5_MOVE3 EQU $D225
|
||
W_PARTYMON5_MOVE4 EQU $D226
|
||
W_PARTYMON5_OTID EQU $D227
|
||
W_PARTYMON5_EXP EQU $D229
|
||
W_PARTYMON5_EVHP EQU $D22C
|
||
W_PARTYMON5_EVATTACK EQU $D22E
|
||
W_PARTYMON5_EVDEFENSE EQU $D230
|
||
W_PARTYMON5_EVSPEED EQU $D232
|
||
W_PARTYMON5_EVSECIAL EQU $D234
|
||
W_PARTYMON5_IV EQU $D236
|
||
W_PARTYMON5_MOVE1PP EQU $D238
|
||
W_PARTYMON5_MOVE2PP EQU $D239
|
||
W_PARTYMON5_MOVE3PP EQU $D23A
|
||
W_PARTYMON5_MOVE4PP EQU $D23B
|
||
W_PARTYMON5_LEVEL EQU $D23C
|
||
W_PARTYMON5_MAXHP EQU $D23D
|
||
W_PARTYMON5_ATACK EQU $D23F
|
||
W_PARTYMON5_DEFENSE EQU $D241
|
||
W_PARTYMON5_SPEED EQU $D243
|
||
W_PARTYMON5_SPECIAL EQU $D245
|
||
|
||
W_PARTYMON6DATA EQU $D247
|
||
W_PARTYMON6_NUM EQU $D247
|
||
W_PARTYMON6_HP EQU $D248
|
||
W_PARTYMON6_BOXLEVEL EQU $D24A
|
||
W_PARTYMON6_STATUS EQU $D24B
|
||
W_PARTYMON6_TYPE1 EQU $D24C
|
||
W_PARTYMON6_TYPE2 EQU $D24D
|
||
W_PARTYMON6_CRATE EQU $D24E
|
||
W_PARTYMON6_MOVE1 EQU $D24F
|
||
W_PARTYMON6_MOVE2 EQU $D250
|
||
W_PARTYMON6_MOVE3 EQU $D251
|
||
W_PARTYMON6_MOVE4 EQU $D252
|
||
W_PARTYMON6_OTID EQU $D253
|
||
W_PARTYMON6_EXP EQU $D255
|
||
W_PARTYMON6_EVHP EQU $D258
|
||
W_PARTYMON6_EVATTACK EQU $D25A
|
||
W_PARTYMON6_EVDEFENSE EQU $D25C
|
||
W_PARTYMON6_EVSPEED EQU $D25E
|
||
W_PARTYMON6_EVSECIAL EQU $D260
|
||
W_PARTYMON6_IV EQU $D262
|
||
W_PARTYMON6_MOVE1PP EQU $D264
|
||
W_PARTYMON6_MOVE2PP EQU $D265
|
||
W_PARTYMON6_MOVE3PP EQU $D266
|
||
W_PARTYMON6_MOVE4PP EQU $D267
|
||
W_PARTYMON6_LEVEL EQU $D268
|
||
W_PARTYMON6_MAXHP EQU $D269
|
||
W_PARTYMON6_ATACK EQU $D26B
|
||
W_PARTYMON6_DEFENSE EQU $D26D
|
||
W_PARTYMON6_SPEED EQU $D26F
|
||
W_PARTYMON6_SPECIAL EQU $D271
|
||
|
||
W_PARTYMON1OT EQU $D273
|
||
W_PARTYMON2OT EQU $D27E
|
||
W_PARTYMON3OT EQU $D289
|
||
W_PARTYMON4OT EQU $D294
|
||
W_PARTYMON5OT EQU $D29F
|
||
W_PARTYMON6OT EQU $D2AA
|
||
|
||
W_PARTYMON1NAME EQU $D2B5
|
||
W_PARTYMON2NAME EQU $D2C0
|
||
W_PARTYMON3NAME EQU $D2CB
|
||
W_PARTYMON4NAME EQU $D2D6
|
||
W_PARTYMON5NAME EQU $D2E1
|
||
W_PARTYMON6NAME EQU $D2EC
|
||
|
||
|
||
SECTION "Pokedex", WRAMX[$d2f7], BANK[1]
|
||
|
||
wPokedexOwned: ; d2f7
|
||
ds (150 / 8) + 1
|
||
wPokedexOwnedEnd:
|
||
|
||
wPokedexSeen: ; d30a
|
||
ds (150 / 8) + 1
|
||
wPokedexSeenEnd:
|
||
|
||
|
||
;number of items in bag
|
||
W_NUMBAGITEMS EQU $D31D
|
||
; BAGITEM01 is an item id
|
||
; BAGCOUNT01 is how many of this item
|
||
W_BAGITEM01 EQU $D31E
|
||
W_BAGITEM01QTY EQU $D31F
|
||
W_BAGITEM02 EQU $D320
|
||
W_BAGITEM02QTY EQU $D321
|
||
W_BAGITEM03 EQU $D322
|
||
W_BAGITEM03QTY EQU $D323
|
||
W_BAGITEM04 EQU $D324
|
||
W_BAGITEM04QTY EQU $D325
|
||
W_BAGITEM05 EQU $D326
|
||
W_BAGITEM05QTY EQU $D327
|
||
W_BAGITEM06 EQU $D328
|
||
W_BAGITEM06QTY EQU $D329
|
||
W_BAGITEM07 EQU $D32A
|
||
W_BAGITEM07QTY EQU $D32B
|
||
W_BAGITEM08 EQU $D32C
|
||
W_BAGITEM08QTY EQU $D32D
|
||
W_BAGITEM09 EQU $D32E
|
||
W_BAGITEM09QTY EQU $D32F
|
||
W_BAGITEM10 EQU $D330
|
||
W_BAGITEM10QTY EQU $D331
|
||
W_BAGITEM11 EQU $D332
|
||
W_BAGITEM11QTY EQU $D333
|
||
W_BAGITEM12 EQU $D334
|
||
W_BAGITEM12QTY EQU $D335
|
||
W_BAGITEM13 EQU $D336
|
||
W_BAGITEM13QTY EQU $D337
|
||
W_BAGITEM14 EQU $D338
|
||
W_BAGITEM14QTY EQU $D339
|
||
W_BAGITEM15 EQU $D33A
|
||
W_BAGITEM15QTY EQU $D33B
|
||
W_BAGITEM16 EQU $D33C
|
||
W_BAGITEM16QTY EQU $D33D
|
||
W_BAGITEM17 EQU $D33E
|
||
W_BAGITEM17QTY EQU $D33F
|
||
W_BAGITEM18 EQU $D340
|
||
W_BAGITEM18QTY EQU $D341
|
||
W_BAGITEM19 EQU $D342
|
||
W_BAGITEM19QTY EQU $D343
|
||
W_BAGITEM20 EQU $D344
|
||
W_BAGITEM20QTY EQU $D345
|
||
|
||
; money is in decimal
|
||
W_PLAYERMONEY3 EQU $D347
|
||
W_PLAYERMONEY2 EQU $D348
|
||
W_PLAYERMONEY1 EQU $D349
|
||
|
||
W_RIVALNAME EQU $D34A ; 11 characters, including null
|
||
|
||
W_OPTIONS EQU $D355
|
||
; bit 7 = battle animation
|
||
; 0: On
|
||
; 1: Off
|
||
; bit 6 = battle style
|
||
; 0: Shift
|
||
; 1: Set
|
||
; bits 0-3 = text speed (number of frames to delay after printing a letter)
|
||
; 1: Fast
|
||
; 3: Medium
|
||
; 5: Slow
|
||
|
||
W_OBTAINEDBADGES EQU $D356
|
||
|
||
W_PLAYERIDHI EQU $D359
|
||
W_PLAYERIDLO EQU $D35A
|
||
|
||
W_CURMAP EQU $D35E
|
||
|
||
W_YCOORD EQU $D361 ; player’s position on the current map
|
||
W_XCOORD EQU $D362
|
||
W_YBLOCKCOORD EQU $D363 ; player's y position (by block)
|
||
W_XBLOCKCOORD EQU $D364
|
||
|
||
W_CURMAPTILESET EQU $D367
|
||
W_CURMAPHEIGHT EQU $D368 ; blocks
|
||
W_CURMAPWIDTH EQU $D369 ; blocks
|
||
|
||
W_MAPDATAPTR EQU $D36A
|
||
W_MAPTEXTPTR EQU $D36C
|
||
W_MAPSCRIPTPTR EQU $D36E
|
||
W_MAPCONNECTIONS EQU $D370 ; connection byte
|
||
W_MAPCONN1PTR EQU $D371
|
||
W_MAPCONN2PTR EQU $D37C
|
||
W_MAPCONN3PTR EQU $D387
|
||
W_MAPCONN4PTR EQU $D392
|
||
|
||
W_SPRITESET EQU $D39D ; sprite set for the current map (11 sprite picture ID's)
|
||
W_SPRITESETID EQU $D3A8 ; sprite set ID for the current map
|
||
|
||
W_NUMSPRITES EQU $D4E1 ; number of sprites on the current map
|
||
|
||
; two bytes per sprite (movement byte 2 , text ID)
|
||
W_MAPSPRITEDATA EQU $D4e4
|
||
|
||
; two bytes per sprite (trainer class/item ID , trainer set ID)
|
||
W_MAPSPRITEEXTRADATA EQU $D504
|
||
|
||
W_TILESETBANK EQU $D52B
|
||
W_TILESETBLOCKSPTR EQU $D52C ; maps blocks (4x4 tiles) to it's tiles
|
||
W_TILESETGFXPTR EQU $D52E
|
||
W_TILESETCOLLISIONPTR EQU $D530 ; list of all walkable tiles
|
||
W_TILESETTALKINGOVERTILES EQU $D532 ; 3 bytes
|
||
W_GRASSTILE EQU $D535
|
||
|
||
;number of items in box
|
||
W_NUMBOXITEMS EQU $D53A
|
||
; BOXITEM01 is an item id
|
||
; BOXITEM01QTY is how many of this item
|
||
W_BOXITEM01 EQU $D53B
|
||
W_BOXITEM01QTY EQU $D53C
|
||
W_BOXITEM02 EQU $D53D
|
||
W_BOXITEM02QTY EQU $D53E
|
||
W_BOXITEM03 EQU $D53F
|
||
W_BOXITEM03QTY EQU $D540
|
||
W_BOXITEM04 EQU $D541
|
||
W_BOXITEM04QTY EQU $D542
|
||
W_BOXITEM05 EQU $D543
|
||
W_BOXITEM05QTY EQU $D544
|
||
W_BOXITEM06 EQU $D545
|
||
W_BOXITEM06QTY EQU $D546
|
||
W_BOXITEM07 EQU $D547
|
||
W_BOXITEM07QTY EQU $D548
|
||
W_BOXITEM08 EQU $D549
|
||
W_BOXITEM08QTY EQU $D54A
|
||
W_BOXITEM09 EQU $D54B
|
||
W_BOXITEM09QTY EQU $D54C
|
||
W_BOXITEM10 EQU $D54D
|
||
W_BOXITEM10QTY EQU $D54E
|
||
W_BOXITEM11 EQU $D54F
|
||
W_BOXITEM11QTY EQU $D550
|
||
W_BOXITEM12 EQU $D551
|
||
W_BOXITEM12QTY EQU $D552
|
||
W_BOXITEM13 EQU $D553
|
||
W_BOXITEM13QTY EQU $D554
|
||
W_BOXITEM14 EQU $D555
|
||
W_BOXITEM14QTY EQU $D556
|
||
W_BOXITEM15 EQU $D557
|
||
W_BOXITEM15QTY EQU $D558
|
||
W_BOXITEM16 EQU $D559
|
||
W_BOXITEM16QTY EQU $D55A
|
||
W_BOXITEM17 EQU $D55B
|
||
W_BOXITEM17QTY EQU $D55C
|
||
W_BOXITEM18 EQU $D55D
|
||
W_BOXITEM18QTY EQU $D55E
|
||
W_BOXITEM19 EQU $D55F
|
||
W_BOXITEM19QTY EQU $D560
|
||
W_BOXITEM20 EQU $D561
|
||
W_BOXITEM20QTY EQU $D562
|
||
W_BOXITEM21 EQU $D563
|
||
W_BOXITEM21QTY EQU $D564
|
||
W_BOXITEM22 EQU $D565
|
||
W_BOXITEM22QTY EQU $D566
|
||
W_BOXITEM23 EQU $D567
|
||
W_BOXITEM23QTY EQU $D568
|
||
W_BOXITEM24 EQU $D569
|
||
W_BOXITEM24QTY EQU $D56A
|
||
W_BOXITEM25 EQU $D56B
|
||
W_BOXITEM25QTY EQU $D56C
|
||
W_BOXITEM26 EQU $D56D
|
||
W_BOXITEM26QTY EQU $D56E
|
||
W_BOXITEM27 EQU $D56F
|
||
W_BOXITEM27QTY EQU $D570
|
||
W_BOXITEM28 EQU $D571
|
||
W_BOXITEM28QTY EQU $D572
|
||
W_BOXITEM29 EQU $D573
|
||
W_BOXITEM29QTY EQU $D574
|
||
W_BOXITEM30 EQU $D575
|
||
W_BOXITEM30QTY EQU $D576
|
||
W_BOXITEM31 EQU $D577
|
||
W_BOXITEM31QTY EQU $D578
|
||
W_BOXITEM32 EQU $D579
|
||
W_BOXITEM32QTY EQU $D57A
|
||
W_BOXITEM33 EQU $D57B
|
||
W_BOXITEM33QTY EQU $D57C
|
||
W_BOXITEM34 EQU $D57D
|
||
W_BOXITEM34QTY EQU $D57E
|
||
W_BOXITEM35 EQU $D57F
|
||
W_BOXITEM35QTY EQU $D580
|
||
W_BOXITEM36 EQU $D581
|
||
W_BOXITEM36QTY EQU $D582
|
||
W_BOXITEM37 EQU $D583
|
||
W_BOXITEM37QTY EQU $D584
|
||
W_BOXITEM38 EQU $D585
|
||
W_BOXITEM38QTY EQU $D586
|
||
W_BOXITEM39 EQU $D587
|
||
W_BOXITEM39QTY EQU $D588
|
||
W_BOXITEM40 EQU $D589
|
||
W_BOXITEM40QTY EQU $D58A
|
||
W_BOXITEM41 EQU $D58B
|
||
W_BOXITEM41QTY EQU $D58C
|
||
W_BOXITEM42 EQU $D58D
|
||
W_BOXITEM42QTY EQU $D58E
|
||
W_BOXITEM43 EQU $D58F
|
||
W_BOXITEM43QTY EQU $D590
|
||
W_BOXITEM44 EQU $D591
|
||
W_BOXITEM44QTY EQU $D592
|
||
W_BOXITEM45 EQU $D593
|
||
W_BOXITEM45QTY EQU $D594
|
||
W_BOXITEM46 EQU $D595
|
||
W_BOXITEM46QTY EQU $D596
|
||
W_BOXITEM47 EQU $D597
|
||
W_BOXITEM47QTY EQU $D598
|
||
W_BOXITEM48 EQU $D599
|
||
W_BOXITEM48QTY EQU $D59A
|
||
W_BOXITEM49 EQU $D59B
|
||
W_BOXITEM49QTY EQU $D59C
|
||
W_BOXITEM50 EQU $D59D
|
||
W_BOXITEM50QTY EQU $D59E
|
||
;box end of list $D59F
|
||
|
||
; coins are in decimal
|
||
W_PLAYERCOINS1 EQU $D5A4
|
||
W_PLAYERCOINS2 EQU $D5A5
|
||
W_MISSABLEOBJECTFLAGS EQU $D5A6 ; $20 bytes, bit array of missable objects. bit 1 = removed
|
||
|
||
; each entry consists of 2 bytes
|
||
; * the sprite ID (depending on the current map)
|
||
; * the missable object index (global, used for W_MISSABLEOBJECTFLAGS)
|
||
; terminated with $FF
|
||
W_MISSABLEOBJECTLIST EQU $D5CE
|
||
|
||
W_GAMEPROGRESSFLAGS EQU $D5F0 ; $c8 bytes
|
||
W_OAKSLABCURSCRIPT EQU $D5F0
|
||
W_PALLETTOWNCURSCRIPT EQU $D5F1
|
||
|
||
W_BLUESHOUSECURSCRIPT EQU $D5F3
|
||
W_VIRIDIANCITYCURSCRIPT EQU $D5F4
|
||
|
||
W_PEWTERCITYCURSCRIPT EQU $D5F7
|
||
W_ROUTE3CURSCRIPT EQU $D5F8
|
||
W_ROUTE4CURSCRIPT EQU $D5F9
|
||
|
||
W_VIRIDIANGYMCURSCRIPT EQU $D5FB
|
||
W_PEWTERGYMCURSCRIPT EQU $D5FC
|
||
W_CERULEANGYMCURSCRIPT EQU $D5FD
|
||
W_VERMILIONGYMCURSCRIPT EQU $D5FE
|
||
W_CELADONGYMCURSCRIPT EQU $D5FF
|
||
W_ROUTE6CURSCRIPT EQU $D600
|
||
W_ROUTE8CURSCRIPT EQU $D601
|
||
W_ROUTE24CURSCRIPT EQU $D602
|
||
W_ROUTE25CURSCRIPT EQU $D603
|
||
W_ROUTE9CURSCRIPT EQU $D604
|
||
W_ROUTE10CURSCRIPT EQU $D605
|
||
W_MTMOON1CURSCRIPT EQU $D606
|
||
W_MTMOON3CURSCRIPT EQU $D607
|
||
W_SSANNE8CURSCRIPT EQU $D608
|
||
W_SSANNE9CURSCRIPT EQU $D609
|
||
W_ROUTE22CURSCRIPT EQU $D60A
|
||
|
||
W_REDSHOUSE2CURSCRIPT EQU $D60C
|
||
W_VIRIDIANMARKETCURSCRIPT EQU $D60D
|
||
W_ROUTE22GATECURSCRIPT EQU $D60E
|
||
W_CERULEANCITYCURSCRIPT EQU $D60F
|
||
|
||
W_SSANNE5CURSCRIPT EQU $D617
|
||
W_VIRIDIANFORESTCURSCRIPT EQU $D618
|
||
W_MUSEUMF1CURSCRIPT EQU $D619
|
||
W_ROUTE13CURSCRIPT EQU $D61A
|
||
W_ROUTE14CURSCRIPT EQU $D61B
|
||
W_ROUTE17CURSCRIPT EQU $D61C
|
||
W_ROUTE19CURSCRIPT EQU $D61D
|
||
W_ROUTE21CURSCRIPT EQU $D61E
|
||
W_SAFARIZONEENTRANCECURSCRIPT EQU $D61F
|
||
W_ROCKTUNNEL2CURSCRIPT EQU $D620
|
||
W_ROCKTUNNEL1CURSCRIPT EQU $D621
|
||
|
||
W_ROUTE11CURSCRIPT EQU $D623
|
||
W_ROUTE12CURSCRIPT EQU $D624
|
||
W_ROUTE15CURSCRIPT EQU $D625
|
||
W_ROUTE16CURSCRIPT EQU $D626
|
||
W_ROUTE18CURSCRIPT EQU $D627
|
||
W_ROUTE20CURSCRIPT EQU $D628
|
||
W_SSANNE10CURSCRIPT EQU $D629
|
||
W_VERMILIONCITYCURSCRIPT EQU $D62A
|
||
W_POKEMONTOWER2CURSCRIPT EQU $D62B
|
||
W_POKEMONTOWER3CURSCRIPT EQU $D62C
|
||
W_POKEMONTOWER4CURSCRIPT EQU $D62D
|
||
W_POKEMONTOWER5CURSCRIPT EQU $D62E
|
||
W_POKEMONTOWER6CURSCRIPT EQU $D62F
|
||
W_POKEMONTOWER7CURSCRIPT EQU $D630
|
||
W_ROCKETHIDEOUT1CURSCRIPT EQU $D631
|
||
W_ROCKETHIDEOUT2CURSCRIPT EQU $D632
|
||
W_ROCKETHIDEOUT3CURSCRIPT EQU $D633
|
||
W_ROCKETHIDEOUT4CURSCRIPT EQU $D634
|
||
|
||
W_ROUTE6GATECURSCRIPT EQU $D636
|
||
W_ROUTE8GATECURSCRIPT EQU $D637
|
||
|
||
W_CINNABARISLANDCURSCRIPT EQU $D639
|
||
W_MANSION1CURSCRIPT EQU $D63A
|
||
|
||
W_MANSION2CURSCRIPT EQU $D63C
|
||
W_MANSION3CURSCRIPT EQU $D63D
|
||
W_MANSION4CURSCRIPT EQU $D63E
|
||
W_VICTORYROAD2CURSCRIPT EQU $D63F
|
||
W_VICTORYROAD3CURSCRIPT EQU $D640
|
||
|
||
W_FIGHTINGDOJOCURSCRIPT EQU $D642
|
||
W_SILPHCO2CURSCRIPT EQU $D643
|
||
W_SILPHCO3CURSCRIPT EQU $D644
|
||
W_SILPHCO4CURSCRIPT EQU $D645
|
||
W_SILPHCO5CURSCRIPT EQU $D646
|
||
W_SILPHCO6CURSCRIPT EQU $D647
|
||
W_SILPHCO7CURSCRIPT EQU $D648
|
||
W_SILPHCO8CURSCRIPT EQU $D649
|
||
W_SILPHCO9CURSCRIPT EQU $D64A
|
||
W_HALLOFFAMEROOMCURSCRIPT EQU $D64B
|
||
W_GARYCURSCRIPT EQU $D64C
|
||
W_LORELEICURSCRIPT EQU $D64D
|
||
W_BRUNOCURSCRIPT EQU $D64E
|
||
W_AGATHACURSCRIPT EQU $D64F
|
||
W_UNKNOWNDUNGEON3CURSCRIPT EQU $D650
|
||
W_VICTORYROAD1CURSCRIPT EQU $D651
|
||
|
||
W_LANCECURSCRIPT EQU $D653
|
||
|
||
W_SILPHCO10CURSCRIPT EQU $D658
|
||
W_SILPHCO11CURSCRIPT EQU $D659
|
||
|
||
W_FUCHSIAGYMCURSCRIPT EQU $D65B
|
||
W_SAFFRONGYMCURSCRIPT EQU $D65C
|
||
|
||
W_CINNABARGYMCURSCRIPT EQU $D65E
|
||
W_CELADONGAMECORNERCURSCRIPT EQU $D65F
|
||
W_ROUTE16GATECURSCRIPT EQU $D660
|
||
W_BILLSHOUSECURSCRIPT EQU $D661
|
||
W_ROUTE5GATECURSCRIPT EQU $D662
|
||
W_POWERPLANTCURSCRIPT EQU $D663 ; overload
|
||
W_ROUTE7GATECURSCRIPT EQU $D663 ; overload
|
||
|
||
W_SSANNE2CURSCRIPT EQU $D665
|
||
W_SEAFOAMISLANDS4CURSCRIPT EQU $D666
|
||
W_ROUTE23CURSCRIPT EQU $D667
|
||
W_SEAFOAMISLANDS5CURSCRIPT EQU $D668
|
||
W_ROUTE18GATECURSCRIPT EQU $D669
|
||
|
||
W_TOWNVISITEDFLAG EQU $D70B ; 2 bytes bit array, 1 means visited
|
||
|
||
W_SAFARITIMER1 EQU $D70D ; use 01 for maximum
|
||
W_SAFARITIMER2 EQU $D70E ; use F4 for maximum
|
||
W_FOSSILITEM EQU $D70F ; item given to cinnabar lab
|
||
W_FOSSILMON EQU $D710 ; mon that will result from the item
|
||
|
||
W_ENEMYMONORTRAINERCLASS EQU $D713 ; trainer classes start at $c8
|
||
|
||
W_RIVALSTARTER EQU $D715
|
||
|
||
W_PLAYERSTARTER EQU $D717
|
||
|
||
; bit 4: use variable [W_CURMAPSCRIPT] instead of the provided index for next frame's map script (used to start battle when talking to trainers)
|
||
W_FLAGS_D733 EQU $D733
|
||
|
||
|
||
W_GRASSRATE EQU $D887
|
||
W_GRASSMONS EQU $D888
|
||
W_WATERRATE EQU $D8A4 ; OVERLOADED
|
||
W_WATERMONS EQU $D8A5 ; OVERLOADED
|
||
|
||
W_ENEMYMONCOUNT EQU $D89C
|
||
|
||
W_ENEMYMON1HP EQU $D8A5 ; 16 bits
|
||
|
||
W_ENEMYMON1MOVE3 EQU $D8AE
|
||
|
||
W_ENEMYMON2MOVE3 EQU $D8DA
|
||
|
||
W_ENEMYMON3MOVE3 EQU $D906
|
||
|
||
W_ENEMYMON4MOVE3 EQU $D932
|
||
|
||
W_ENEMYMON5MOVE3 EQU $D95E
|
||
|
||
W_ENEMYMON6MOVE3 EQU $D98A
|
||
|
||
W_ENEMYMON1OT EQU $D9AC
|
||
W_ENEMYMON2OT EQU $D9B7
|
||
W_ENEMYMON3OT EQU $D9C2
|
||
W_ENEMYMON4OT EQU $D9CD
|
||
W_ENEMYMON5OT EQU $D9D8
|
||
W_ENEMYMON6OT EQU $D9E3
|
||
|
||
W_ENEMYMON1NAME EQU $D9EE
|
||
W_ENEMYMON2NAME EQU $D9F9
|
||
W_ENEMYMON3NAME EQU $DA04
|
||
W_ENEMYMON4NAME EQU $DA0F
|
||
W_ENEMYMON5NAME EQU $DA1A
|
||
W_ENEMYMON6NAME EQU $DA25 ; to $da2f
|
||
W_TRAINERHEADERPTR EQU $DA30
|
||
|
||
; index of current map script, mostly used as index for function pointer array
|
||
; mostly copied from map-specific map script pointer and wirtten back later
|
||
W_CURMAPSCRIPT EQU $DA39
|
||
|
||
W_PLAYTIMEHOURS EQU $DA40 ; two bytes
|
||
W_PLAYTIMEMINUTES EQU $DA42 ; two bytes
|
||
W_PLAYTIMESECONDS EQU $DA44 ; one byte
|
||
W_PLAYTIMEFRAMES EQU $DA45 ; one byte
|
||
|
||
W_NUMSAFARIBALLS EQU $DA47
|
||
|
||
; number of mons in current box
|
||
W_NUMINBOX EQU $DA80
|
||
W_BOXMON1DATA EQU $DA96
|
||
W_BOXMON2DATA EQU $DAB7
|
||
|