mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-17 02:40:50 +12:00
* add known hard-coded memory locations are labels now
* all global labels now have a comment indicating their ROM address * all references to tile buffer locations are using the FuncCoords marco now * added some comments and assembly analysis
This commit is contained in:
parent
fa32624e79
commit
2cc0aef0e9
463
constants.asm
463
constants.asm
|
@ -124,7 +124,7 @@ PREDEF_JUMP: MACRO
|
||||||
; C1xD
|
; C1xD
|
||||||
; C1xE
|
; C1xE
|
||||||
; C1xF
|
; C1xF
|
||||||
W_SPRITESTATEDATA1 EQU $C100
|
W_SPRITESTATEDATA1 EQU $C100 ; to $C200
|
||||||
|
|
||||||
; more data for all sprites on the current map
|
; more data for all sprites on the current map
|
||||||
; holds info for 16 sprites with $10 bytes each
|
; holds info for 16 sprites with $10 bytes each
|
||||||
|
@ -145,7 +145,16 @@ W_SPRITESTATEDATA1 EQU $C100
|
||||||
; C2xD
|
; C2xD
|
||||||
; C2xE: sprite image base offset (in video ram, player always has value 1, used to compute c1x2)
|
; C2xE: sprite image base offset (in video ram, player always has value 1, used to compute c1x2)
|
||||||
; C2xF
|
; C2xF
|
||||||
W_SPRITESTATEDATA2 EQU $C200
|
W_SPRITESTATEDATA2 EQU $C200 ; to $C300
|
||||||
|
|
||||||
|
; buffer for OAM data. Is copied to OAM RAM by OAM DMA
|
||||||
|
W_OAMBUFFER EQU $C300 ; size $a0, to $C3A0
|
||||||
|
|
||||||
|
; buffer for tiles that are visible on screen (20 columns by 18 rows = $168 bytes)
|
||||||
|
W_SCREENTILESBUFFER EQU $C3A0 ; size $168, to $C508
|
||||||
|
|
||||||
|
; buffer for temporarily saving and restoring current screen's tiles (e.g. if menus are drawn on top)
|
||||||
|
W_SCREENTILESBACKBUFFER EQU $C508 ; size $168, to $C670
|
||||||
|
|
||||||
; the tiles of the row or column to be redrawn by RedrawExposedScreenEdge
|
; the tiles of the row or column to be redrawn by RedrawExposedScreenEdge
|
||||||
W_SCREENEDGETILES EQU $CBFC
|
W_SCREENEDGETILES EQU $CBFC
|
||||||
|
@ -186,6 +195,8 @@ W_LISTSCROLLOFFSET EQU $CC36
|
||||||
; set to 0 if you can't go past the top or bottom of the menu
|
; set to 0 if you can't go past the top or bottom of the menu
|
||||||
W_MENUWRAPPINGENABLED EQU $CC4A
|
W_MENUWRAPPINGENABLED EQU $CC4A
|
||||||
|
|
||||||
|
W_TRAINERHEADERFLAGBIT EQU $CC55
|
||||||
|
|
||||||
W_RLEBYTECOUNTER EQU $CCD2
|
W_RLEBYTECOUNTER EQU $CCD2
|
||||||
|
|
||||||
; current HP of player and enemy substitutes
|
; current HP of player and enemy substitutes
|
||||||
|
@ -210,6 +221,10 @@ W_PLAYERMONSPECIALMOD EQU $CD1D
|
||||||
W_PLAYERMONACCURACYMOD EQU $CD1E
|
W_PLAYERMONACCURACYMOD EQU $CD1E
|
||||||
W_PLAYERMONEVASIONMOD EQU $CD1F
|
W_PLAYERMONEVASIONMOD EQU $CD1F
|
||||||
|
|
||||||
|
|
||||||
|
W_ENGAGEDTRAINERCLASS EQU $CD2D
|
||||||
|
W_ENGAGEDTRAINERSETNUM EQU $CD2E
|
||||||
|
|
||||||
; stat modifiers for the enemy's current pokemon
|
; stat modifiers for the enemy's current pokemon
|
||||||
; value can range from 1 - 13 ($1 to $D)
|
; value can range from 1 - 13 ($1 to $D)
|
||||||
; 7 is normal
|
; 7 is normal
|
||||||
|
@ -221,12 +236,36 @@ W_ENEMYMONACCURACYMOD EQU $CD32
|
||||||
W_ENEMYMONEVASIONMOD EQU $CD33
|
W_ENEMYMONEVASIONMOD EQU $CD33
|
||||||
|
|
||||||
W_WHICHTRADE EQU $CD3D ; which entry from TradeMons to select
|
W_WHICHTRADE EQU $CD3D ; which entry from TradeMons to select
|
||||||
|
W_TRAINERSPRITEOFFSET EQU $CD3D
|
||||||
|
W_TRAINERENGAGEDISTANCE EQU $CD3E
|
||||||
|
W_TRAINERFACINGDIR EQU $CD3F
|
||||||
|
W_TRAINERSCREENYPOS EQU $CD40
|
||||||
|
W_TRAINERSCREENXPOS EQU $CD41
|
||||||
|
|
||||||
|
; bit 0: is player engaged by trainer (to avoid being engaged by multiple trainers simultaniously)
|
||||||
|
W_FLAGS_CD60 EQU $CD60
|
||||||
|
|
||||||
|
; bit 1 means button presses will be ignored for that futton
|
||||||
|
W_JOYPADFORBIDDENBUTTONSMASK EQU $CD6B
|
||||||
|
|
||||||
|
; second buffer for temporarily saving and restoring current screen's tiles (e.g. if menus are drawn on top)
|
||||||
|
W_SCREENTILESBACKBUFFER2 EQU $CD81 ; size $168, to $CEE9
|
||||||
|
|
||||||
|
W_HPBARMAXHP EQU $CEE9
|
||||||
|
W_HPBAROLDHP EQU $CEEB
|
||||||
|
W_HPBARNEWHP EQU $CEED
|
||||||
|
W_HPBARDELTA EQU $CEEF
|
||||||
|
|
||||||
|
W_HPBARHPDIFFERENCE EQU $CEFD
|
||||||
|
|
||||||
W_ANIMSOUNDID EQU $CF07 ; sound ID during battle animations
|
W_ANIMSOUNDID EQU $CF07 ; sound ID during battle animations
|
||||||
|
|
||||||
; movement byte 2 of current sprite
|
; movement byte 2 of current sprite
|
||||||
W_CURSPRITEMOVEMENT2 EQU $CF14
|
W_CURSPRITEMOVEMENT2 EQU $CF14
|
||||||
|
|
||||||
|
W_GYMCITYNAME EQU $CF5F
|
||||||
|
W_GYMLEADERNAME EQU $CF70
|
||||||
|
|
||||||
W_WHICHPOKEMON EQU $CF92 ; which pokemon you selected
|
W_WHICHPOKEMON EQU $CF92 ; which pokemon you selected
|
||||||
|
|
||||||
W_LISTMENUID EQU $CF94 ; ID used by DisplayListMenuID
|
W_LISTMENUID EQU $CF94 ; ID used by DisplayListMenuID
|
||||||
|
@ -247,6 +286,8 @@ W_PLAYERMOVETYPE EQU $CFD5
|
||||||
W_PLAYERMOVEACCURACY EQU $CFD6
|
W_PLAYERMOVEACCURACY EQU $CFD6
|
||||||
W_PLAYERMOVEMAXPP EQU $CFD7
|
W_PLAYERMOVEMAXPP EQU $CFD7
|
||||||
|
|
||||||
|
W_ENEMYMONID EQU $CFD8
|
||||||
|
|
||||||
W_ENEMYMONNAME EQU $CFDA
|
W_ENEMYMONNAME EQU $CFDA
|
||||||
|
|
||||||
W_ENEMYMONCURHP EQU $CFE6 ; active opponent's hp (16 bits)
|
W_ENEMYMONCURHP EQU $CFE6 ; active opponent's hp (16 bits)
|
||||||
|
@ -260,16 +301,23 @@ W_ENEMYMONSTATUS EQU $CFE9 ; active opponent's status condition
|
||||||
; bit 5 frz
|
; bit 5 frz
|
||||||
; bit 6 par
|
; bit 6 par
|
||||||
; unused? (XXX confirm)
|
; unused? (XXX confirm)
|
||||||
W_ENEMYMONTYPES EQU $CFEA
|
W_ENEMYMONTYPES EQU $CFEA
|
||||||
W_ENEMYMONTYPE1 EQU $CFEA
|
W_ENEMYMONTYPE1 EQU $CFEA
|
||||||
W_ENEMYMONTYPE2 EQU $CFEB
|
W_ENEMYMONTYPE2 EQU $CFEB
|
||||||
W_ENEMYMONLEVEL EQU $CFF3
|
W_ENEMYMONMOVES EQU $CFED
|
||||||
W_ENEMYMONMAXHP EQU $CFF4 ; (16 bits)
|
W_ENEMYMONATKDEFIV EQU $CFF1
|
||||||
W_ENEMYMONDEFENSE EQU $CFF8
|
W_ENEMYMONSPDSPCIV EQU $CFF2
|
||||||
W_ENEMYMONSPECIAL EQU $CFFC
|
W_ENEMYMONLEVEL EQU $CFF3
|
||||||
W_ENEMYMONPP EQU $CFFE
|
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
|
||||||
|
|
||||||
W_PLAYERMONCURHP EQU $D015 ; active opponent's hp (16 bits)
|
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
|
W_PLAYERMONSTATUS EQU $D018 ; the status of the player’s current monster
|
||||||
; bit 0 slp
|
; bit 0 slp
|
||||||
; bit 1 slp
|
; bit 1 slp
|
||||||
|
@ -279,12 +327,18 @@ W_PLAYERMONSTATUS EQU $D018 ; the status of the player’s current monster
|
||||||
; bit 5 frz
|
; bit 5 frz
|
||||||
; bit 6 par
|
; bit 6 par
|
||||||
; unused? (XXX confirm)
|
; unused? (XXX confirm)
|
||||||
W_PLAYERMONTYPES EQU $D019
|
W_PLAYERMONTYPES EQU $D019
|
||||||
W_PLAYERMONTYPE1 EQU $D019
|
W_PLAYERMONTYPE1 EQU $D019
|
||||||
W_PLAYERMONTYPE2 EQU $D01A
|
W_PLAYERMONTYPE2 EQU $D01A
|
||||||
W_PLAYERMONLEVEL EQU $D022
|
W_PLAYERMONMOVES EQU $D01C
|
||||||
W_PLAYERMONMAXHP EQU $D023 ; (16 bits)
|
W_PLAYERMONIVS EQU $D020 ; 4x 4 bit: atk, def, spd, spc
|
||||||
W_PLAYERMONPP EQU $D02D
|
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_TRAINERCLASS EQU $D031
|
||||||
|
|
||||||
|
@ -292,6 +346,8 @@ W_ISINBATTLE EQU $D057 ; no battle, this is 0
|
||||||
; wild battle, this is 1
|
; wild battle, this is 1
|
||||||
; trainer battle, this is 2
|
; 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
|
W_CUROPPONENT EQU $D059 ; in a wild battle, this is the species of pokemon
|
||||||
; in a trainer battle, this is the trainer class + $C8
|
; in a trainer battle, this is the trainer class + $C8
|
||||||
|
|
||||||
|
@ -355,7 +411,6 @@ W_BASECOORDY EQU $D082
|
||||||
W_FBTILECOUNTER EQU $D084 ; counts how many tiles of the current frame block have been drawn
|
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_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_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_NUMFBTILES EQU $D089 ; number of tiles in current battle animation frame block
|
||||||
|
@ -366,6 +421,12 @@ W_SUBANIMTRANSFORM EQU $D08B ; controls what transformations are applied to the
|
||||||
; 03: translate base coordinates of frame blocks, but don't change their internal coordinates or flip their tiles
|
; 03: translate base coordinates of frame blocks, but don't change their internal coordinates or flip their tiles
|
||||||
; 04: reverse the subanimation
|
; 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_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_SUBANIMSUBENTRYADDR EQU $D096 ; the address of the current subentry of the current subanimation (2 bytes)
|
||||||
|
@ -476,60 +537,6 @@ W_PLAYERNAME EQU $D158 ; 11 characters, including null
|
||||||
|
|
||||||
W_NUMINPARTY EQU $D163
|
W_NUMINPARTY EQU $D163
|
||||||
|
|
||||||
W_OWNEDPOKEMON EQU $D2F7 ; bit field, 19 bytes
|
|
||||||
|
|
||||||
W_SEENPOKEMON EQU $D30A ; bit field, 19 bytes
|
|
||||||
|
|
||||||
;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_PARTYMON1 EQU $D164
|
W_PARTYMON1 EQU $D164
|
||||||
W_PARTYMON2 EQU $D165
|
W_PARTYMON2 EQU $D165
|
||||||
W_PARTYMON3 EQU $D166
|
W_PARTYMON3 EQU $D166
|
||||||
|
@ -738,6 +745,60 @@ W_PARTYMON4NAME EQU $D2D6
|
||||||
W_PARTYMON5NAME EQU $D2E1
|
W_PARTYMON5NAME EQU $D2E1
|
||||||
W_PARTYMON6NAME EQU $D2EC
|
W_PARTYMON6NAME EQU $D2EC
|
||||||
|
|
||||||
|
W_OWNEDPOKEMON EQU $D2F7 ; bit field, 19 bytes
|
||||||
|
|
||||||
|
W_SEENPOKEMON EQU $D30A ; bit field, 19 bytes
|
||||||
|
|
||||||
|
;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_RIVALNAME EQU $D34A ; 11 characters, including null
|
||||||
|
|
||||||
W_OPTIONS EQU $D355
|
W_OPTIONS EQU $D355
|
||||||
|
@ -795,62 +856,6 @@ W_TILESETCOLLISIONPTR EQU $D530 ; list of all walkable tiles
|
||||||
W_TILESETTALKINGOVERTILES EQU $D532 ; 3 bytes
|
W_TILESETTALKINGOVERTILES EQU $D532 ; 3 bytes
|
||||||
W_GRASSTILE EQU $D535
|
W_GRASSTILE EQU $D535
|
||||||
|
|
||||||
; coins are in decimal
|
|
||||||
W_PLAYERCOINS1 EQU $D5A4
|
|
||||||
W_PLAYERCOINS2 EQU $D5A5
|
|
||||||
|
|
||||||
W_OAKSLABCURSCRIPT EQU $D5F0
|
|
||||||
|
|
||||||
W_RIVALSTARTER EQU $D715
|
|
||||||
|
|
||||||
W_PLAYERSTARTER EQU $D717
|
|
||||||
|
|
||||||
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_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
|
|
||||||
|
|
||||||
;number of items in box
|
;number of items in box
|
||||||
W_NUMBOXITEMS EQU $D53A
|
W_NUMBOXITEMS EQU $D53A
|
||||||
; BOXITEM01 is an item id
|
; BOXITEM01 is an item id
|
||||||
|
@ -957,6 +962,9 @@ W_BOXITEM50 EQU $D59D
|
||||||
W_BOXITEM50QTY EQU $D59E
|
W_BOXITEM50QTY EQU $D59E
|
||||||
;box end of list $D59F
|
;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
|
W_MISSABLEOBJECTFLAGS EQU $D5A6 ; $20 bytes, bit array of missable objects. bit 1 = removed
|
||||||
|
|
||||||
; each entry consists of 2 bytes
|
; each entry consists of 2 bytes
|
||||||
|
@ -965,16 +973,193 @@ W_MISSABLEOBJECTFLAGS EQU $D5A6 ; $20 bytes, bit array of missable objects. bit
|
||||||
; terminated with $FF
|
; terminated with $FF
|
||||||
W_MISSABLEOBJECTLIST EQU $D5CE
|
W_MISSABLEOBJECTLIST EQU $D5CE
|
||||||
|
|
||||||
W_GAMEPROGRESSFLAGS EQU $D5F0 ; $c8 bytes
|
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_TOWNVISITEDFLAG EQU $D70B ; 2 bytes bit array, 1 means visited
|
||||||
|
|
||||||
W_SAFARITIMER1 EQU $D70D ; use 01 for maximum
|
W_SAFARITIMER1 EQU $D70D ; use 01 for maximum
|
||||||
W_SAFARITIMER2 EQU $D70E ; use F4 for maximum
|
W_SAFARITIMER2 EQU $D70E ; use F4 for maximum
|
||||||
|
|
||||||
W_FOSSILITEM EQU $D70F ; item given to cinnabar lab
|
W_FOSSILITEM EQU $D70F ; item given to cinnabar lab
|
||||||
W_FOSSILMON EQU $D710 ; mon that will result from the item
|
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
|
||||||
|
|
||||||
|
|
||||||
|
H_SOFTRESETCOUNTER EQU $FF8A ; initialized to 16, decremented each input iteration if the user presses the reset sequence (A+B+S+s). Soft reset when 0 is reached.
|
||||||
|
|
||||||
; counters for blinking down arrow
|
; counters for blinking down arrow
|
||||||
H_DOWNARROWBLINKCNT1 EQU $FF8B
|
H_DOWNARROWBLINKCNT1 EQU $FF8B
|
||||||
H_DOWNARROWBLINKCNT2 EQU $FF8C
|
H_DOWNARROWBLINKCNT2 EQU $FF8C
|
||||||
|
@ -997,6 +1182,11 @@ H_NUMTOPRINT EQU $FF96 ; 3 bytes, big endian order
|
||||||
H_POWEROFTEN EQU $FF99 ; 3 bytes, big endian order
|
H_POWEROFTEN EQU $FF99 ; 3 bytes, big endian order
|
||||||
H_SAVEDNUMTOPRINT EQU $FF9C ; 3 bytes, big endian order (to back out of a subtraction)
|
H_SAVEDNUMTOPRINT EQU $FF9C ; 3 bytes, big endian order (to back out of a subtraction)
|
||||||
|
|
||||||
|
H_OLDPRESSEDBUTTONS EQU $FFB1
|
||||||
|
H_NEWLYRELEASEDBUTTONS EQU $FFB2
|
||||||
|
H_NEWLYPRESSEDBUTTONS EQU $FFB3
|
||||||
|
H_CURRENTPRESSEDBUTTONS EQU $FFB4
|
||||||
|
|
||||||
H_LOADEDROMBANK EQU $FFB8
|
H_LOADEDROMBANK EQU $FFB8
|
||||||
|
|
||||||
; is automatic background transfer during V-blank enabled?
|
; is automatic background transfer during V-blank enabled?
|
||||||
|
@ -1076,6 +1266,8 @@ H_CURRENTSPRITEOFFSET EQU $FFDA ; multiple of $10
|
||||||
|
|
||||||
H_WHOSETURN EQU $FFF3 ; 0 on player’s turn, 1 on enemy’s turn
|
H_WHOSETURN EQU $FFF3 ; 0 on player’s turn, 1 on enemy’s turn
|
||||||
|
|
||||||
|
H_JOYPADSTATE EQU $FFF8
|
||||||
|
|
||||||
; hardware registers, from the pandocs http://nocash.emubase.de/pandocs.htm
|
; hardware registers, from the pandocs http://nocash.emubase.de/pandocs.htm
|
||||||
rJOYP EQU $FF00
|
rJOYP EQU $FF00
|
||||||
rDIV EQU $FF04
|
rDIV EQU $FF04
|
||||||
|
@ -1089,6 +1281,15 @@ rWY EQU $FF4A
|
||||||
rWX EQU $FF4B
|
rWX EQU $FF4B
|
||||||
rIE EQU $FFFF
|
rIE EQU $FFFF
|
||||||
|
|
||||||
|
BTN_A EQU %00000001
|
||||||
|
BTN_B EQU %00000010
|
||||||
|
BTN_SELECT EQU %00000100
|
||||||
|
BTN_START EQU %00001000
|
||||||
|
BTN_RIGHT EQU %00010000
|
||||||
|
BTN_LEFT EQU %00100000
|
||||||
|
BTN_UP EQU %01000000
|
||||||
|
BTN_DOWN EQU %10000000
|
||||||
|
|
||||||
; OAM attribute flags
|
; OAM attribute flags
|
||||||
OAM_HFLIP EQU %00100000 ; horizontal flip
|
OAM_HFLIP EQU %00100000 ; horizontal flip
|
||||||
OAM_VFLIP EQU %01000000 ; vertical flip
|
OAM_VFLIP EQU %01000000 ; vertical flip
|
||||||
|
@ -1529,7 +1730,7 @@ X_DEFEND EQU $42
|
||||||
X_SPEED EQU $43
|
X_SPEED EQU $43
|
||||||
X_SPECIAL EQU $44
|
X_SPECIAL EQU $44
|
||||||
COIN_CASE EQU $45
|
COIN_CASE EQU $45
|
||||||
OAKS_PARCEL EQU $46
|
OAKS_PARCEL EQU $46
|
||||||
ITEMFINDER EQU $47
|
ITEMFINDER EQU $47
|
||||||
SILPH_SCOPE EQU $48
|
SILPH_SCOPE EQU $48
|
||||||
POKE_FLUTE EQU $49
|
POKE_FLUTE EQU $49
|
||||||
|
|
Loading…
Reference in a new issue