From a548c1d097d222c7ec791561c833511828404b4f Mon Sep 17 00:00:00 2001 From: yenatch Date: Thu, 5 Dec 2013 01:18:14 -0500 Subject: split wram/hram out of constants.asm and start using wram sections also inadvertently labeling some hard addresses --- constants.asm | 1157 +-------------------------------------------------------- 1 file changed, 2 insertions(+), 1155 deletions(-) (limited to 'constants.asm') diff --git a/constants.asm b/constants.asm index fa0f3afc..8345cbbe 100644 --- a/constants.asm +++ b/constants.asm @@ -103,396 +103,15 @@ PREDEF_JUMP: MACRO jp Predef ENDM -; wram locations - -; 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 -W_SPRITESTATEDATA1 EQU $C100 ; to $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 -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 -W_SCREENEDGETILES EQU $CBFC - -; coordinates of the position of the cursor for the top menu item (id 0) -W_TOPMENUITEMY EQU $CC24 -W_TOPMENUITEMX EQU $CC25 - -; 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 [W_LISTSCROLLOFFSET] to get the item's position within the list -W_CURMENUITEMID EQU $CC26 - -; the tile that was behind the menu cursor's current location -W_TILEBEHINDCURSOR EQU $CC27 - -W_MAXMENUITEMID EQU $CC28 ; id of the bottom menu item - -W_MENUWATCHEDKEYS EQU $CC29 ; bit mask of keys that the menu will respond to - -W_OLDMENUITEMID EQU $CC2A ; id of previously selected menu item -; how many times should HandleMenuInput poll the joypad state before it returns? -W_MENUJOYPADPOLLCOUNT EQU $CC34 - -W_PLAYERMOVELISTINDEX EQU $CC2E -W_PLAYERMONNUMBER EQU $CC2F - -; the address of the menu cursor's current location within C3A0-C507 -W_MENUCURSORLOCATION EQU $CC30 ; 2 bytes - -; offset of the current top menu item from the beginning of the list -; keeps track of what section of the list is on screen -W_LISTSCROLLOFFSET EQU $CC36 - -; 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 -W_MENUWRAPPINGENABLED EQU $CC4A - -W_TRAINERHEADERFLAGBIT EQU $CC55 - -W_RLEBYTECOUNTER EQU $CCD2 - -; current HP of player and enemy substitutes -W_PLAYERSUBSITUTEHP EQU $CCD7 -W_ENEMYSUBSITUTEHP EQU $CCD8 - -W_MOVEMENUTYPE EQU $CCDB ; 0=regular, 1=mimic, 2=above message box (relearn, heal pp..) -W_PLAYERSELECTEDMOVE EQU $CCDC -W_ENEMYSELECTEDMOVE EQU $CCDD - -W_ENEMYMOVELISTINDEX EQU $CCE2 - -W_AICOUNT EQU $CCDF ; number of times remaining that AI action can occur - -; stat modifiers for the player's current pokemon -; value can range from 1 - 13 ($1 to $D) -; 7 is normal - -W_PLAYERMONATTACKMOD EQU $CD1A -W_PLAYERMONDEFENSEMOD EQU $CD1B -W_PLAYERMONSPEEDMOD EQU $CD1C -W_PLAYERMONSPECIALMOD EQU $CD1D -W_PLAYERMONACCURACYMOD EQU $CD1E -W_PLAYERMONEVASIONMOD EQU $CD1F - - -W_ENGAGEDTRAINERCLASS EQU $CD2D -W_ENGAGEDTRAINERSETNUM EQU $CD2E - -; stat modifiers for the enemy's current pokemon -; value can range from 1 - 13 ($1 to $D) -; 7 is normal -W_ENEMYMONATTACKMOD EQU $CD2E -W_ENEMYMONDEFENSEMOD EQU $CD2F -W_ENEMYMONSPEEDMOD EQU $CD30 -W_ENEMYMONSPECIALMOD EQU $CD31 -W_ENEMYMONACCURACYMOD EQU $CD32 -W_ENEMYMONEVASIONMOD EQU $CD33 - -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_BUFFER EQU $CEE9 ; used for temporary things - -W_ANIMSOUNDID EQU $CF07 ; sound ID during battle animations - -; movement byte 2 of current sprite -W_CURSPRITEMOVEMENT2 EQU $CF14 - -W_GYMCITYNAME EQU $CF5F -W_GYMLEADERNAME EQU $CF70 - -W_WHICHPOKEMON EQU $CF92 ; which pokemon you selected - -W_LISTMENUID EQU $CF94 ; ID used by DisplayListMenuID - -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 - -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) - -H_SPRITEWIDTH EQU $FF8B ; in bytes -H_SPRITEINTERLACECOUNTER EQU $FF8B -H_SPRITEHEIGHT EQU $FF8C ; in bytes -H_SPRITEOFFSET EQU $FF8D +INCLUDE "hram.asm" + ; OAM flags used by this game OAMFLAG_ENDOFDATA EQU %00000001 ; pseudo OAM flag, only used by game logic OAMFLAG_CANBEMASKED EQU %00000010 ; pseudo OAM flag, only used by game logic OAMFLAG_VFLIPPED EQU %00100000 ; OAM flag flips the sprite vertically. Used for making left facing sprites face right and to alternate between left and right foot animation when walking up or down -; List type -; used in $D0B6 -W_LISTTYPE EQU $D0B6 MONSTER_NAME EQU 1 MOVE_NAME EQU 2 ; ???_NAME EQU 3 @@ -501,778 +120,6 @@ PLAYEROT_NAME EQU 5 ENEMYOT_NAME EQU 6 TRAINER_NAME EQU 7 -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 - -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_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 - - -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 -H_DOWNARROWBLINKCNT1 EQU $FF8B -H_DOWNARROWBLINKCNT2 EQU $FF8C - -; Note: the following multiplication and division addresses are used for multiple purposes -; and so they overlap with each other - -H_MULTIPLICAND EQU $FF96 ; 3 bytes, big endian order -H_MULTIPLIER EQU $FF99 ; 1 byte -H_PRODUCT EQU $FF95 ; 4 bytes, big endian order - -H_DIVIDEND EQU $FF95 ; 4 bytes, big endian order -H_DIVISOR EQU $FF99 ; 1 byte -H_QUOTIENT EQU $FF95 ; 4 bytes, big endian order -H_REMAINDER EQU $FF99 ; 1 byte - -; used to convert numbers to decimal -H_PASTLEADINGZEROES EQU $FF95 ; flag to indicate that a nonzero digit has been printed -H_NUMTOPRINT EQU $FF96 ; 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_OLDPRESSEDBUTTONS EQU $FFB1 -H_NEWLYRELEASEDBUTTONS EQU $FFB2 -H_NEWLYPRESSEDBUTTONS EQU $FFB3 -H_CURRENTPRESSEDBUTTONS EQU $FFB4 - -H_LOADEDROMBANK EQU $FFB8 - -; is automatic background transfer during V-blank enabled? -; if nonzero, yes -; if zero, no -H_AUTOBGTRANSFERENABLED EQU $FFBA - -TRANSFERTOP EQU 0 -TRANSFERMIDDLE EQU 1 -TRANSFERBOTTOM EQU 2 - -; 00 = top third of background -; 01 = middle third of background -; 02 = bottom third of background -H_AUTOBGTRANSFERPORTION EQU $FFBB - -; the destination address of the automatic background transfer -H_AUTOBGTRANSFERDEST EQU $FFBC ; 2 bytes - -; temporary storage for stack pointer during memory transfers that use pop -; to increase speed -H_SPTEMP EQU $FFBF ; 2 bytes - -; source address for VBlankCopyBgMap function -; the first byte doubles as the byte that enabled the transfer. -; if it is 0, the transfer is disabled -; if it is not 0, the transfer is enabled -; this means that XX00 is not a valid source address -H_VBCOPYBGSRC EQU $FFC1 ; 2 bytes - -; destination address for VBlankCopyBgMap function -H_VBCOPYBGDEST EQU $FFC3 ; 2 bytes - -; number of rows for VBlankCopyBgMap to copy -H_VBCOPYBGNUMROWS EQU $FFC5 - -; size of VBlankCopy transfer in 16-byte units -H_VBCOPYSIZE EQU $FFC6 - -; source address for VBlankCopy function -H_VBCOPYSRC EQU $FFC7 - -; destination address for VBlankCopy function -H_VBCOPYDEST EQU $FFC9 - -; size of source data for VBlankCopyDouble in 8-byte units -H_VBCOPYDOUBLESIZE EQU $FFCB - -; source address for VBlankCopyDouble function -H_VBCOPYDOUBLESRC EQU $FFCC - -; destination address for VBlankCopyDouble function -H_VBCOPYDOUBLEDEST EQU $FFCE - -; controls whether a row or column of 2x2 tile blocks is redrawn in V-blank -; 00 = no redraw -; 01 = redraw column -; 02 = redraw row -H_SCREENEDGEREDRAW EQU $FFD0 - -REDRAWCOL EQU 1 -REDRAWROW EQU 2 - -H_SCREENEDGEREDRAWADDR EQU $FFD1 - -H_RAND1 EQU $FFD3 -H_RAND2 EQU $FFD4 - -H_FRAMECOUNTER EQU $FFD5 ; decremented every V-blank (used for delays) - -; V-blank sets this to 0 each time it runs. -; So, by setting it to a nonzero value and waiting for it to become 0 again, -; you can detect that the V-blank handler has run since then. -H_VBLANKOCCURRED EQU $FFD6 - -H_CURRENTSPRITEOFFSET EQU $FFDA ; multiple of $10 - -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 rJOYP EQU $FF00 -- cgit v1.3.1-sl0p From 12f80235993293559f25b79d914424ee59d25f8d Mon Sep 17 00:00:00 2001 From: yenatch Date: Thu, 5 Dec 2013 01:25:12 -0500 Subject: split rgbasm macros into macros.asm --- constants.asm | 262 +-------------------------------------------------------- macros.asm | 265 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 267 insertions(+), 260 deletions(-) create mode 100644 macros.asm (limited to 'constants.asm') diff --git a/constants.asm b/constants.asm index 8345cbbe..0b040448 100644 --- a/constants.asm +++ b/constants.asm @@ -2,107 +2,8 @@ _JAPAN EQU 0 _GREEN EQU 0 _YELLOW EQU 0 -;\1 = X -;\2 = Y -FuncCoord: MACRO -Coord = $C3A0 + 20 * \2 + \1 - ENDM - -;\1 = Map Width -;\2 = Rows above (Y-blocks) -;\3 = X movement (X-blocks) -EVENT_DISP: MACRO - dw ($C6EF + (\1) + ((\1) + 6) * ((\2) >> 1) + ((\3) >> 1)) ; Ev.Disp - db \2,\3 ;Y,X - ENDM - -FLYWARP_DATA: MACRO - EVENT_DISP \1,\2,\3 - db ((\2) & $01) ;sub-block Y - db ((\3) & $01) ;sub-block X - ENDM - -; external map entry macro -EMAP: MACRO ; emap x-coordinate,y-coordinate,textpointer -; the appearance of towns and routes in the town map, indexed by map id - ; nybble: y-coordinate - ; nybble: x-coordinate - ; word : pointer to map name - db (\1 + (\2 << 4)) - dw \3 - ENDM - -; internal map entry macro -IMAP: MACRO ; imap mapid_less_than,x-coordinate,y-coordinate,textpointer -; the appearance of buildings and dungeons in the town map - ; byte : maximum map id subject to this rule - ; nybble: y-coordinate - ; nybble: x-coordinate - ; word : pointer to map name - db \1 - db \2 + \3 << 4 - dw \4 - ENDM - -; tilesets' headers macro -TSETHEAD: MACRO - db BANK(\2) - dw \1,\2,\3 - db \4,\5,\6,\7,\8 - ENDM - -; macro for two nibbles -dn: MACRO - db (\1 << 4 | \2) - ENDM - -; macro for putting a byte then a word -dbw: MACRO - db \1 - dw \2 - ENDM - -; data format macros -RGB: MACRO - dw (\3 << 10 | \2 << 5 | \1) - ENDM - -; text macros -TX_NUM: MACRO -; print a big-endian decimal number. -; \1: address to read from -; \2: number of bytes to read -; \3: number of digits to display - db $09 - dw \1 - db \2 << 4 | \3 - ENDM - -TX_FAR: MACRO - db $17 - dw \1 - db BANK(\1) - ENDM - -; text engine command $1 -TX_RAM: MACRO -; prints text to screen -; \1: RAM address to read from - db $1 - dw \1 - ENDM - -; Predef macro. -PREDEF: MACRO - ld a, (\1 - PredefPointers) / 3 - call Predef - ENDM - -PREDEF_JUMP: MACRO - ld a, (\1 - PredefPointers) / 3 - jp Predef - ENDM +INCLUDE "macros.asm" INCLUDE "hram.asm" @@ -2218,163 +2119,4 @@ BRUNOS_ROOM_WIDTH EQU $05 AGATHAS_ROOM_HEIGHT EQU $06 AGATHAS_ROOM_WIDTH EQU $05 -;1_channel EQU $00 -;2_channels EQU $40 -;3_channels EQU $80 -;4_channels EQU $C0 - -CH0 EQU 0 -CH1 EQU 1 -CH2 EQU 2 -CH3 EQU 3 -CH4 EQU 4 -CH5 EQU 5 -CH6 EQU 6 -CH7 EQU 7 - -;Note Pitch -C_ EQU $0 -C# EQU $1 -D_ EQU $2 -D# EQU $3 -E_ EQU $4 -F_ EQU $5 -F# EQU $6 -G_ EQU $7 -G# EQU $8 -A_ EQU $9 -A# EQU $A -B_ EQU $B - -;drum instruments -snare1 EQU $01 -snare2 EQU $02 -snare3 EQU $03 -snare4 EQU $04 -snare5 EQU $05 -triangle1 EQU $06 -triangle2 EQU $07 -snare6 EQU $08 -snare7 EQU $09 -snare8 EQU $0a -snare9 EQU $0b -cymbal1 EQU $0c -cymbal2 EQU $0d -cymbal3 EQU $0e -mutedsnare1 EQU $0f -triangle3 EQU $10 -mutedsnare2 EQU $11 -mutedsnare3 EQU $12 -mutedsnare4 EQU $13 - -unknownsfx0x10: MACRO - db $10 - db \1 -ENDM - -unknownsfx0x20: MACRO - db $20 | \1 - db \2 - db \3 - db \4 -ENDM - -unknownnoise0x20: MACRO - db $20 | \1 - db \2 - db \3 -ENDM - -;format: note pitch, length (in 16ths) -note: MACRO - db (\1 << 4) | (\2 - 1) -ENDM - -;format: dnote length (in 16ths), instrument -dnote: MACRO - db $B0 | (\1 - 1) - db \2 -ENDM - -;format: rest length (in 16ths) -rest: MACRO - db $C0 | (\1 - 1) -ENDM - -; format: notetype speed, volume, fade -notetype: MACRO - db $D0 | \1 - db (\2 << 4) | \3 -ENDM - -dspeed: MACRO - db $D0 | \1 -ENDM - -octave: MACRO - db $E8 - \1 -ENDM - -togglecall: MACRO - db $E8 -ENDM - -;format: vibrato delay, rate, depth -vibrato: MACRO - db $EA - db \1 - db (\2 << 4) | \3 -ENDM - -pitchbend: MACRO - db $EB - db \1 - db \2 -ENDM - -duty: MACRO - db $EC - db \1 -ENDM - -tempo: MACRO - db $ED - db \1 - db \2 -ENDM - -unknownmusic0xee: MACRO - db $EE - db \1 -ENDM - -stereopanning: MACRO - db $F0 - db \1 -ENDM - -executemusic: MACRO - db $F8 -ENDM - -dutycycle: MACRO - db $FC - db \1 -ENDM - -;format: callchannel address -;callchannel: MACRO -; db $FD -; dw \1 -;ENDM - -;format: loopchannel count, address -;loopchannel: MACRO -; db $FE -; db \1 -; dw \2 -;ENDM - -endchannel: MACRO - db $FF -ENDM + diff --git a/macros.asm b/macros.asm new file mode 100644 index 00000000..7a5660a4 --- /dev/null +++ b/macros.asm @@ -0,0 +1,265 @@ + +;\1 = X +;\2 = Y +FuncCoord: MACRO +Coord = $C3A0 + 20 * \2 + \1 + ENDM + +;\1 = Map Width +;\2 = Rows above (Y-blocks) +;\3 = X movement (X-blocks) +EVENT_DISP: MACRO + dw ($C6EF + (\1) + ((\1) + 6) * ((\2) >> 1) + ((\3) >> 1)) ; Ev.Disp + db \2,\3 ;Y,X + ENDM + +FLYWARP_DATA: MACRO + EVENT_DISP \1,\2,\3 + db ((\2) & $01) ;sub-block Y + db ((\3) & $01) ;sub-block X + ENDM + +; external map entry macro +EMAP: MACRO ; emap x-coordinate,y-coordinate,textpointer +; the appearance of towns and routes in the town map, indexed by map id + ; nybble: y-coordinate + ; nybble: x-coordinate + ; word : pointer to map name + db (\1 + (\2 << 4)) + dw \3 + ENDM + +; internal map entry macro +IMAP: MACRO ; imap mapid_less_than,x-coordinate,y-coordinate,textpointer +; the appearance of buildings and dungeons in the town map + ; byte : maximum map id subject to this rule + ; nybble: y-coordinate + ; nybble: x-coordinate + ; word : pointer to map name + db \1 + db \2 + \3 << 4 + dw \4 + ENDM + +; tilesets' headers macro +TSETHEAD: MACRO + db BANK(\2) + dw \1,\2,\3 + db \4,\5,\6,\7,\8 + ENDM + +; macro for two nibbles +dn: MACRO + db (\1 << 4 | \2) + ENDM + +; macro for putting a byte then a word +dbw: MACRO + db \1 + dw \2 + ENDM + +; data format macros +RGB: MACRO + dw (\3 << 10 | \2 << 5 | \1) + ENDM + +; text macros +TX_NUM: MACRO +; print a big-endian decimal number. +; \1: address to read from +; \2: number of bytes to read +; \3: number of digits to display + db $09 + dw \1 + db \2 << 4 | \3 + ENDM + +TX_FAR: MACRO + db $17 + dw \1 + db BANK(\1) + ENDM + +; text engine command $1 +TX_RAM: MACRO +; prints text to screen +; \1: RAM address to read from + db $1 + dw \1 + ENDM + +; Predef macro. +PREDEF: MACRO + ld a, (\1 - PredefPointers) / 3 + call Predef + ENDM + +PREDEF_JUMP: MACRO + ld a, (\1 - PredefPointers) / 3 + jp Predef + ENDM + + + +;1_channel EQU $00 +;2_channels EQU $40 +;3_channels EQU $80 +;4_channels EQU $C0 + +CH0 EQU 0 +CH1 EQU 1 +CH2 EQU 2 +CH3 EQU 3 +CH4 EQU 4 +CH5 EQU 5 +CH6 EQU 6 +CH7 EQU 7 + +;Note Pitch +C_ EQU $0 +C# EQU $1 +D_ EQU $2 +D# EQU $3 +E_ EQU $4 +F_ EQU $5 +F# EQU $6 +G_ EQU $7 +G# EQU $8 +A_ EQU $9 +A# EQU $A +B_ EQU $B + +;drum instruments +snare1 EQU $01 +snare2 EQU $02 +snare3 EQU $03 +snare4 EQU $04 +snare5 EQU $05 +triangle1 EQU $06 +triangle2 EQU $07 +snare6 EQU $08 +snare7 EQU $09 +snare8 EQU $0a +snare9 EQU $0b +cymbal1 EQU $0c +cymbal2 EQU $0d +cymbal3 EQU $0e +mutedsnare1 EQU $0f +triangle3 EQU $10 +mutedsnare2 EQU $11 +mutedsnare3 EQU $12 +mutedsnare4 EQU $13 + +unknownsfx0x10: MACRO + db $10 + db \1 +ENDM + +unknownsfx0x20: MACRO + db $20 | \1 + db \2 + db \3 + db \4 +ENDM + +unknownnoise0x20: MACRO + db $20 | \1 + db \2 + db \3 +ENDM + +;format: note pitch, length (in 16ths) +note: MACRO + db (\1 << 4) | (\2 - 1) +ENDM + +;format: dnote length (in 16ths), instrument +dnote: MACRO + db $B0 | (\1 - 1) + db \2 +ENDM + +;format: rest length (in 16ths) +rest: MACRO + db $C0 | (\1 - 1) +ENDM + +; format: notetype speed, volume, fade +notetype: MACRO + db $D0 | \1 + db (\2 << 4) | \3 +ENDM + +dspeed: MACRO + db $D0 | \1 +ENDM + +octave: MACRO + db $E8 - \1 +ENDM + +togglecall: MACRO + db $E8 +ENDM + +;format: vibrato delay, rate, depth +vibrato: MACRO + db $EA + db \1 + db (\2 << 4) | \3 +ENDM + +pitchbend: MACRO + db $EB + db \1 + db \2 +ENDM + +duty: MACRO + db $EC + db \1 +ENDM + +tempo: MACRO + db $ED + db \1 + db \2 +ENDM + +unknownmusic0xee: MACRO + db $EE + db \1 +ENDM + +stereopanning: MACRO + db $F0 + db \1 +ENDM + +executemusic: MACRO + db $F8 +ENDM + +dutycycle: MACRO + db $FC + db \1 +ENDM + +;format: callchannel address +;callchannel: MACRO +; db $FD +; dw \1 +;ENDM + +;format: loopchannel count, address +;loopchannel: MACRO +; db $FE +; db \1 +; dw \2 +;ENDM + +endchannel: MACRO + db $FF +ENDM + -- cgit v1.3.1-sl0p From 5dc5feb29cac502907452e6d7503c2fae233c349 Mon Sep 17 00:00:00 2001 From: yenatch Date: Thu, 5 Dec 2013 01:34:12 -0500 Subject: split related constants into constants/ --- constants.asm | 1942 +---------------------------------- constants/item_constants.asm | 140 +++ constants/map_constants.asm | 250 +++++ constants/map_dimensions.asm | 890 ++++++++++++++++ constants/move_constants.asm | 180 ++++ constants/move_effect_constants.asm | 73 ++ constants/palette_constants.asm | 39 + constants/pokedex_constants.asm | 152 +++ constants/pokemon_constants.asm | 155 +++ constants/trainer_constants.asm | 48 + 10 files changed, 1936 insertions(+), 1933 deletions(-) create mode 100644 constants/item_constants.asm create mode 100644 constants/map_constants.asm create mode 100644 constants/map_dimensions.asm create mode 100644 constants/move_constants.asm create mode 100644 constants/move_effect_constants.asm create mode 100644 constants/palette_constants.asm create mode 100644 constants/pokedex_constants.asm create mode 100644 constants/pokemon_constants.asm create mode 100644 constants/trainer_constants.asm (limited to 'constants.asm') diff --git a/constants.asm b/constants.asm index 0b040448..e54b7c70 100644 --- a/constants.asm +++ b/constants.asm @@ -55,1055 +55,22 @@ PRICEDITEMLISTMENU EQU $02 ; Pokemart buy menu / Pokemart buy/sell choose quanti ITEMLISTMENU EQU $03 ; Start menu Item menu / Pokemart sell menu SPECIALLISTMENU EQU $04 ; list of special "items" e.g. floor list in elevators / list of badges -; pokemon name constants -RHYDON EQU $01 -KANGASKHAN EQU $02 -NIDORAN_M EQU $03 -CLEFAIRY EQU $04 -SPEAROW EQU $05 -VOLTORB EQU $06 -NIDOKING EQU $07 -SLOWBRO EQU $08 -IVYSAUR EQU $09 -EXEGGUTOR EQU $0A -LICKITUNG EQU $0B -EXEGGCUTE EQU $0C -GRIMER EQU $0D -GENGAR EQU $0E -NIDORAN_F EQU $0F -NIDOQUEEN EQU $10 -CUBONE EQU $11 -RHYHORN EQU $12 -LAPRAS EQU $13 -ARCANINE EQU $14 -MEW EQU $15 -GYARADOS EQU $16 -SHELLDER EQU $17 -TENTACOOL EQU $18 -GASTLY EQU $19 -SCYTHER EQU $1A -STARYU EQU $1B -BLASTOISE EQU $1C -PINSIR EQU $1D -TANGELA EQU $1E -GROWLITHE EQU $21 -ONIX EQU $22 -FEAROW EQU $23 -PIDGEY EQU $24 -SLOWPOKE EQU $25 -KADABRA EQU $26 -GRAVELER EQU $27 -CHANSEY EQU $28 -MACHOKE EQU $29 -MR_MIME EQU $2A -HITMONLEE EQU $2B -HITMONCHAN EQU $2C -ARBOK EQU $2D -PARASECT EQU $2E -PSYDUCK EQU $2F -DROWZEE EQU $30 -GOLEM EQU $31 -MAGMAR EQU $33 -ELECTABUZZ EQU $35 -MAGNETON EQU $36 -KOFFING EQU $37 -MANKEY EQU $39 -SEEL EQU $3A -DIGLETT EQU $3B -TAUROS EQU $3C -FARFETCH_D EQU $40 -VENONAT EQU $41 -DRAGONITE EQU $42 -DODUO EQU $46 -POLIWAG EQU $47 -JYNX EQU $48 -MOLTRES EQU $49 -ARTICUNO EQU $4A -ZAPDOS EQU $4B -DITTO EQU $4C -MEOWTH EQU $4D -KRABBY EQU $4E -VULPIX EQU $52 -NINETALES EQU $53 -PIKACHU EQU $54 -RAICHU EQU $55 -DRATINI EQU $58 -DRAGONAIR EQU $59 -KABUTO EQU $5A -KABUTOPS EQU $5B -HORSEA EQU $5C -SEADRA EQU $5D -SANDSHREW EQU $60 -SANDSLASH EQU $61 -OMANYTE EQU $62 -OMASTAR EQU $63 -JIGGLYPUFF EQU $64 -WIGGLYTUFF EQU $65 -EEVEE EQU $66 -FLAREON EQU $67 -JOLTEON EQU $68 -VAPOREON EQU $69 -MACHOP EQU $6A -ZUBAT EQU $6B -EKANS EQU $6C -PARAS EQU $6D -POLIWHIRL EQU $6E -POLIWRATH EQU $6F -WEEDLE EQU $70 -KAKUNA EQU $71 -BEEDRILL EQU $72 -DODRIO EQU $74 -PRIMEAPE EQU $75 -DUGTRIO EQU $76 -VENOMOTH EQU $77 -DEWGONG EQU $78 -CATERPIE EQU $7B -METAPOD EQU $7C -BUTTERFREE EQU $7D -MACHAMP EQU $7E -GOLDUCK EQU $80 -HYPNO EQU $81 -GOLBAT EQU $82 -MEWTWO EQU $83 -SNORLAX EQU $84 -MAGIKARP EQU $85 -MUK EQU $88 -KINGLER EQU $8A -CLOYSTER EQU $8B -ELECTRODE EQU $8D -CLEFABLE EQU $8E -WEEZING EQU $8F -PERSIAN EQU $90 -MAROWAK EQU $91 -HAUNTER EQU $93 -ABRA EQU $94 -ALAKAZAM EQU $95 -PIDGEOTTO EQU $96 -PIDGEOT EQU $97 -STARMIE EQU $98 -BULBASAUR EQU $99 -VENUSAUR EQU $9A -TENTACRUEL EQU $9B -GOLDEEN EQU $9D -SEAKING EQU $9E -PONYTA EQU $A3 -RAPIDASH EQU $A4 -RATTATA EQU $A5 -RATICATE EQU $A6 -NIDORINO EQU $A7 -NIDORINA EQU $A8 -GEODUDE EQU $A9 -PORYGON EQU $AA -AERODACTYL EQU $AB -MAGNEMITE EQU $AD -CHARMANDER EQU $B0 -SQUIRTLE EQU $B1 -CHARMELEON EQU $B2 -WARTORTLE EQU $B3 -CHARIZARD EQU $B4 -FOSSIL_KABUTOPS EQU $B6 -FOSSIL_AERODACTYL EQU $B7 -MON_GHOST EQU $B8 -ODDISH EQU $B9 -GLOOM EQU $BA -VILEPLUME EQU $BB -BELLSPROUT EQU $BC -WEEPINBELL EQU $BD -VICTREEBEL EQU $BE +INCLUDE "constants/pokemon_constants.asm" +INCLUDE "constants/trainer_constants.asm" +INCLUDE "constants/pokedex_constants.asm" +INCLUDE "constants/item_constants.asm" -; trainer name constants -; sometimes it's necessary to add $C8 to these values -YOUNGSTER EQU $01 -BUG_CATCHER EQU $02 -LASS EQU $03 -SAILOR EQU $04 -JR__TRAINER_M EQU $05 -JR__TRAINER_F EQU $06 -POKEMANIAC EQU $07 -SUPER_NERD EQU $08 -HIKER EQU $09 -BIKER EQU $0A -BURGLAR EQU $0B -ENGINEER EQU $0C -JUGGLER_X EQU $0D -FISHER EQU $0E -SWIMMER EQU $0F -CUE_BALL EQU $10 -GAMBLER EQU $11 -BEAUTY EQU $12 -PSYCHIC_TR EQU $13 -ROCKER EQU $14 -JUGGLER EQU $15 -TAMER EQU $16 -BIRD_KEEPER EQU $17 -BLACKBELT EQU $18 -SONY1 EQU $19 -PROF_OAK EQU $1A -CHIEF EQU $1B -SCIENTIST EQU $1C -GIOVANNI EQU $1D -ROCKET EQU $1E -COOLTRAINER_M EQU $1F -COOLTRAINER_F EQU $20 -BRUNO EQU $21 -BROCK EQU $22 -MISTY EQU $23 -LT__SURGE EQU $24 -ERIKA EQU $25 -KOGA EQU $26 -BLAINE EQU $27 -SABRINA EQU $28 -GENTLEMAN EQU $29 -SONY2 EQU $2A -SONY3 EQU $2B -LORELEI EQU $2C -CHANNELER EQU $2D -AGATHA EQU $2E -LANCE EQU $2F - -; pokemon dex numbers -DEX_BULBASAUR EQU 1 -DEX_IVYSAUR EQU 2 -DEX_VENUSAUR EQU 3 -DEX_CHARMANDER EQU 4 -DEX_CHARMELEON EQU 5 -DEX_CHARIZARD EQU 6 -DEX_SQUIRTLE EQU 7 -DEX_WARTORTLE EQU 8 -DEX_BLASTOISE EQU 9 -DEX_CATERPIE EQU 10 -DEX_METAPOD EQU 11 -DEX_BUTTERFREE EQU 12 -DEX_WEEDLE EQU 13 -DEX_KAKUNA EQU 14 -DEX_BEEDRILL EQU 15 -DEX_PIDGEY EQU 16 -DEX_PIDGEOTTO EQU 17 -DEX_PIDGEOT EQU 18 -DEX_RATTATA EQU 19 -DEX_RATICATE EQU 20 -DEX_SPEAROW EQU 21 -DEX_FEAROW EQU 22 -DEX_EKANS EQU 23 -DEX_ARBOK EQU 24 -DEX_PIKACHU EQU 25 -DEX_RAICHU EQU 26 -DEX_SANDSHREW EQU 27 -DEX_SANDSLASH EQU 28 -DEX_NIDORAN_F EQU 29 -DEX_NIDORINA EQU 30 -DEX_NIDOQUEEN EQU 31 -DEX_NIDORAN_M EQU 32 -DEX_NIDORINO EQU 33 -DEX_NIDOKING EQU 34 -DEX_CLEFAIRY EQU 35 -DEX_CLEFABLE EQU 36 -DEX_VULPIX EQU 37 -DEX_NINETALES EQU 38 -DEX_JIGGLYPUFF EQU 39 -DEX_WIGGLYTUFF EQU 40 -DEX_ZUBAT EQU 41 -DEX_GOLBAT EQU 42 -DEX_ODDISH EQU 43 -DEX_GLOOM EQU 44 -DEX_VILEPLUME EQU 45 -DEX_PARAS EQU 46 -DEX_PARASECT EQU 47 -DEX_VENONAT EQU 48 -DEX_VENOMOTH EQU 49 -DEX_DIGLETT EQU 50 -DEX_DUGTRIO EQU 51 -DEX_MEOWTH EQU 52 -DEX_PERSIAN EQU 53 -DEX_PSYDUCK EQU 54 -DEX_GOLDUCK EQU 55 -DEX_MANKEY EQU 56 -DEX_PRIMEAPE EQU 57 -DEX_GROWLITHE EQU 58 -DEX_ARCANINE EQU 59 -DEX_POLIWAG EQU 60 -DEX_POLIWHIRL EQU 61 -DEX_POLIWRATH EQU 62 -DEX_ABRA EQU 63 -DEX_KADABRA EQU 64 -DEX_ALAKAZAM EQU 65 -DEX_MACHOP EQU 66 -DEX_MACHOKE EQU 67 -DEX_MACHAMP EQU 68 -DEX_BELLSPROUT EQU 69 -DEX_WEEPINBELL EQU 70 -DEX_VICTREEBEL EQU 71 -DEX_TENTACOOL EQU 72 -DEX_TENTACRUEL EQU 73 -DEX_GEODUDE EQU 74 -DEX_GRAVELER EQU 75 -DEX_GOLEM EQU 76 -DEX_PONYTA EQU 77 -DEX_RAPIDASH EQU 78 -DEX_SLOWPOKE EQU 79 -DEX_SLOWBRO EQU 80 -DEX_MAGNEMITE EQU 81 -DEX_MAGNETON EQU 82 -DEX_FARFETCH_D EQU 83 -DEX_DODUO EQU 84 -DEX_DODRIO EQU 85 -DEX_SEEL EQU 86 -DEX_DEWGONG EQU 87 -DEX_GRIMER EQU 88 -DEX_MUK EQU 89 -DEX_SHELLDER EQU 90 -DEX_CLOYSTER EQU 91 -DEX_GASTLY EQU 92 -DEX_HAUNTER EQU 93 -DEX_GENGAR EQU 94 -DEX_ONIX EQU 95 -DEX_DROWZEE EQU 96 -DEX_HYPNO EQU 97 -DEX_KRABBY EQU 98 -DEX_KINGLER EQU 99 -DEX_VOLTORB EQU 100 -DEX_ELECTRODE EQU 101 -DEX_EXEGGCUTE EQU 102 -DEX_EXEGGUTOR EQU 103 -DEX_CUBONE EQU 104 -DEX_MAROWAK EQU 105 -DEX_HITMONLEE EQU 106 -DEX_HITMONCHAN EQU 107 -DEX_LICKITUNG EQU 108 -DEX_KOFFING EQU 109 -DEX_WEEZING EQU 110 -DEX_RHYHORN EQU 111 -DEX_RHYDON EQU 112 -DEX_CHANSEY EQU 113 -DEX_TANGELA EQU 114 -DEX_KANGASKHAN EQU 115 -DEX_HORSEA EQU 116 -DEX_SEADRA EQU 117 -DEX_GOLDEEN EQU 118 -DEX_SEAKING EQU 119 -DEX_STARYU EQU 120 -DEX_STARMIE EQU 121 -DEX_MR_MIME EQU 122 -DEX_SCYTHER EQU 123 -DEX_JYNX EQU 124 -DEX_ELECTABUZZ EQU 125 -DEX_MAGMAR EQU 126 -DEX_PINSIR EQU 127 -DEX_TAUROS EQU 128 -DEX_MAGIKARP EQU 129 -DEX_GYARADOS EQU 130 -DEX_LAPRAS EQU 131 -DEX_DITTO EQU 132 -DEX_EEVEE EQU 133 -DEX_VAPOREON EQU 134 -DEX_JOLTEON EQU 135 -DEX_FLAREON EQU 136 -DEX_PORYGON EQU 137 -DEX_OMANYTE EQU 138 -DEX_OMASTAR EQU 139 -DEX_KABUTO EQU 140 -DEX_KABUTOPS EQU 141 -DEX_AERODACTYL EQU 142 -DEX_SNORLAX EQU 143 -DEX_ARTICUNO EQU 144 -DEX_ZAPDOS EQU 145 -DEX_MOLTRES EQU 146 -DEX_DRATINI EQU 147 -DEX_DRAGONAIR EQU 148 -DEX_DRAGONITE EQU 149 -DEX_MEWTWO EQU 150 -DEX_MEW EQU 151 - - -; item name constants -MASTER_BALL EQU $01 -ULTRA_BALL EQU $02 -GREAT_BALL EQU $03 -POKE_BALL EQU $04 -TOWN_MAP EQU $05 -BICYCLE EQU $06 -SURFBOARD EQU $07 ; buggy? -SAFARI_BALL EQU $08 -POKEDEX EQU $09 -MOON_STONE EQU $0A -ANTIDOTE EQU $0B -BURN_HEAL EQU $0C -ICE_HEAL EQU $0D -AWAKENING EQU $0E -PARLYZ_HEAL EQU $0F -FULL_RESTORE EQU $10 -MAX_POTION EQU $11 -HYPER_POTION EQU $12 -SUPER_POTION EQU $13 -POTION EQU $14 -BOULDERBADGE EQU $15 -CASCADEBADGE EQU $16 -THUNDERBADGE EQU $17 -RAINBOWBADGE EQU $18 -SOULBADGE EQU $19 -MARSHBADGE EQU $1A -VOLCANOBADGE EQU $1B -EARTHBADGE EQU $1C -ESCAPE_ROPE EQU $1D -REPEL EQU $1E -OLD_AMBER EQU $1F -FIRE_STONE EQU $20 -THUNDER_STONE EQU $21 -WATER_STONE EQU $22 -HP_UP EQU $23 -PROTEIN EQU $24 -IRON EQU $25 -CARBOS EQU $26 -CALCIUM EQU $27 -RARE_CANDY EQU $28 -DOME_FOSSIL EQU $29 -HELIX_FOSSIL EQU $2A -SECRET_KEY EQU $2B -; XXX ????? EQU $2C -BIKE_VOUCHER EQU $2D -X_ACCURACY EQU $2E -LEAF_STONE EQU $2F -CARD_KEY EQU $30 -NUGGET EQU $31 -;PP_UP EQU $32 -POKE_DOLL EQU $33 -FULL_HEAL EQU $34 -REVIVE EQU $35 -MAX_REVIVE EQU $36 -GUARD_SPEC_ EQU $37 -SUPER_REPEL EQU $38 -MAX_REPEL EQU $39 -DIRE_HIT EQU $3A -COIN EQU $3B -FRESH_WATER EQU $3C -SODA_POP EQU $3D -LEMONADE EQU $3E -S_S__TICKET EQU $3F -GOLD_TEETH EQU $40 -X_ATTACK EQU $41 -X_DEFEND EQU $42 -X_SPEED EQU $43 -X_SPECIAL EQU $44 -COIN_CASE EQU $45 -OAKS_PARCEL EQU $46 -ITEMFINDER EQU $47 -SILPH_SCOPE EQU $48 -POKE_FLUTE EQU $49 -LIFT_KEY EQU $4A -EXP__ALL EQU $4B -OLD_ROD EQU $4C -GOOD_ROD EQU $4D -SUPER_ROD EQU $4E -; XXX todo: compare this to $32 -PP_UP EQU $4F -ETHER EQU $50 -MAX_ETHER EQU $51 -ELIXER EQU $52 -MAX_ELIXER EQU $53 -HM_01 EQU $C4 -HM_02 EQU $C5 -HM_03 EQU $C6 -HM_04 EQU $C7 -HM_05 EQU $C8 -TM_01 EQU $C9 -TM_02 EQU $CA -TM_03 EQU $CB -TM_04 EQU $CC -TM_05 EQU $CD -TM_06 EQU $CE -TM_07 EQU $CF -TM_08 EQU $D0 -TM_09 EQU $D1 -TM_10 EQU $D2 -TM_11 EQU $D3 -TM_12 EQU $D4 -TM_13 EQU $D5 -TM_14 EQU $D6 -TM_15 EQU $D7 -TM_16 EQU $D8 -TM_17 EQU $D9 -TM_18 EQU $DA -TM_19 EQU $DB -TM_20 EQU $DC -TM_21 EQU $DD -TM_22 EQU $DE -TM_23 EQU $DF -TM_24 EQU $E0 -TM_25 EQU $E1 -TM_26 EQU $E2 -TM_27 EQU $E3 -TM_28 EQU $E4 -TM_29 EQU $E5 -TM_30 EQU $E6 -TM_31 EQU $E7 -TM_32 EQU $E8 -TM_33 EQU $E9 -TM_34 EQU $EA -TM_35 EQU $EB -TM_36 EQU $EC -TM_37 EQU $ED -TM_38 EQU $EE -TM_39 EQU $EF -TM_40 EQU $F0 -TM_41 EQU $F1 -TM_42 EQU $F2 -TM_43 EQU $F3 -TM_44 EQU $F4 -TM_45 EQU $F5 -TM_46 EQU $F6 -TM_47 EQU $F7 -TM_48 EQU $F8 -TM_49 EQU $F9 -TM_50 EQU $FA - -; tentative move effect constants -; {stat}_(UP|DOWN)(1|2) means that the move raises the user's (or lowers the target's) corresponding stat modifier by 1 (or 2) stages -; {status condition}_side_effect means that the move has a side chance of causing that condition -; {status condition}_effect means that the move causes the status condition every time it hits the target -NO_ADDITIONAL_EFFECT EQU $00 -POISON_SIDE_EFFECT1 EQU $02 -DRAIN_HP_EFFECT EQU $03 -BURN_SIDE_EFFECT1 EQU $04 -FREEZE_SIDE_EFFECT EQU $05 -PARALYZE_SIDE_EFFECT1 EQU $06 -EXPLODE_EFFECT EQU $07 ; Explosion, Self Destruct -DREAM_EATER_EFFECT EQU $08 -MIRROR_MOVE_EFFECT EQU $09 -ATTACK_UP1_EFFECT EQU $0A -DEFENSE_UP1_EFFECT EQU $0B -SPECIAL_UP1_EFFECT EQU $0D -EVASION_UP1_EFFECT EQU $0F -PAY_DAY_EFFECT EQU $10 -SWIFT_EFFECT EQU $11 -ATTACK_DOWN1_EFFECT EQU $12 -DEFENSE_DOWN1_EFFECT EQU $13 -SPEED_DOWN1_EFFECT EQU $14 -ACCURACY_DOWN1_EFFECT EQU $16 -CONVERSION_EFFECT EQU $18 -HAZE_EFFECT EQU $19 -BIDE_EFFECT EQU $1A -THRASH_PETAL_DANCE_EFFECT EQU $1B -SWITCH_AND_TELEPORT_EFFECT EQU $1C -TWO_TO_FIVE_ATTACKS_EFFECT EQU $1D -FLINCH_SIDE_EFFECT1 EQU $1F -SLEEP_EFFECT EQU $20 -POISON_SIDE_EFFECT2 EQU $21 -BURN_SIDE_EFFECT2 EQU $22 -PARALYZE_SIDE_EFFECT2 EQU $24 -FLINCH_SIDE_EFFECT2 EQU $25 -OHKO_EFFECT EQU $26 ; moves like Horn Drill -CHARGE_EFFECT EQU $27 ; moves like Solar Beam -SUPER_FANG_EFFECT EQU $28 -SPECIAL_DAMAGE_EFFECT EQU $29 ; Seismic Toss, Night Shade, Sonic Boom, Dragon Rage, Psywave -TRAPPING_EFFECT EQU $2A ; moves like Wrap -FLY_EFFECT EQU $2B -ATTACK_TWICE_EFFECT EQU $2C -JUMP_KICK_EFFECT EQU $2D ; Jump Kick and Hi Jump Kick effect -MIST_EFFECT EQU $2E -FOCUS_ENERGY_EFFECT EQU $2F -RECOIL_EFFECT EQU $30 ; moves like Double Edge -CONFUSION_EFFECT EQU $31 ; Confuse Ray, Supersonic (not the move Confusion) -ATTACK_UP2_EFFECT EQU $32 -DEFENSE_UP2_EFFECT EQU $33 -SPEED_UP2_EFFECT EQU $34 -SPECIAL_UP2_EFFECT EQU $35 -HEAL_EFFECT EQU $38 ; Recover, Softboiled, Rest -TRANSFORM_EFFECT EQU $39 -DEFENSE_DOWN2_EFFECT EQU $3B -LIGHT_SCREEN_EFFECT EQU $40 -REFLECT_EFFECT EQU $41 -POISON_EFFECT EQU $42 -PARALYZE_EFFECT EQU $43 -ATTACK_DOWN_SIDE_EFFECT EQU $44 -DEFENSE_DOWN_SIDE_EFFECT EQU $45 -SPEED_DOWN_SIDE_EFFECT EQU $46 -SPECIAL_DOWN_SIDE_EFFECT EQU $47 -CONFUSION_SIDE_EFFECT EQU $4C -TWINEEDLE_EFFECT EQU $4D -SUBSTITUTE_EFFECT EQU $4F -HYPER_BEAM_EFFECT EQU $50 -RAGE_EFFECT EQU $51 -MIMIC_EFFECT EQU $52 -METRONOME_EFFECT EQU $53 -LEECH_SEED_EFFECT EQU $54 -SPLASH_EFFECT EQU $55 -DISABLE_EFFECT EQU $56 +INCLUDE "constants/move_constants.asm" +INCLUDE "constants/move_effect_constants.asm" ; fixed damage constants SONICBOOM_DAMAGE EQU 20 DRAGON_RAGE_DAMAGE EQU 40 -; move name constants -POUND EQU $01 -KARATE_CHOP EQU $02 -DOUBLESLAP EQU $03 -COMET_PUNCH EQU $04 -MEGA_PUNCH EQU $05 -PAY_DAY EQU $06 -FIRE_PUNCH EQU $07 -ICE_PUNCH EQU $08 -THUNDERPUNCH EQU $09 -SCRATCH EQU $0A -VICEGRIP EQU $0B -GUILLOTINE EQU $0C -RAZOR_WIND EQU $0D -SWORDS_DANCE EQU $0E -CUT EQU $0F -GUST EQU $10 -WING_ATTACK EQU $11 -WHIRLWIND EQU $12 -FLY EQU $13 -BIND EQU $14 -SLAM EQU $15 -VINE_WHIP EQU $16 -STOMP EQU $17 -DOUBLE_KICK EQU $18 -MEGA_KICK EQU $19 -JUMP_KICK EQU $1A -ROLLING_KICK EQU $1B -SAND_ATTACK EQU $1C -HEADBUTT EQU $1D -HORN_ATTACK EQU $1E -FURY_ATTACK EQU $1F -HORN_DRILL EQU $20 -TACKLE EQU $21 -BODY_SLAM EQU $22 -WRAP EQU $23 -TAKE_DOWN EQU $24 -THRASH EQU $25 -DOUBLE_EDGE EQU $26 -TAIL_WHIP EQU $27 -POISON_STING EQU $28 -TWINEEDLE EQU $29 -PIN_MISSILE EQU $2A -LEER EQU $2B -BITE EQU $2C -GROWL EQU $2D -ROAR EQU $2E -SING EQU $2F -SUPERSONIC EQU $30 -SONICBOOM EQU $31 -DISABLE EQU $32 -ACID EQU $33 -EMBER EQU $34 -FLAMETHROWER EQU $35 -MIST EQU $36 -WATER_GUN EQU $37 -HYDRO_PUMP EQU $38 -SURF EQU $39 -ICE_BEAM EQU $3A -BLIZZARD EQU $3B -PSYBEAM EQU $3C -BUBBLEBEAM EQU $3D -AURORA_BEAM EQU $3E -HYPER_BEAM EQU $3F -PECK EQU $40 -DRILL_PECK EQU $41 -SUBMISSION EQU $42 -LOW_KICK EQU $43 -COUNTER EQU $44 -SEISMIC_TOSS EQU $45 -STRENGTH EQU $46 -ABSORB EQU $47 -MEGA_DRAIN EQU $48 -LEECH_SEED EQU $49 -GROWTH EQU $4A -RAZOR_LEAF EQU $4B -SOLARBEAM EQU $4C -POISONPOWDER EQU $4D -STUN_SPORE EQU $4E -SLEEP_POWDER EQU $4F -PETAL_DANCE EQU $50 -STRING_SHOT EQU $51 -DRAGON_RAGE EQU $52 -FIRE_SPIN EQU $53 -THUNDERSHOCK EQU $54 -THUNDERBOLT EQU $55 -THUNDER_WAVE EQU $56 -THUNDER EQU $57 -ROCK_THROW EQU $58 -EARTHQUAKE EQU $59 -FISSURE EQU $5A -DIG EQU $5B -TOXIC EQU $5C -CONFUSION EQU $5D -PSYCHIC_M EQU $5E -HYPNOSIS EQU $5F -MEDITATE EQU $60 -AGILITY EQU $61 -QUICK_ATTACK EQU $62 -RAGE EQU $63 -TELEPORT EQU $64 -NIGHT_SHADE EQU $65 -MIMIC EQU $66 -SCREECH EQU $67 -DOUBLE_TEAM EQU $68 -RECOVER EQU $69 -HARDEN EQU $6A -MINIMIZE EQU $6B -SMOKESCREEN EQU $6C -CONFUSE_RAY EQU $6D -WITHDRAW EQU $6E -DEFENSE_CURL EQU $6F -BARRIER EQU $70 -LIGHT_SCREEN EQU $71 -HAZE EQU $72 -REFLECT EQU $73 -FOCUS_ENERGY EQU $74 -BIDE EQU $75 -METRONOME EQU $76 -MIRROR_MOVE EQU $77 -SELFDESTRUCT EQU $78 -EGG_BOMB EQU $79 -LICK EQU $7A -SMOG EQU $7B -SLUDGE EQU $7C -BONE_CLUB EQU $7D -FIRE_BLAST EQU $7E -WATERFALL EQU $7F -CLAMP EQU $80 -SWIFT EQU $81 -SKULL_BASH EQU $82 -SPIKE_CANNON EQU $83 -CONSTRICT EQU $84 -AMNESIA EQU $85 -KINESIS EQU $86 -SOFTBOILED EQU $87 -HI_JUMP_KICK EQU $88 -GLARE EQU $89 -DREAM_EATER EQU $8A -POISON_GAS EQU $8B -BARRAGE EQU $8C -LEECH_LIFE EQU $8D -LOVELY_KISS EQU $8E -SKY_ATTACK EQU $8F -TRANSFORM EQU $90 -BUBBLE EQU $91 -DIZZY_PUNCH EQU $92 -SPORE EQU $93 -FLASH EQU $94 -PSYWAVE EQU $95 -SPLASH EQU $96 -ACID_ARMOR EQU $97 -CRABHAMMER EQU $98 -EXPLOSION EQU $99 -FURY_SWIPES EQU $9A -BONEMERANG EQU $9B -REST EQU $9C -ROCK_SLIDE EQU $9D -HYPER_FANG EQU $9E -SHARPEN EQU $9F -CONVERSION EQU $A0 -TRI_ATTACK EQU $A1 -SUPER_FANG EQU $A2 -SLASH EQU $A3 -SUBSTITUTE EQU $A4 -STRUGGLE EQU $A5 -; these do double duty as animation identifiers -SHOWPIC_ANIM EQU $A6 ; redraw monster pic -XSTATITEM_ANIM EQU $AE ; use X Attack/Defense/Speed/Special -SLP_ANIM EQU $BD ; sleeping monster -CONF_ANIM EQU $BF ; confused monster -TOSS_ANIM EQU $C1 ; toss Poké Ball -SHAKE_ANIM EQU $C2 ; shaking Poké Ball when catching monster -POOF_ANIM EQU $C3 ; puff of smoke -BLOCKBALL_ANIM EQU $C4 ; trainer knocks away Poké Ball -GREATTOSS_ANIM EQU $C5 ; toss Great Ball -ULTRATOSS_ANIM EQU $C6 ; toss Ultra Ball or Master Ball -HIDEPIC_ANIM EQU $C8 ; monster disappears -ROCK_ANIM EQU $C9 ; throw rock -BAIT_ANIM EQU $CA ; throw bait - -; super game boy palettes -PAL_ROUTE EQU $00 -PAL_PALLET EQU $01 -PAL_VIRIDIAN EQU $02 -PAL_PEWTER EQU $03 -PAL_CERULEAN EQU $04 -PAL_LAVENDER EQU $05 -PAL_VERMILION EQU $06 -PAL_CELADON EQU $07 -PAL_FUCHSIA EQU $08 -PAL_CINNABAR EQU $09 -PAL_INDIGO EQU $0A -PAL_SAFFRON EQU $0B -PAL_TOWNMAP EQU $0C -PAL_LOGO1 EQU $0D -; XXX -PAL_LOGO2 EQU $0F -PAL_MEWMON EQU $10 -PAL_BLUEMON EQU $11 -PAL_REDMON EQU $12 -PAL_CYANMON EQU $13 -PAL_PURPLEMON EQU $14 -PAL_BROWNMON EQU $15 -PAL_GREENMON EQU $16 -PAL_PINKMON EQU $17 -PAL_YELLOWMON EQU $18 -PAL_GREYMON EQU $19 -PAL_SLOTS1 EQU $1A -PAL_SLOTS2 EQU $1B -PAL_SLOTS3 EQU $1C -PAL_SLOTS4 EQU $1D -PAL_BLACK EQU $1E -PAL_GREENBAR EQU $1F -PAL_YELLOWBAR EQU $20 -PAL_REDBAR EQU $21 -PAL_BADGE EQU $22 -PAL_CAVE EQU $23 -; XXX - -; map name constants -PALLET_TOWN EQU $00 -VIRIDIAN_CITY EQU $01 -PEWTER_CITY EQU $02 -CERULEAN_CITY EQU $03 -LAVENDER_TOWN EQU $04 -VERMILION_CITY EQU $05 -CELADON_CITY EQU $06 -FUCHSIA_CITY EQU $07 -CINNABAR_ISLAND EQU $08 -INDIGO_PLATEAU EQU $09 -SAFFRON_CITY EQU $0A -; unused EQU $0B -ROUTE_1 EQU $0C -ROUTE_2 EQU $0D -ROUTE_3 EQU $0E -ROUTE_4 EQU $0F -ROUTE_5 EQU $10 -ROUTE_6 EQU $11 -ROUTE_7 EQU $12 -ROUTE_8 EQU $13 -ROUTE_9 EQU $14 -ROUTE_10 EQU $15 -ROUTE_11 EQU $16 -ROUTE_12 EQU $17 -ROUTE_13 EQU $18 -ROUTE_14 EQU $19 -ROUTE_15 EQU $1A -ROUTE_16 EQU $1B -ROUTE_17 EQU $1C -ROUTE_18 EQU $1D -ROUTE_19 EQU $1E -ROUTE_20 EQU $1F -ROUTE_21 EQU $20 -ROUTE_22 EQU $21 -ROUTE_23 EQU $22 -ROUTE_24 EQU $23 -ROUTE_25 EQU $24 -REDS_HOUSE_1F EQU $25 -REDS_HOUSE_2F EQU $26 -BLUES_HOUSE EQU $27 -OAKS_LAB EQU $28 -VIRIDIAN_POKECENTER EQU $29 -VIRIDIAN_MART EQU $2A -VIRIDIAN_SCHOOL EQU $2B -VIRIDIAN_HOUSE EQU $2C -VIRIDIAN_GYM EQU $2D -DIGLETTS_CAVE_EXIT EQU $2E -VIRIDIAN_FOREST_EXIT EQU $2F -ROUTE_2_HOUSE EQU $30 -ROUTE_2_GATE EQU $31 -VIRIDIAN_FOREST_ENTRANCE EQU $32 -VIRIDIAN_FOREST EQU $33 -MUSEUM_1F EQU $34 -MUSEUM_2F EQU $35 -PEWTER_GYM EQU $36 -PEWTER_HOUSE_1 EQU $37 -PEWTER_MART EQU $38 -PEWTER_HOUSE_2 EQU $39 -PEWTER_POKECENTER EQU $3A -MT_MOON_1 EQU $3B -MT_MOON_2 EQU $3C -MT_MOON_3 EQU $3D -TRASHED_HOUSE EQU $3E -CERULEAN_HOUSE EQU $3F -CERULEAN_POKECENTER EQU $40 -CERULEAN_GYM EQU $41 -BIKE_SHOP EQU $42 -CERULEAN_MART EQU $43 -MT_MOON_POKECENTER EQU $44 -;copy of TRASHED_HOUSE EQU $45 -ROUTE_5_GATE EQU $46 -PATH_ENTRANCE_ROUTE_5 EQU $47 -DAYCAREM EQU $48 -ROUTE_6_GATE EQU $49 -PATH_ENTRANCE_ROUTE_6 EQU $4A -;copy of PATH_ENTRANCE_ROUTE_6 EQU $4B -ROUTE_7_GATE EQU $4C -PATH_ENTRANCE_ROUTE_7 EQU $4D -;copy of PATH_ENTRANCE_ROUTE_7 EQU $4E -ROUTE_8_GATE EQU $4F -PATH_ENTRANCE_ROUTE_8 EQU $50 -ROCK_TUNNEL_POKECENTER EQU $51 -ROCK_TUNNEL_1 EQU $52 -POWER_PLANT EQU $53 -ROUTE_11_GATE_1F EQU $54 -DIGLETTS_CAVE_ENTRANCE EQU $55 -ROUTE_11_GATE_2F EQU $56 -ROUTE_12_GATE EQU $57 -BILLS_HOUSE EQU $58 -VERMILION_POKECENTER EQU $59 -POKEMON_FAN_CLUB EQU $5A -VERMILION_MART EQU $5B -VERMILION_GYM EQU $5C -VERMILION_HOUSE_1 EQU $5D -VERMILION_DOCK EQU $5E -SS_ANNE_1 EQU $5F -SS_ANNE_2 EQU $60 -SS_ANNE_3 EQU $61 -SS_ANNE_4 EQU $62 -SS_ANNE_5 EQU $63 -SS_ANNE_6 EQU $64 -SS_ANNE_7 EQU $65 -SS_ANNE_8 EQU $66 -SS_ANNE_9 EQU $67 -SS_ANNE_10 EQU $68 -;EQU $69 -;EQU $6A -;EQU $6B -VICTORY_ROAD_1 EQU $6C -;EQU $6D -;EQU $6E -;EQU $6F -;EQU $70 -LANCES_ROOM EQU $71 -;EQU $72 -;EQU $73 -;EQU $74 -;EQU $75 -HALL_OF_FAME EQU $76 -UNDERGROUND_PATH_NS EQU $77 -CHAMPIONS_ROOM EQU $78 -UNDERGROUND_PATH_WE EQU $79 -CELADON_MART_1 EQU $7A -CELADON_MART_2 EQU $7B -CELADON_MART_3 EQU $7C -CELADON_MART_4 EQU $7D -CELADON_MART_ROOF EQU $7E -CELADON_MART_ELEVATOR EQU $7F -CELADON_MANSION_1 EQU $80 -CELADON_MANSION_2 EQU $81 -CELADON_MANSION_3 EQU $82 -CELADON_MANSION_4 EQU $83 -CELADON_MANSION_5 EQU $84 -CELADON_POKECENTER EQU $85 -CELADON_GYM EQU $86 -GAME_CORNER EQU $87 -CELADON_MART_5 EQU $88 -CELADONPRIZE_ROOM EQU $89 -CELADON_DINER EQU $8A -CELADON_HOUSE EQU $8B -CELADON_HOTEL EQU $8C -LAVENDER_POKECENTER EQU $8D -POKEMONTOWER_1 EQU $8E -POKEMONTOWER_2 EQU $8F -POKEMONTOWER_3 EQU $90 -POKEMONTOWER_4 EQU $91 -POKEMONTOWER_5 EQU $92 -POKEMONTOWER_6 EQU $93 -POKEMONTOWER_7 EQU $94 -LAVENDER_HOUSE_1 EQU $95 -LAVENDER_MART EQU $96 -LAVENDER_HOUSE_2 EQU $97 -FUCHSIA_MART EQU $98 -FUCHSIA_HOUSE_1 EQU $99 -FUCHSIA_POKECENTER EQU $9A -FUCHSIA_HOUSE_2 EQU $9B -SAFARIZONEENTRANCE EQU $9C -FUCHSIA_GYM EQU $9D -FUCHSIAMEETINGROOM EQU $9E -SEAFOAM_ISLANDS_2 EQU $9F -SEAFOAM_ISLANDS_3 EQU $A0 -SEAFOAM_ISLANDS_4 EQU $A1 -SEAFOAM_ISLANDS_5 EQU $A2 -VERMILION_HOUSE_2 EQU $A3 -FUCHSIA_HOUSE_3 EQU $A4 -MANSION_1 EQU $A5 -CINNABAR_GYM EQU $A6 -CINNABAR_LAB_1 EQU $A7 -CINNABAR_LAB_2 EQU $A8 -CINNABAR_LAB_3 EQU $A9 -CINNABAR_LAB_4 EQU $AA -CINNABAR_POKECENTER EQU $AB -CINNABAR_MART EQU $AC -;copy of CINNABAR_MART EQU $AD -INDIGO_PLATEAU_LOBBY EQU $AE -COPYCATS_HOUSE_1F EQU $AF -COPYCATS_HOUSE_2F EQU $B0 -FIGHTINGDOJO EQU $B1 -SAFFRON_GYM EQU $B2 -SAFFRON_HOUSE_1 EQU $B3 -SAFFRON_MART EQU $B4 -SILPH_CO_1F EQU $B5 -SAFFRON_POKECENTER EQU $B6 -SAFFRON_HOUSE_2 EQU $B7 -ROUTE_15_GATE_1F EQU $B8 -ROUTE_15_GATE_2F EQU $B9 -ROUTE_16_GATE_1F EQU $BA -ROUTE_16_GATE_2F EQU $BB -ROUTE_16_HOUSE EQU $BC -ROUTE_12_HOUSE EQU $BD -ROUTE_18_GATE_1F EQU $BE -ROUTE_18_GATE_2F EQU $BF -SEAFOAM_ISLANDS_1 EQU $C0 -ROUTE_22_GATE EQU $C1 -VICTORY_ROAD_2 EQU $C2 -ROUTE_12_GATE_2F EQU $C3 -VERMILION_HOUSE_3 EQU $C4 -DIGLETTS_CAVE EQU $C5 -VICTORY_ROAD_3 EQU $C6 -ROCKET_HIDEOUT_1 EQU $C7 -ROCKET_HIDEOUT_2 EQU $C8 -ROCKET_HIDEOUT_3 EQU $C9 -ROCKET_HIDEOUT_4 EQU $CA -ROCKET_HIDEOUT_ELEVATOR EQU $CB -;EQU $CC -;EQU $CD -;EQU $CE -SILPH_CO_2F EQU $CF -SILPH_CO_3F EQU $D0 -SILPH_CO_4F EQU $D1 -SILPH_CO_5F EQU $D2 -SILPH_CO_6F EQU $D3 -SILPH_CO_7F EQU $D4 -SILPH_CO_8F EQU $D5 -MANSION_2 EQU $D6 -MANSION_3 EQU $D7 -MANSION_4 EQU $D8 -SAFARI_ZONE_EAST EQU $D9 -SAFARI_ZONE_NORTH EQU $DA -SAFARI_ZONE_WEST EQU $DB -SAFARI_ZONE_CENTER EQU $DC -SAFARI_ZONE_REST_HOUSE_1 EQU $DD -SAFARI_ZONE_SECRET_HOUSE EQU $DE -SAFARI_ZONE_REST_HOUSE_2 EQU $DF -SAFARI_ZONE_REST_HOUSE_3 EQU $E0 -SAFARI_ZONE_REST_HOUSE_4 EQU $E1 -UNKNOWN_DUNGEON_2 EQU $E2 -UNKNOWN_DUNGEON_3 EQU $E3 -UNKNOWN_DUNGEON_1 EQU $E4 -NAME_RATERS_HOUSE EQU $E5 -CERULEAN_HOUSE_3 EQU $E6 -;EQU $E7 -ROCK_TUNNEL_2 EQU $E8 -SILPH_CO_9F EQU $E9 -SILPH_CO_10F EQU $EA -SILPH_CO_11F EQU $EB -SILPH_CO_ELEVATOR EQU $EC -;EQU $ED -;EQU $EE -BATTLE_CENTER EQU $EF -TRADE_CENTER EQU $F0 -;EQU $F1 -;EQU $F2 -;EQU $F3 -;EQU $F4 -LORELEIS_ROOM EQU $F5 -BRUNOS_ROOM EQU $F6 -AGATHAS_ROOM EQU $F7 -BEACH_HOUSE EQU $F8 ; Yellow only +INCLUDE "constants/palette_constants.asm" +INCLUDE "constants/map_constants.asm" +INCLUDE "constants/map_dimensions.asm" ; Evolution types EV_LEVEL EQU 1 @@ -1229,894 +196,3 @@ SPRITE_LYING_OLD_MAN_UNUSED_1 EQU $46 SPRITE_LYING_OLD_MAN_UNUSED_2 EQU $47 SPRITE_LYING_OLD_MAN EQU $48 -; Map sizes (y, x) - -; PalletTown_h map_id=0 -PALLET_TOWN_HEIGHT EQU $09 -PALLET_TOWN_WIDTH EQU $0a - -; ViridianCity_h map_id=1 -VIRIDIAN_CITY_HEIGHT EQU $12 -VIRIDIAN_CITY_WIDTH EQU $14 - -; PewterCity_h map_id=2 -PEWTER_CITY_HEIGHT EQU $12 -PEWTER_CITY_WIDTH EQU $14 - -; CeruleanCity_h map_id=3 -CERULEAN_CITY_HEIGHT EQU $12 -CERULEAN_CITY_WIDTH EQU $14 - -; LavenderTown_h map_id=4 -LAVENDER_TOWN_HEIGHT EQU $09 -LAVENDER_TOWN_WIDTH EQU $0a - -; VermilionCity_h map_id=5 -VERMILION_CITY_HEIGHT EQU $12 -VERMILION_CITY_WIDTH EQU $14 - -; CeladonCity_h map_id=6 -CELADON_CITY_HEIGHT EQU $12 -CELADON_CITY_WIDTH EQU $19 - -; FuchsiaCity_h map_id=7 -FUCHSIA_CITY_HEIGHT EQU $12 -FUCHSIA_CITY_WIDTH EQU $14 - -; CinnabarIsland_h map_id=8 -CINNABAR_ISLAND_HEIGHT EQU $09 -CINNABAR_ISLAND_WIDTH EQU $0a - -; IndigoPlateau_h map_id=9 -INDIGO_PLATEAU_HEIGHT EQU $09 -INDIGO_PLATEAU_WIDTH EQU $0a - -; SaffronCity_h map_id=10 -SAFFRON_CITY_HEIGHT EQU $12 -SAFFRON_CITY_WIDTH EQU $14 - -; Route1_h map_id=12 -ROUTE_1_HEIGHT EQU $12 -ROUTE_1_WIDTH EQU $0a - -; Route2_h map_id=13 -ROUTE_2_HEIGHT EQU $24 -ROUTE_2_WIDTH EQU $0a - -; Route3_h map_id=14 -ROUTE_3_HEIGHT EQU $09 -ROUTE_3_WIDTH EQU $23 - -; Route4_h map_id=15 -ROUTE_4_HEIGHT EQU $09 -ROUTE_4_WIDTH EQU $2d - -; Route5_h map_id=16 -ROUTE_5_HEIGHT EQU $12 -ROUTE_5_WIDTH EQU $0a - -; Route6_h map_id=17 -ROUTE_6_HEIGHT EQU $12 -ROUTE_6_WIDTH EQU $0a - -; Route7_h map_id=18 -ROUTE_7_HEIGHT EQU $09 -ROUTE_7_WIDTH EQU $0a - -; Route8_h map_id=19 -ROUTE_8_HEIGHT EQU $09 -ROUTE_8_WIDTH EQU $1e - -; Route9_h map_id=20 -ROUTE_9_HEIGHT EQU $09 -ROUTE_9_WIDTH EQU $1e - -; Route10_h map_id=21 -ROUTE_10_HEIGHT EQU $24 -ROUTE_10_WIDTH EQU $0a - -; Route11_h map_id=22 -ROUTE_11_HEIGHT EQU $09 -ROUTE_11_WIDTH EQU $1e - -; Route12_h map_id=23 -ROUTE_12_HEIGHT EQU $36 -ROUTE_12_WIDTH EQU $0a - -; Route13_h map_id=24 -ROUTE_13_HEIGHT EQU $09 -ROUTE_13_WIDTH EQU $1e - -; Route14_h map_id=25 -ROUTE_14_HEIGHT EQU $1b -ROUTE_14_WIDTH EQU $0a - -; Route15_h map_id=26 -ROUTE_15_HEIGHT EQU $09 -ROUTE_15_WIDTH EQU $1e - -; Route16_h map_id=27 -ROUTE_16_HEIGHT EQU $09 -ROUTE_16_WIDTH EQU $14 - -; Route17_h map_id=28 -ROUTE_17_HEIGHT EQU $48 -ROUTE_17_WIDTH EQU $0a - -; Route18_h map_id=29 -ROUTE_18_HEIGHT EQU $09 -ROUTE_18_WIDTH EQU $19 - -; Route19_h map_id=30 -ROUTE_19_HEIGHT EQU $1b -ROUTE_19_WIDTH EQU $0a - -; Route20_h map_id=31 -ROUTE_20_HEIGHT EQU $09 -ROUTE_20_WIDTH EQU $32 - -; Route21_h map_id=32 -ROUTE_21_HEIGHT EQU $2d -ROUTE_21_WIDTH EQU $0a - -; Route22_h map_id=33 -ROUTE_22_HEIGHT EQU $09 -ROUTE_22_WIDTH EQU $14 - -; Route23_h map_id=34 -ROUTE_23_HEIGHT EQU $48 -ROUTE_23_WIDTH EQU $0a - -; Route24_h map_id=35 -ROUTE_24_HEIGHT EQU $12 -ROUTE_24_WIDTH EQU $0a - -; Route25_h map_id=36 -ROUTE_25_HEIGHT EQU $09 -ROUTE_25_WIDTH EQU $1e - -; RedsHouse1F_h map_id=37 -REDS_HOUSE_1F_HEIGHT EQU $04 -REDS_HOUSE_1F_WIDTH EQU $04 - -; RedsHouse2F_h map_id=38 -REDS_HOUSE_2F_HEIGHT EQU $04 -REDS_HOUSE_2F_WIDTH EQU $04 - -; BluesHouse_h map_id=39 -BLUES_HOUSE_HEIGHT EQU $04 -BLUES_HOUSE_WIDTH EQU $04 - -; OaksLab_h map_id=40 -OAKS_LAB_HEIGHT EQU $06 -OAKS_LAB_WIDTH EQU $05 - -; ViridianPokeCenter_h map_id=41 -VIRIDIAN_POKECENTER_HEIGHT EQU $04 -VIRIDIAN_POKECENTER_WIDTH EQU $07 - -; ViridianMart_h map_id=42 -VIRIDIAN_MART_HEIGHT EQU $04 -VIRIDIAN_MART_WIDTH EQU $04 - -; School_h map_id=43 -VIRIDIAN_SCHOOL_HEIGHT EQU $04 -VIRIDIAN_SCHOOL_WIDTH EQU $04 - -; ViridianHouse_h map_id=44 -VIRIDIAN_HOUSE_HEIGHT EQU $04 -VIRIDIAN_HOUSE_WIDTH EQU $04 - -; ViridianGym_h map_id=45 -VIRIDIAN_GYM_HEIGHT EQU $09 -VIRIDIAN_GYM_WIDTH EQU $0a - -; DiglettsCaveRoute2_h map_id=46 -DIGLETTS_CAVE_EXIT_HEIGHT EQU $04 -DIGLETTS_CAVE_EXIT_WIDTH EQU $04 - -; ViridianForestexit_h map_id=47 -VIRIDIAN_FOREST_EXIT_HEIGHT EQU $04 -VIRIDIAN_FOREST_EXIT_WIDTH EQU $05 - -; Route2House_h map_id=48 -ROUTE_2_HOUSE_HEIGHT EQU $04 -ROUTE_2_HOUSE_WIDTH EQU $04 - -; Route2Gate_h map_id=49 -ROUTE_2_GATE_HEIGHT EQU $04 -ROUTE_2_GATE_WIDTH EQU $05 - -; ViridianForestEntrance_h map_id=50 -VIRIDIAN_FOREST_ENTRANCE_HEIGHT EQU $04 -VIRIDIAN_FOREST_ENTRANCE_WIDTH EQU $05 - -; ViridianForest_h map_id=51 -VIRIDIAN_FOREST_HEIGHT EQU $18 -VIRIDIAN_FOREST_WIDTH EQU $11 - -; MuseumF1_h map_id=52 -MUSEUM_1F_HEIGHT EQU $04 -MUSEUM_1F_WIDTH EQU $0a - -; MuseumF2_h map_id=53 -MUSEUM_2F_HEIGHT EQU $04 -MUSEUM_2F_WIDTH EQU $07 - -; PewterGym_h map_id=54 -PEWTER_GYM_HEIGHT EQU $07 -PEWTER_GYM_WIDTH EQU $05 - -; PewterHouse1_h map_id=55 -PEWTER_HOUSE_1_HEIGHT EQU $04 -PEWTER_HOUSE_1_WIDTH EQU $04 - -; PewterMart_h map_id=56 -PEWTER_MART_HEIGHT EQU $04 -PEWTER_MART_WIDTH EQU $04 - -; PewterHouse2_h map_id=57 -PEWTER_HOUSE_2_HEIGHT EQU $04 -PEWTER_HOUSE_2_WIDTH EQU $04 - -; PewterPokecenter_h map_id=58 -PEWTER_POKECENTER_HEIGHT EQU $04 -PEWTER_POKECENTER_WIDTH EQU $07 - -; MtMoon1_h map_id=59 -MT_MOON_1_HEIGHT EQU $12 -MT_MOON_1_WIDTH EQU $14 - -; MtMoon2_h map_id=60 -MT_MOON_2_HEIGHT EQU $0e -MT_MOON_2_WIDTH EQU $0e - -; MtMoon3_h map_id=61 -MT_MOON_3_HEIGHT EQU $12 -MT_MOON_3_WIDTH EQU $14 - -; CeruleanHouseTrashed_h map_id=62 -TRASHED_HOUSE_HEIGHT EQU $04 -TRASHED_HOUSE_WIDTH EQU $04 - -; CeruleanHouse_h map_id=63 -CERULEAN_HOUSE_HEIGHT EQU $04 -CERULEAN_HOUSE_WIDTH EQU $04 - -; CeruleanPokecenter_h map_id=64 -CERULEAN_POKECENTER_HEIGHT EQU $04 -CERULEAN_POKECENTER_WIDTH EQU $07 - -; CeruleanGym_h map_id=65 -CERULEAN_GYM_HEIGHT EQU $07 -CERULEAN_GYM_WIDTH EQU $05 - -; BikeShop_h map_id=66 -BIKE_SHOP_HEIGHT EQU $04 -BIKE_SHOP_WIDTH EQU $04 - -; CeruleanMart_h map_id=67 -CERULEAN_MART_HEIGHT EQU $04 -CERULEAN_MART_WIDTH EQU $04 - -; MtMoonPokecenter_h map_id=68 -MT_MOON_POKECENTER_HEIGHT EQU $04 -MT_MOON_POKECENTER_WIDTH EQU $07 - -; Route5Gate_h map_id=70 -ROUTE_5_GATE_HEIGHT EQU $03 -ROUTE_5_GATE_WIDTH EQU $04 - -; UndergroundTunnelEntranceRoute5_h map_id=71 -PATH_ENTRANCE_ROUTE_5_HEIGHT EQU $04 -PATH_ENTRANCE_ROUTE_5_WIDTH EQU $04 - -; DayCareM_h map_id=72 -DAYCAREM_HEIGHT EQU $04 -DAYCAREM_WIDTH EQU $04 - -; Route6Gate_h map_id=73 -ROUTE_6_GATE_HEIGHT EQU $03 -ROUTE_6_GATE_WIDTH EQU $04 - -; UndergroundTunnelEntranceRoute6_h map_id=74 -PATH_ENTRANCE_ROUTE_6_HEIGHT EQU $04 -PATH_ENTRANCE_ROUTE_6_WIDTH EQU $04 - -; Route7Gate_h map_id=76 -ROUTE_7_GATE_HEIGHT EQU $04 -ROUTE_7_GATE_WIDTH EQU $03 - -; UndergroundPathEntranceRoute7_h map_id=77 -PATH_ENTRANCE_ROUTE_7_HEIGHT EQU $04 -PATH_ENTRANCE_ROUTE_7_WIDTH EQU $04 - -; Route8Gate_h map_id=79 -ROUTE_8_GATE_HEIGHT EQU $04 -ROUTE_8_GATE_WIDTH EQU $03 - -; UndergroundPathEntranceRoute8_h map_id=80 -PATH_ENTRANCE_ROUTE_8_HEIGHT EQU $04 -PATH_ENTRANCE_ROUTE_8_WIDTH EQU $04 - -; RockTunnelPokecenter_h map_id=81 -ROCK_TUNNEL_POKECENTER_HEIGHT EQU $04 -ROCK_TUNNEL_POKECENTER_WIDTH EQU $07 - -; RockTunnel1_h map_id=82 -ROCK_TUNNEL_1_HEIGHT EQU $12 -ROCK_TUNNEL_1_WIDTH EQU $14 - -; PowerPlant_h map_id=83 -POWER_PLANT_HEIGHT EQU $12 -POWER_PLANT_WIDTH EQU $14 - -; Route11Gate_h map_id=84 -ROUTE_11_GATE_1F_HEIGHT EQU $05 -ROUTE_11_GATE_1F_WIDTH EQU $04 - -; DiglettsCaveEntranceRoute11_h map_id=85 -DIGLETTS_CAVE_ENTRANCE_HEIGHT EQU $04 -DIGLETTS_CAVE_ENTRANCE_WIDTH EQU $04 - -; Route11GateUpstairs_h map_id=86 -ROUTE_11_GATE_2F_HEIGHT EQU $04 -ROUTE_11_GATE_2F_WIDTH EQU $04 - -; Route12Gate_h map_id=87 -ROUTE_12_GATE_HEIGHT EQU $04 -ROUTE_12_GATE_WIDTH EQU $05 - -; BillsHouse_h map_id=88 -BILLS_HOUSE_HEIGHT EQU $04 -BILLS_HOUSE_WIDTH EQU $04 - -; VermilionPokecenter_h map_id=89 -VERMILION_POKECENTER_HEIGHT EQU $04 -VERMILION_POKECENTER_WIDTH EQU $07 - -; FanClub_h map_id=90 -POKEMON_FAN_CLUB_HEIGHT EQU $04 -POKEMON_FAN_CLUB_WIDTH EQU $04 - -; VermilionMart_h map_id=91 -VERMILION_MART_HEIGHT EQU $04 -VERMILION_MART_WIDTH EQU $04 - -; VermilionGym_h map_id=92 -VERMILION_GYM_HEIGHT EQU $09 -VERMILION_GYM_WIDTH EQU $05 - -; VermilionHouse1_h map_id=93 -VERMILION_HOUSE_1_HEIGHT EQU $04 -VERMILION_HOUSE_1_WIDTH EQU $04 - -; VermilionDock_h map_id=94 -VERMILION_DOCK_HEIGHT EQU $06 -VERMILION_DOCK_WIDTH EQU $0e - -; SSAnne1_h map_id=95 -SS_ANNE_1_HEIGHT EQU $09 -SS_ANNE_1_WIDTH EQU $14 - -; SSAnne2_h map_id=96 -SS_ANNE_2_HEIGHT EQU $09 -SS_ANNE_2_WIDTH EQU $14 - -; SSAnne3_h map_id=97 -SS_ANNE_3_HEIGHT EQU $03 -SS_ANNE_3_WIDTH EQU $0a - -; SSAnne4_h map_id=98 -SS_ANNE_4_HEIGHT EQU $04 -SS_ANNE_4_WIDTH EQU $0f - -; SSAnne5_h map_id=99 -SS_ANNE_5_HEIGHT EQU $07 -SS_ANNE_5_WIDTH EQU $0a - -; SSAnne6_h map_id=100 -SS_ANNE_6_HEIGHT EQU $08 -SS_ANNE_6_WIDTH EQU $07 - -; SSAnne7_h map_id=101 -SS_ANNE_7_HEIGHT EQU $04 -SS_ANNE_7_WIDTH EQU $03 - -; SSAnne8_h map_id=102 -SS_ANNE_8_HEIGHT EQU $08 -SS_ANNE_8_WIDTH EQU $0c - -; SSAnne9_h map_id=103 -SS_ANNE_9_HEIGHT EQU $08 -SS_ANNE_9_WIDTH EQU $0c - -; SSAnne10_h map_id=104 -SS_ANNE_10_HEIGHT EQU $08 -SS_ANNE_10_WIDTH EQU $0c - -; VictoryRoad1_h map_id=108 -VICTORY_ROAD_1_HEIGHT EQU $09 -VICTORY_ROAD_1_WIDTH EQU $0a - -; Lance_h map_id=113 -LANCES_ROOM_HEIGHT EQU $0d -LANCES_ROOM_WIDTH EQU $0d - -; HallofFameRoom_h map_id=118 -HALL_OF_FAME_HEIGHT EQU $04 -HALL_OF_FAME_WIDTH EQU $05 - -; UndergroundPathNS_h map_id=119 -UNDERGROUND_PATH_NS_HEIGHT EQU $18 -UNDERGROUND_PATH_NS_WIDTH EQU $04 - -; Gary_h map_id=120 -CHAMPIONS_ROOM_HEIGHT EQU $04 -CHAMPIONS_ROOM_WIDTH EQU $04 - -; UndergroundPathWE_h map_id=121 -UNDERGROUND_PATH_WE_HEIGHT EQU $04 -UNDERGROUND_PATH_WE_WIDTH EQU $19 - -; CeladonMart1_h map_id=122 -CELADON_MART_1_HEIGHT EQU $04 -CELADON_MART_1_WIDTH EQU $0a - -; CeladonMart2_h map_id=123 -CELADON_MART_2_HEIGHT EQU $04 -CELADON_MART_2_WIDTH EQU $0a - -; CeladonMart3_h map_id=124 -CELADON_MART_3_HEIGHT EQU $04 -CELADON_MART_3_WIDTH EQU $0a - -; CeladonMart4_h map_id=125 -CELADON_MART_4_HEIGHT EQU $04 -CELADON_MART_4_WIDTH EQU $0a - -; CeladonMartRoof_h map_id=126 -CELADON_MART_ROOF_HEIGHT EQU $04 -CELADON_MART_ROOF_WIDTH EQU $0a - -; CeladonMartElevator_h map_id=127 -CELADON_MART_ELEVATOR_HEIGHT EQU $02 -CELADON_MART_ELEVATOR_WIDTH EQU $02 - -; CeladonMansion1_h map_id=128 -CELADON_MANSION_1_HEIGHT EQU $06 -CELADON_MANSION_1_WIDTH EQU $04 - -; CeladonMansion2_h map_id=129 -CELADON_MANSION_2_HEIGHT EQU $06 -CELADON_MANSION_2_WIDTH EQU $04 - -; CeladonMansion3_h map_id=130 -CELADON_MANSION_3_HEIGHT EQU $06 -CELADON_MANSION_3_WIDTH EQU $04 - -; CeladonMansion4_h map_id=131 -CELADON_MANSION_4_HEIGHT EQU $06 -CELADON_MANSION_4_WIDTH EQU $04 - -; CeladonMansion5_h map_id=132 -CELADON_MANSION_5_HEIGHT EQU $04 -CELADON_MANSION_5_WIDTH EQU $04 - -; CeladonPokecenter_h map_id=133 -CELADON_POKECENTER_HEIGHT EQU $04 -CELADON_POKECENTER_WIDTH EQU $07 - -; CeladonGym_h map_id=134 -CELADON_GYM_HEIGHT EQU $09 -CELADON_GYM_WIDTH EQU $05 - -; CeladonGameCorner_h map_id=135 -GAME_CORNER_HEIGHT EQU $09 -GAME_CORNER_WIDTH EQU $0a - -; CeladonMart5_h map_id=136 -CELADON_MART_5_HEIGHT EQU $04 -CELADON_MART_5_WIDTH EQU $0a - -; CeladonPrizeRoom_h map_id=137 -CELADONPRIZE_ROOM_HEIGHT EQU $04 -CELADONPRIZE_ROOM_WIDTH EQU $05 - -; CeladonDiner_h map_id=138 -CELADON_DINER_HEIGHT EQU $04 -CELADON_DINER_WIDTH EQU $05 - -; CeladonHouse_h map_id=139 -CELADON_HOUSE_HEIGHT EQU $04 -CELADON_HOUSE_WIDTH EQU $04 - -; CeladonHotel_h map_id=140 -CELADONHOTEL_HEIGHT EQU $04 -CELADONHOTEL_WIDTH EQU $07 - -; LavenderPokecenter_h map_id=141 -LAVENDER_POKECENTER_HEIGHT EQU $04 -LAVENDER_POKECENTER_WIDTH EQU $07 - -; PokemonTower1_h map_id=142 -POKEMONTOWER_1_HEIGHT EQU $09 -POKEMONTOWER_1_WIDTH EQU $0a - -; PokemonTower2_h map_id=143 -POKEMONTOWER_2_HEIGHT EQU $09 -POKEMONTOWER_2_WIDTH EQU $0a - -; PokemonTower3_h map_id=144 -POKEMONTOWER_3_HEIGHT EQU $09 -POKEMONTOWER_3_WIDTH EQU $0a - -; PokemonTower4_h map_id=145 -POKEMONTOWER_4_HEIGHT EQU $09 -POKEMONTOWER_4_WIDTH EQU $0a - -; PokemonTower5_h map_id=146 -POKEMONTOWER_5_HEIGHT EQU $09 -POKEMONTOWER_5_WIDTH EQU $0a - -; PokemonTower6_h map_id=147 -POKEMONTOWER_6_HEIGHT EQU $09 -POKEMONTOWER_6_WIDTH EQU $0a - -; PokemonTower7_h map_id=148 -POKEMONTOWER_7_HEIGHT EQU $09 -POKEMONTOWER_7_WIDTH EQU $0a - -; LavenderHouse1_h map_id=149 -LAVENDER_HOUSE_1_HEIGHT EQU $04 -LAVENDER_HOUSE_1_WIDTH EQU $04 - -; LavenderMart_h map_id=150 -LAVENDER_MART_HEIGHT EQU $04 -LAVENDER_MART_WIDTH EQU $04 - -; LavenderHouse2_h map_id=151 -LAVENDER_HOUSE_2_HEIGHT EQU $04 -LAVENDER_HOUSE_2_WIDTH EQU $04 - -; FuchsiaMart_h map_id=152 -FUCHSIA_MART_HEIGHT EQU $04 -FUCHSIA_MART_WIDTH EQU $04 - -; FuchsiaHouse1_h map_id=153 -FUCHSIA_HOUSE_1_HEIGHT EQU $04 -FUCHSIA_HOUSE_1_WIDTH EQU $04 - -; FuchsiaPokecenter_h map_id=154 -FUCHSIA_POKECENTER_HEIGHT EQU $04 -FUCHSIA_POKECENTER_WIDTH EQU $07 - -; FuchsiaHouse2_h map_id=155 -FUCHSIA_HOUSE_2_HEIGHT EQU $04 -FUCHSIA_HOUSE_2_WIDTH EQU $05 - -; SafariZoneEntrance_h map_id=156 -SAFARIZONEENTRANCE_HEIGHT EQU $03 -SAFARIZONEENTRANCE_WIDTH EQU $04 - -; FuchsiaGym_h map_id=157 -FUCHSIA_GYM_HEIGHT EQU $09 -FUCHSIA_GYM_WIDTH EQU $05 - -; FuchsiaMeetingRoom_h map_id=158 -FUCHSIAMEETINGROOM_HEIGHT EQU $04 -FUCHSIAMEETINGROOM_WIDTH EQU $07 - -; SeafoamIslands2_h map_id=159 -SEAFOAM_ISLANDS_2_HEIGHT EQU $09 -SEAFOAM_ISLANDS_2_WIDTH EQU $0f - -; SeafoamIslands3_h map_id=160 -SEAFOAM_ISLANDS_3_HEIGHT EQU $09 -SEAFOAM_ISLANDS_3_WIDTH EQU $0f - -; SeafoamIslands4_h map_id=161 -SEAFOAM_ISLANDS_4_HEIGHT EQU $09 -SEAFOAM_ISLANDS_4_WIDTH EQU $0f - -; SeafoamIslands5_h map_id=162 -SEAFOAM_ISLANDS_5_HEIGHT EQU $09 -SEAFOAM_ISLANDS_5_WIDTH EQU $0f - -; VermilionHouse2_h map_id=163 -VERMILION_HOUSE_2_HEIGHT EQU $04 -VERMILION_HOUSE_2_WIDTH EQU $04 - -; FuchsiaHouse3_h map_id=164 -FUCHSIA_HOUSE_3_HEIGHT EQU $04 -FUCHSIA_HOUSE_3_WIDTH EQU $04 - -; Mansion1_h map_id=165 -MANSION_1_HEIGHT EQU $0e -MANSION_1_WIDTH EQU $0f - -; CinnabarGym_h map_id=166 -CINNABAR_GYM_HEIGHT EQU $09 -CINNABAR_GYM_WIDTH EQU $0a - -; Lab1_h map_id=167 -CINNABAR_LAB_1_HEIGHT EQU $04 -CINNABAR_LAB_1_WIDTH EQU $09 - -; Lab2_h map_id=168 -CINNABAR_LAB_2_HEIGHT EQU $04 -CINNABAR_LAB_2_WIDTH EQU $04 - -; Lab3_h map_id=169 -CINNABAR_LAB_3_HEIGHT EQU $04 -CINNABAR_LAB_3_WIDTH EQU $04 - -; Lab4_h map_id=170 -CINNABAR_LAB_4_HEIGHT EQU $04 -CINNABAR_LAB_4_WIDTH EQU $04 - -; CinnabarPokecenter_h map_id=171 -CINNABAR_POKECENTER_HEIGHT EQU $04 -CINNABAR_POKECENTER_WIDTH EQU $07 - -; CinnabarMart_h map_id=172 -CINNABAR_MART_HEIGHT EQU $04 -CINNABAR_MART_WIDTH EQU $04 - -; IndigoPlateauLobby_h map_id=174 -INDIGO_PLATEAU_LOBBY_HEIGHT EQU $06 -INDIGO_PLATEAU_LOBBY_WIDTH EQU $08 - -; CopycatsHouseF1_h map_id=175 -COPYCATS_HOUSE_1F_HEIGHT EQU $04 -COPYCATS_HOUSE_1F_WIDTH EQU $04 - -; CopycatsHouseF2_h map_id=176 -COPYCATS_HOUSE_2F_HEIGHT EQU $04 -COPYCATS_HOUSE_2F_WIDTH EQU $04 - -; FightingDojo_h map_id=177 -FIGHTINGDOJO_HEIGHT EQU $06 -FIGHTINGDOJO_WIDTH EQU $05 - -; SaffronGym_h map_id=178 -SAFFRON_GYM_HEIGHT EQU $09 -SAFFRON_GYM_WIDTH EQU $0a - -; SaffronHouse1_h map_id=179 -SAFFRON_HOUSE_1_HEIGHT EQU $04 -SAFFRON_HOUSE_1_WIDTH EQU $04 - -; SaffronMart_h map_id=180 -SAFFRON_MART_HEIGHT EQU $04 -SAFFRON_MART_WIDTH EQU $04 - -; SilphCo1_h map_id=181 -SILPH_CO_1F_HEIGHT EQU $09 -SILPH_CO_1F_WIDTH EQU $0f - -; SaffronPokecenter_h map_id=182 -SAFFRON_POKECENTER_HEIGHT EQU $04 -SAFFRON_POKECENTER_WIDTH EQU $07 - -; SaffronHouse2_h map_id=183 -SAFFRON_HOUSE_2_HEIGHT EQU $04 -SAFFRON_HOUSE_2_WIDTH EQU $04 - -; Route15Gate1F_h map_id=184 -ROUTE_15_GATE_1F_HEIGHT EQU $05 -ROUTE_15_GATE_1F_WIDTH EQU $04 - -; Route15GateUpstairs_h map_id=185 -ROUTE_15_GATE_2F_HEIGHT EQU 4 -ROUTE_15_GATE_2F_WIDTH EQU 4 - -; Route16GateMap_h map_id=186 -ROUTE_16_GATE_1F_HEIGHT EQU $07 -ROUTE_16_GATE_1F_WIDTH EQU $04 - -; Route16GateUpstairs_h map_id=187 -ROUTE_16_GATE_2F_HEIGHT EQU $04 -ROUTE_16_GATE_2F_WIDTH EQU $04 - -; Route16House_h map_id=188 -ROUTE_16_HOUSE_HEIGHT EQU $04 -ROUTE_16_HOUSE_WIDTH EQU $04 - -; Route12House_h map_id=189 -ROUTE_12_HOUSE_HEIGHT EQU $04 -ROUTE_12_HOUSE_WIDTH EQU $04 - -; Route18Gate_h map_id=190 -ROUTE_18_GATE_1F_HEIGHT EQU $05 -ROUTE_18_GATE_1F_WIDTH EQU $04 - -; Route18GateHeader_h map_id=191 -ROUTE_18_GATE_2F_HEIGHT EQU $04 -ROUTE_18_GATE_2F_WIDTH EQU $04 - -; SeafoamIslands1_h map_id=192 -SEAFOAM_ISLANDS_1_HEIGHT EQU $09 -SEAFOAM_ISLANDS_1_WIDTH EQU $0f - -; Route22Gate_h map_id=193 -ROUTE_22_GATE_HEIGHT EQU $04 -ROUTE_22_GATE_WIDTH EQU $05 - -; VictoryRoad2_h map_id=194 -VICTORY_ROAD_2_HEIGHT EQU $09 -VICTORY_ROAD_2_WIDTH EQU $0f - -; Route12GateUpstairs_h map_id=195 -ROUTE_12_GATE_2F_HEIGHT EQU $04 -ROUTE_12_GATE_2F_WIDTH EQU $04 - -; VermilionHouse3_h map_id=196 -VERMILION_HOUSE_3_HEIGHT EQU $04 -VERMILION_HOUSE_3_WIDTH EQU $04 - -; DiglettsCave_h map_id=197 -DIGLETTS_CAVE_HEIGHT EQU $12 -DIGLETTS_CAVE_WIDTH EQU $14 - -; VictoryRoad3_h map_id=198 -VICTORY_ROAD_3_HEIGHT EQU $09 -VICTORY_ROAD_3_WIDTH EQU $0f - -; RocketHideout1_h map_id=199 -ROCKET_HIDEOUT_1_HEIGHT EQU $0e -ROCKET_HIDEOUT_1_WIDTH EQU $0f - -; RocketHideout2_h map_id=200 -ROCKET_HIDEOUT_2_HEIGHT EQU $0e -ROCKET_HIDEOUT_2_WIDTH EQU $0f - -; RocketHideout3_h map_id=201 -ROCKET_HIDEOUT_3_HEIGHT EQU $0e -ROCKET_HIDEOUT_3_WIDTH EQU $0f - -; RocketHideout4_h map_id=202 -ROCKET_HIDEOUT_4_HEIGHT EQU $0c -ROCKET_HIDEOUT_4_WIDTH EQU $0f - -; RocketHideoutElevator_h map_id=203 -ROCKET_HIDEOUT_ELEVATOR_HEIGHT EQU $04 -ROCKET_HIDEOUT_ELEVATOR_WIDTH EQU $03 - -; SilphCo2_h map_id=207 -SILPH_CO_2F_HEIGHT EQU $09 -SILPH_CO_2F_WIDTH EQU $0f - -; SilphCo3_h map_id=208 -SILPH_CO_3F_HEIGHT EQU $09 -SILPH_CO_3F_WIDTH EQU $0f - -; SilphCo4_h map_id=209 -SILPH_CO_4F_HEIGHT EQU $09 -SILPH_CO_4F_WIDTH EQU $0f - -; SilphCo5_h map_id=210 -SILPH_CO_5F_HEIGHT EQU $09 -SILPH_CO_5F_WIDTH EQU $0f - -; SilphCo6_h map_id=211 -SILPH_CO_6F_HEIGHT EQU $09 -SILPH_CO_6F_WIDTH EQU $0d - -; SilphCo7_h map_id=212 -SILPH_CO_7F_HEIGHT EQU $09 -SILPH_CO_7F_WIDTH EQU $0d - -; SilphCo8_h map_id=213 -SILPH_CO_8F_HEIGHT EQU $09 -SILPH_CO_8F_WIDTH EQU $0d - -; Mansion2_h map_id=214 -MANSION_2_HEIGHT EQU $0e -MANSION_2_WIDTH EQU $0f - -; Mansion3_h map_id=215 -MANSION_3_HEIGHT EQU $09 -MANSION_3_WIDTH EQU $0f - -; Mansion4_h map_id=216 -MANSION_4_HEIGHT EQU $0e -MANSION_4_WIDTH EQU $0f - -; SafariZoneEast_h map_id=217 -SAFARI_ZONE_EAST_HEIGHT EQU $0d -SAFARI_ZONE_EAST_WIDTH EQU $0f - -; SafariZoneNorth_h map_id=218 -SAFARI_ZONE_NORTH_HEIGHT EQU $12 -SAFARI_ZONE_NORTH_WIDTH EQU $14 - -; SafariZoneWest_h map_id=219 -SAFARI_ZONE_WEST_HEIGHT EQU $0d -SAFARI_ZONE_WEST_WIDTH EQU $0f - -; SafariZoneCenter_h map_id=220 -SAFARI_ZONE_CENTER_HEIGHT EQU $0d -SAFARI_ZONE_CENTER_WIDTH EQU $0f - -; SafariZoneRestHouse1_h map_id=221 -SAFARI_ZONE_REST_HOUSE_1_HEIGHT EQU $04 -SAFARI_ZONE_REST_HOUSE_1_WIDTH EQU $04 - -; SafariZoneSecretHouse_h map_id=222 -SAFARI_ZONE_SECRET_HOUSE_HEIGHT EQU $04 -SAFARI_ZONE_SECRET_HOUSE_WIDTH EQU $04 - -; SafariZoneRestHouse2_h map_id=223 -SAFARI_ZONE_REST_HOUSE_2_HEIGHT EQU $04 -SAFARI_ZONE_REST_HOUSE_2_WIDTH EQU $04 - -; SafariZoneRestHouse3_h map_id=224 -SAFARI_ZONE_REST_HOUSE_3_HEIGHT EQU $04 -SAFARI_ZONE_REST_HOUSE_3_WIDTH EQU $04 - -; SafariZoneRestHouse4_h map_id=225 -SAFARI_ZONE_REST_HOUSE_4_HEIGHT EQU $04 -SAFARI_ZONE_REST_HOUSE_4_WIDTH EQU $04 - -; UnknownDungeon2_h map_id=226 -UNKNOWN_DUNGEON_2_HEIGHT EQU $09 -UNKNOWN_DUNGEON_2_WIDTH EQU $0f - -; UnknownDungeon3_h map_id=227 -UNKNOWN_DUNGEON_3_HEIGHT EQU $09 -UNKNOWN_DUNGEON_3_WIDTH EQU $0f - -; UnknownDungeon1_h map_id=228 -UNKNOWN_DUNGEON_1_HEIGHT EQU $09 -UNKNOWN_DUNGEON_1_WIDTH EQU $0f - -; NameRater_h map_id=229 -NAME_RATERS_HOUSE_HEIGHT EQU $04 -NAME_RATERS_HOUSE_WIDTH EQU $04 - -; CeruleanHouse2_h map_id=230 -CERULEAN_HOUSE_2_HEIGHT EQU $04 -CERULEAN_HOUSE_2_WIDTH EQU $04 - -; RockTunnel2_h map_id=232 -ROCK_TUNNEL_2_HEIGHT EQU $12 -ROCK_TUNNEL_2_WIDTH EQU $14 - -; SilphCo9_h map_id=233 -SILPH_CO_9F_HEIGHT EQU $09 -SILPH_CO_9F_WIDTH EQU $0d - -; SilphCo10_h map_id=234 -SILPH_CO_10F_HEIGHT EQU $09 -SILPH_CO_10F_WIDTH EQU $08 - -; SilphCo11_h map_id=235 -SILPH_CO_11F_HEIGHT EQU $09 -SILPH_CO_11F_WIDTH EQU $09 - -; SilphCoElevator_h map_id=236 -SILPH_CO_ELEVATOR_HEIGHT EQU $02 -SILPH_CO_ELEVATOR_WIDTH EQU $02 - -; BattleCenterM_h map_id=239 -BATTLE_CENTER_HEIGHT EQU $04 -BATTLE_CENTER_WIDTH EQU $05 - -; TradeCenterM_h map_id=240 -TRADE_CENTER_HEIGHT EQU $04 -TRADE_CENTER_WIDTH EQU $05 - -; Lorelei_h map_id=245 -LORELEIS_ROOM_HEIGHT EQU $06 -LORELEIS_ROOM_WIDTH EQU $05 - -; Bruno_h map_id=246 -BRUNOS_ROOM_HEIGHT EQU $06 -BRUNOS_ROOM_WIDTH EQU $05 - -; Agatha_h map_id=247 -AGATHAS_ROOM_HEIGHT EQU $06 -AGATHAS_ROOM_WIDTH EQU $05 - - diff --git a/constants/item_constants.asm b/constants/item_constants.asm new file mode 100644 index 00000000..e67f0d79 --- /dev/null +++ b/constants/item_constants.asm @@ -0,0 +1,140 @@ +MASTER_BALL EQU $01 +ULTRA_BALL EQU $02 +GREAT_BALL EQU $03 +POKE_BALL EQU $04 +TOWN_MAP EQU $05 +BICYCLE EQU $06 +SURFBOARD EQU $07 ; buggy? +SAFARI_BALL EQU $08 +POKEDEX EQU $09 +MOON_STONE EQU $0A +ANTIDOTE EQU $0B +BURN_HEAL EQU $0C +ICE_HEAL EQU $0D +AWAKENING EQU $0E +PARLYZ_HEAL EQU $0F +FULL_RESTORE EQU $10 +MAX_POTION EQU $11 +HYPER_POTION EQU $12 +SUPER_POTION EQU $13 +POTION EQU $14 +BOULDERBADGE EQU $15 +CASCADEBADGE EQU $16 +THUNDERBADGE EQU $17 +RAINBOWBADGE EQU $18 +SOULBADGE EQU $19 +MARSHBADGE EQU $1A +VOLCANOBADGE EQU $1B +EARTHBADGE EQU $1C +ESCAPE_ROPE EQU $1D +REPEL EQU $1E +OLD_AMBER EQU $1F +FIRE_STONE EQU $20 +THUNDER_STONE EQU $21 +WATER_STONE EQU $22 +HP_UP EQU $23 +PROTEIN EQU $24 +IRON EQU $25 +CARBOS EQU $26 +CALCIUM EQU $27 +RARE_CANDY EQU $28 +DOME_FOSSIL EQU $29 +HELIX_FOSSIL EQU $2A +SECRET_KEY EQU $2B +; XXX ????? EQU $2C +BIKE_VOUCHER EQU $2D +X_ACCURACY EQU $2E +LEAF_STONE EQU $2F +CARD_KEY EQU $30 +NUGGET EQU $31 +;PP_UP EQU $32 +POKE_DOLL EQU $33 +FULL_HEAL EQU $34 +REVIVE EQU $35 +MAX_REVIVE EQU $36 +GUARD_SPEC_ EQU $37 +SUPER_REPEL EQU $38 +MAX_REPEL EQU $39 +DIRE_HIT EQU $3A +COIN EQU $3B +FRESH_WATER EQU $3C +SODA_POP EQU $3D +LEMONADE EQU $3E +S_S__TICKET EQU $3F +GOLD_TEETH EQU $40 +X_ATTACK EQU $41 +X_DEFEND EQU $42 +X_SPEED EQU $43 +X_SPECIAL EQU $44 +COIN_CASE EQU $45 +OAKS_PARCEL EQU $46 +ITEMFINDER EQU $47 +SILPH_SCOPE EQU $48 +POKE_FLUTE EQU $49 +LIFT_KEY EQU $4A +EXP__ALL EQU $4B +OLD_ROD EQU $4C +GOOD_ROD EQU $4D +SUPER_ROD EQU $4E +; XXX todo: compare this to $32 +PP_UP EQU $4F +ETHER EQU $50 +MAX_ETHER EQU $51 +ELIXER EQU $52 +MAX_ELIXER EQU $53 +HM_01 EQU $C4 +HM_02 EQU $C5 +HM_03 EQU $C6 +HM_04 EQU $C7 +HM_05 EQU $C8 +TM_01 EQU $C9 +TM_02 EQU $CA +TM_03 EQU $CB +TM_04 EQU $CC +TM_05 EQU $CD +TM_06 EQU $CE +TM_07 EQU $CF +TM_08 EQU $D0 +TM_09 EQU $D1 +TM_10 EQU $D2 +TM_11 EQU $D3 +TM_12 EQU $D4 +TM_13 EQU $D5 +TM_14 EQU $D6 +TM_15 EQU $D7 +TM_16 EQU $D8 +TM_17 EQU $D9 +TM_18 EQU $DA +TM_19 EQU $DB +TM_20 EQU $DC +TM_21 EQU $DD +TM_22 EQU $DE +TM_23 EQU $DF +TM_24 EQU $E0 +TM_25 EQU $E1 +TM_26 EQU $E2 +TM_27 EQU $E3 +TM_28 EQU $E4 +TM_29 EQU $E5 +TM_30 EQU $E6 +TM_31 EQU $E7 +TM_32 EQU $E8 +TM_33 EQU $E9 +TM_34 EQU $EA +TM_35 EQU $EB +TM_36 EQU $EC +TM_37 EQU $ED +TM_38 EQU $EE +TM_39 EQU $EF +TM_40 EQU $F0 +TM_41 EQU $F1 +TM_42 EQU $F2 +TM_43 EQU $F3 +TM_44 EQU $F4 +TM_45 EQU $F5 +TM_46 EQU $F6 +TM_47 EQU $F7 +TM_48 EQU $F8 +TM_49 EQU $F9 +TM_50 EQU $FA + diff --git a/constants/map_constants.asm b/constants/map_constants.asm new file mode 100644 index 00000000..ec1c0822 --- /dev/null +++ b/constants/map_constants.asm @@ -0,0 +1,250 @@ +PALLET_TOWN EQU $00 +VIRIDIAN_CITY EQU $01 +PEWTER_CITY EQU $02 +CERULEAN_CITY EQU $03 +LAVENDER_TOWN EQU $04 +VERMILION_CITY EQU $05 +CELADON_CITY EQU $06 +FUCHSIA_CITY EQU $07 +CINNABAR_ISLAND EQU $08 +INDIGO_PLATEAU EQU $09 +SAFFRON_CITY EQU $0A +; unused EQU $0B +ROUTE_1 EQU $0C +ROUTE_2 EQU $0D +ROUTE_3 EQU $0E +ROUTE_4 EQU $0F +ROUTE_5 EQU $10 +ROUTE_6 EQU $11 +ROUTE_7 EQU $12 +ROUTE_8 EQU $13 +ROUTE_9 EQU $14 +ROUTE_10 EQU $15 +ROUTE_11 EQU $16 +ROUTE_12 EQU $17 +ROUTE_13 EQU $18 +ROUTE_14 EQU $19 +ROUTE_15 EQU $1A +ROUTE_16 EQU $1B +ROUTE_17 EQU $1C +ROUTE_18 EQU $1D +ROUTE_19 EQU $1E +ROUTE_20 EQU $1F +ROUTE_21 EQU $20 +ROUTE_22 EQU $21 +ROUTE_23 EQU $22 +ROUTE_24 EQU $23 +ROUTE_25 EQU $24 +REDS_HOUSE_1F EQU $25 +REDS_HOUSE_2F EQU $26 +BLUES_HOUSE EQU $27 +OAKS_LAB EQU $28 +VIRIDIAN_POKECENTER EQU $29 +VIRIDIAN_MART EQU $2A +VIRIDIAN_SCHOOL EQU $2B +VIRIDIAN_HOUSE EQU $2C +VIRIDIAN_GYM EQU $2D +DIGLETTS_CAVE_EXIT EQU $2E +VIRIDIAN_FOREST_EXIT EQU $2F +ROUTE_2_HOUSE EQU $30 +ROUTE_2_GATE EQU $31 +VIRIDIAN_FOREST_ENTRANCE EQU $32 +VIRIDIAN_FOREST EQU $33 +MUSEUM_1F EQU $34 +MUSEUM_2F EQU $35 +PEWTER_GYM EQU $36 +PEWTER_HOUSE_1 EQU $37 +PEWTER_MART EQU $38 +PEWTER_HOUSE_2 EQU $39 +PEWTER_POKECENTER EQU $3A +MT_MOON_1 EQU $3B +MT_MOON_2 EQU $3C +MT_MOON_3 EQU $3D +TRASHED_HOUSE EQU $3E +CERULEAN_HOUSE EQU $3F +CERULEAN_POKECENTER EQU $40 +CERULEAN_GYM EQU $41 +BIKE_SHOP EQU $42 +CERULEAN_MART EQU $43 +MT_MOON_POKECENTER EQU $44 +;copy of TRASHED_HOUSE EQU $45 +ROUTE_5_GATE EQU $46 +PATH_ENTRANCE_ROUTE_5 EQU $47 +DAYCAREM EQU $48 +ROUTE_6_GATE EQU $49 +PATH_ENTRANCE_ROUTE_6 EQU $4A +;copy of PATH_ENTRANCE_ROUTE_6 EQU $4B +ROUTE_7_GATE EQU $4C +PATH_ENTRANCE_ROUTE_7 EQU $4D +;copy of PATH_ENTRANCE_ROUTE_7 EQU $4E +ROUTE_8_GATE EQU $4F +PATH_ENTRANCE_ROUTE_8 EQU $50 +ROCK_TUNNEL_POKECENTER EQU $51 +ROCK_TUNNEL_1 EQU $52 +POWER_PLANT EQU $53 +ROUTE_11_GATE_1F EQU $54 +DIGLETTS_CAVE_ENTRANCE EQU $55 +ROUTE_11_GATE_2F EQU $56 +ROUTE_12_GATE EQU $57 +BILLS_HOUSE EQU $58 +VERMILION_POKECENTER EQU $59 +POKEMON_FAN_CLUB EQU $5A +VERMILION_MART EQU $5B +VERMILION_GYM EQU $5C +VERMILION_HOUSE_1 EQU $5D +VERMILION_DOCK EQU $5E +SS_ANNE_1 EQU $5F +SS_ANNE_2 EQU $60 +SS_ANNE_3 EQU $61 +SS_ANNE_4 EQU $62 +SS_ANNE_5 EQU $63 +SS_ANNE_6 EQU $64 +SS_ANNE_7 EQU $65 +SS_ANNE_8 EQU $66 +SS_ANNE_9 EQU $67 +SS_ANNE_10 EQU $68 +;EQU $69 +;EQU $6A +;EQU $6B +VICTORY_ROAD_1 EQU $6C +;EQU $6D +;EQU $6E +;EQU $6F +;EQU $70 +LANCES_ROOM EQU $71 +;EQU $72 +;EQU $73 +;EQU $74 +;EQU $75 +HALL_OF_FAME EQU $76 +UNDERGROUND_PATH_NS EQU $77 +CHAMPIONS_ROOM EQU $78 +UNDERGROUND_PATH_WE EQU $79 +CELADON_MART_1 EQU $7A +CELADON_MART_2 EQU $7B +CELADON_MART_3 EQU $7C +CELADON_MART_4 EQU $7D +CELADON_MART_ROOF EQU $7E +CELADON_MART_ELEVATOR EQU $7F +CELADON_MANSION_1 EQU $80 +CELADON_MANSION_2 EQU $81 +CELADON_MANSION_3 EQU $82 +CELADON_MANSION_4 EQU $83 +CELADON_MANSION_5 EQU $84 +CELADON_POKECENTER EQU $85 +CELADON_GYM EQU $86 +GAME_CORNER EQU $87 +CELADON_MART_5 EQU $88 +CELADONPRIZE_ROOM EQU $89 +CELADON_DINER EQU $8A +CELADON_HOUSE EQU $8B +CELADON_HOTEL EQU $8C +LAVENDER_POKECENTER EQU $8D +POKEMONTOWER_1 EQU $8E +POKEMONTOWER_2 EQU $8F +POKEMONTOWER_3 EQU $90 +POKEMONTOWER_4 EQU $91 +POKEMONTOWER_5 EQU $92 +POKEMONTOWER_6 EQU $93 +POKEMONTOWER_7 EQU $94 +LAVENDER_HOUSE_1 EQU $95 +LAVENDER_MART EQU $96 +LAVENDER_HOUSE_2 EQU $97 +FUCHSIA_MART EQU $98 +FUCHSIA_HOUSE_1 EQU $99 +FUCHSIA_POKECENTER EQU $9A +FUCHSIA_HOUSE_2 EQU $9B +SAFARIZONEENTRANCE EQU $9C +FUCHSIA_GYM EQU $9D +FUCHSIAMEETINGROOM EQU $9E +SEAFOAM_ISLANDS_2 EQU $9F +SEAFOAM_ISLANDS_3 EQU $A0 +SEAFOAM_ISLANDS_4 EQU $A1 +SEAFOAM_ISLANDS_5 EQU $A2 +VERMILION_HOUSE_2 EQU $A3 +FUCHSIA_HOUSE_3 EQU $A4 +MANSION_1 EQU $A5 +CINNABAR_GYM EQU $A6 +CINNABAR_LAB_1 EQU $A7 +CINNABAR_LAB_2 EQU $A8 +CINNABAR_LAB_3 EQU $A9 +CINNABAR_LAB_4 EQU $AA +CINNABAR_POKECENTER EQU $AB +CINNABAR_MART EQU $AC +;copy of CINNABAR_MART EQU $AD +INDIGO_PLATEAU_LOBBY EQU $AE +COPYCATS_HOUSE_1F EQU $AF +COPYCATS_HOUSE_2F EQU $B0 +FIGHTINGDOJO EQU $B1 +SAFFRON_GYM EQU $B2 +SAFFRON_HOUSE_1 EQU $B3 +SAFFRON_MART EQU $B4 +SILPH_CO_1F EQU $B5 +SAFFRON_POKECENTER EQU $B6 +SAFFRON_HOUSE_2 EQU $B7 +ROUTE_15_GATE_1F EQU $B8 +ROUTE_15_GATE_2F EQU $B9 +ROUTE_16_GATE_1F EQU $BA +ROUTE_16_GATE_2F EQU $BB +ROUTE_16_HOUSE EQU $BC +ROUTE_12_HOUSE EQU $BD +ROUTE_18_GATE_1F EQU $BE +ROUTE_18_GATE_2F EQU $BF +SEAFOAM_ISLANDS_1 EQU $C0 +ROUTE_22_GATE EQU $C1 +VICTORY_ROAD_2 EQU $C2 +ROUTE_12_GATE_2F EQU $C3 +VERMILION_HOUSE_3 EQU $C4 +DIGLETTS_CAVE EQU $C5 +VICTORY_ROAD_3 EQU $C6 +ROCKET_HIDEOUT_1 EQU $C7 +ROCKET_HIDEOUT_2 EQU $C8 +ROCKET_HIDEOUT_3 EQU $C9 +ROCKET_HIDEOUT_4 EQU $CA +ROCKET_HIDEOUT_ELEVATOR EQU $CB +;EQU $CC +;EQU $CD +;EQU $CE +SILPH_CO_2F EQU $CF +SILPH_CO_3F EQU $D0 +SILPH_CO_4F EQU $D1 +SILPH_CO_5F EQU $D2 +SILPH_CO_6F EQU $D3 +SILPH_CO_7F EQU $D4 +SILPH_CO_8F EQU $D5 +MANSION_2 EQU $D6 +MANSION_3 EQU $D7 +MANSION_4 EQU $D8 +SAFARI_ZONE_EAST EQU $D9 +SAFARI_ZONE_NORTH EQU $DA +SAFARI_ZONE_WEST EQU $DB +SAFARI_ZONE_CENTER EQU $DC +SAFARI_ZONE_REST_HOUSE_1 EQU $DD +SAFARI_ZONE_SECRET_HOUSE EQU $DE +SAFARI_ZONE_REST_HOUSE_2 EQU $DF +SAFARI_ZONE_REST_HOUSE_3 EQU $E0 +SAFARI_ZONE_REST_HOUSE_4 EQU $E1 +UNKNOWN_DUNGEON_2 EQU $E2 +UNKNOWN_DUNGEON_3 EQU $E3 +UNKNOWN_DUNGEON_1 EQU $E4 +NAME_RATERS_HOUSE EQU $E5 +CERULEAN_HOUSE_3 EQU $E6 +;EQU $E7 +ROCK_TUNNEL_2 EQU $E8 +SILPH_CO_9F EQU $E9 +SILPH_CO_10F EQU $EA +SILPH_CO_11F EQU $EB +SILPH_CO_ELEVATOR EQU $EC +;EQU $ED +;EQU $EE +BATTLE_CENTER EQU $EF +TRADE_CENTER EQU $F0 +;EQU $F1 +;EQU $F2 +;EQU $F3 +;EQU $F4 +LORELEIS_ROOM EQU $F5 +BRUNOS_ROOM EQU $F6 +AGATHAS_ROOM EQU $F7 +BEACH_HOUSE EQU $F8 ; Yellow only + diff --git a/constants/map_dimensions.asm b/constants/map_dimensions.asm new file mode 100644 index 00000000..30e393e4 --- /dev/null +++ b/constants/map_dimensions.asm @@ -0,0 +1,890 @@ +; Map sizes (y, x) + +; PalletTown_h map_id=0 +PALLET_TOWN_HEIGHT EQU $09 +PALLET_TOWN_WIDTH EQU $0a + +; ViridianCity_h map_id=1 +VIRIDIAN_CITY_HEIGHT EQU $12 +VIRIDIAN_CITY_WIDTH EQU $14 + +; PewterCity_h map_id=2 +PEWTER_CITY_HEIGHT EQU $12 +PEWTER_CITY_WIDTH EQU $14 + +; CeruleanCity_h map_id=3 +CERULEAN_CITY_HEIGHT EQU $12 +CERULEAN_CITY_WIDTH EQU $14 + +; LavenderTown_h map_id=4 +LAVENDER_TOWN_HEIGHT EQU $09 +LAVENDER_TOWN_WIDTH EQU $0a + +; VermilionCity_h map_id=5 +VERMILION_CITY_HEIGHT EQU $12 +VERMILION_CITY_WIDTH EQU $14 + +; CeladonCity_h map_id=6 +CELADON_CITY_HEIGHT EQU $12 +CELADON_CITY_WIDTH EQU $19 + +; FuchsiaCity_h map_id=7 +FUCHSIA_CITY_HEIGHT EQU $12 +FUCHSIA_CITY_WIDTH EQU $14 + +; CinnabarIsland_h map_id=8 +CINNABAR_ISLAND_HEIGHT EQU $09 +CINNABAR_ISLAND_WIDTH EQU $0a + +; IndigoPlateau_h map_id=9 +INDIGO_PLATEAU_HEIGHT EQU $09 +INDIGO_PLATEAU_WIDTH EQU $0a + +; SaffronCity_h map_id=10 +SAFFRON_CITY_HEIGHT EQU $12 +SAFFRON_CITY_WIDTH EQU $14 + +; Route1_h map_id=12 +ROUTE_1_HEIGHT EQU $12 +ROUTE_1_WIDTH EQU $0a + +; Route2_h map_id=13 +ROUTE_2_HEIGHT EQU $24 +ROUTE_2_WIDTH EQU $0a + +; Route3_h map_id=14 +ROUTE_3_HEIGHT EQU $09 +ROUTE_3_WIDTH EQU $23 + +; Route4_h map_id=15 +ROUTE_4_HEIGHT EQU $09 +ROUTE_4_WIDTH EQU $2d + +; Route5_h map_id=16 +ROUTE_5_HEIGHT EQU $12 +ROUTE_5_WIDTH EQU $0a + +; Route6_h map_id=17 +ROUTE_6_HEIGHT EQU $12 +ROUTE_6_WIDTH EQU $0a + +; Route7_h map_id=18 +ROUTE_7_HEIGHT EQU $09 +ROUTE_7_WIDTH EQU $0a + +; Route8_h map_id=19 +ROUTE_8_HEIGHT EQU $09 +ROUTE_8_WIDTH EQU $1e + +; Route9_h map_id=20 +ROUTE_9_HEIGHT EQU $09 +ROUTE_9_WIDTH EQU $1e + +; Route10_h map_id=21 +ROUTE_10_HEIGHT EQU $24 +ROUTE_10_WIDTH EQU $0a + +; Route11_h map_id=22 +ROUTE_11_HEIGHT EQU $09 +ROUTE_11_WIDTH EQU $1e + +; Route12_h map_id=23 +ROUTE_12_HEIGHT EQU $36 +ROUTE_12_WIDTH EQU $0a + +; Route13_h map_id=24 +ROUTE_13_HEIGHT EQU $09 +ROUTE_13_WIDTH EQU $1e + +; Route14_h map_id=25 +ROUTE_14_HEIGHT EQU $1b +ROUTE_14_WIDTH EQU $0a + +; Route15_h map_id=26 +ROUTE_15_HEIGHT EQU $09 +ROUTE_15_WIDTH EQU $1e + +; Route16_h map_id=27 +ROUTE_16_HEIGHT EQU $09 +ROUTE_16_WIDTH EQU $14 + +; Route17_h map_id=28 +ROUTE_17_HEIGHT EQU $48 +ROUTE_17_WIDTH EQU $0a + +; Route18_h map_id=29 +ROUTE_18_HEIGHT EQU $09 +ROUTE_18_WIDTH EQU $19 + +; Route19_h map_id=30 +ROUTE_19_HEIGHT EQU $1b +ROUTE_19_WIDTH EQU $0a + +; Route20_h map_id=31 +ROUTE_20_HEIGHT EQU $09 +ROUTE_20_WIDTH EQU $32 + +; Route21_h map_id=32 +ROUTE_21_HEIGHT EQU $2d +ROUTE_21_WIDTH EQU $0a + +; Route22_h map_id=33 +ROUTE_22_HEIGHT EQU $09 +ROUTE_22_WIDTH EQU $14 + +; Route23_h map_id=34 +ROUTE_23_HEIGHT EQU $48 +ROUTE_23_WIDTH EQU $0a + +; Route24_h map_id=35 +ROUTE_24_HEIGHT EQU $12 +ROUTE_24_WIDTH EQU $0a + +; Route25_h map_id=36 +ROUTE_25_HEIGHT EQU $09 +ROUTE_25_WIDTH EQU $1e + +; RedsHouse1F_h map_id=37 +REDS_HOUSE_1F_HEIGHT EQU $04 +REDS_HOUSE_1F_WIDTH EQU $04 + +; RedsHouse2F_h map_id=38 +REDS_HOUSE_2F_HEIGHT EQU $04 +REDS_HOUSE_2F_WIDTH EQU $04 + +; BluesHouse_h map_id=39 +BLUES_HOUSE_HEIGHT EQU $04 +BLUES_HOUSE_WIDTH EQU $04 + +; OaksLab_h map_id=40 +OAKS_LAB_HEIGHT EQU $06 +OAKS_LAB_WIDTH EQU $05 + +; ViridianPokeCenter_h map_id=41 +VIRIDIAN_POKECENTER_HEIGHT EQU $04 +VIRIDIAN_POKECENTER_WIDTH EQU $07 + +; ViridianMart_h map_id=42 +VIRIDIAN_MART_HEIGHT EQU $04 +VIRIDIAN_MART_WIDTH EQU $04 + +; School_h map_id=43 +VIRIDIAN_SCHOOL_HEIGHT EQU $04 +VIRIDIAN_SCHOOL_WIDTH EQU $04 + +; ViridianHouse_h map_id=44 +VIRIDIAN_HOUSE_HEIGHT EQU $04 +VIRIDIAN_HOUSE_WIDTH EQU $04 + +; ViridianGym_h map_id=45 +VIRIDIAN_GYM_HEIGHT EQU $09 +VIRIDIAN_GYM_WIDTH EQU $0a + +; DiglettsCaveRoute2_h map_id=46 +DIGLETTS_CAVE_EXIT_HEIGHT EQU $04 +DIGLETTS_CAVE_EXIT_WIDTH EQU $04 + +; ViridianForestexit_h map_id=47 +VIRIDIAN_FOREST_EXIT_HEIGHT EQU $04 +VIRIDIAN_FOREST_EXIT_WIDTH EQU $05 + +; Route2House_h map_id=48 +ROUTE_2_HOUSE_HEIGHT EQU $04 +ROUTE_2_HOUSE_WIDTH EQU $04 + +; Route2Gate_h map_id=49 +ROUTE_2_GATE_HEIGHT EQU $04 +ROUTE_2_GATE_WIDTH EQU $05 + +; ViridianForestEntrance_h map_id=50 +VIRIDIAN_FOREST_ENTRANCE_HEIGHT EQU $04 +VIRIDIAN_FOREST_ENTRANCE_WIDTH EQU $05 + +; ViridianForest_h map_id=51 +VIRIDIAN_FOREST_HEIGHT EQU $18 +VIRIDIAN_FOREST_WIDTH EQU $11 + +; MuseumF1_h map_id=52 +MUSEUM_1F_HEIGHT EQU $04 +MUSEUM_1F_WIDTH EQU $0a + +; MuseumF2_h map_id=53 +MUSEUM_2F_HEIGHT EQU $04 +MUSEUM_2F_WIDTH EQU $07 + +; PewterGym_h map_id=54 +PEWTER_GYM_HEIGHT EQU $07 +PEWTER_GYM_WIDTH EQU $05 + +; PewterHouse1_h map_id=55 +PEWTER_HOUSE_1_HEIGHT EQU $04 +PEWTER_HOUSE_1_WIDTH EQU $04 + +; PewterMart_h map_id=56 +PEWTER_MART_HEIGHT EQU $04 +PEWTER_MART_WIDTH EQU $04 + +; PewterHouse2_h map_id=57 +PEWTER_HOUSE_2_HEIGHT EQU $04 +PEWTER_HOUSE_2_WIDTH EQU $04 + +; PewterPokecenter_h map_id=58 +PEWTER_POKECENTER_HEIGHT EQU $04 +PEWTER_POKECENTER_WIDTH EQU $07 + +; MtMoon1_h map_id=59 +MT_MOON_1_HEIGHT EQU $12 +MT_MOON_1_WIDTH EQU $14 + +; MtMoon2_h map_id=60 +MT_MOON_2_HEIGHT EQU $0e +MT_MOON_2_WIDTH EQU $0e + +; MtMoon3_h map_id=61 +MT_MOON_3_HEIGHT EQU $12 +MT_MOON_3_WIDTH EQU $14 + +; CeruleanHouseTrashed_h map_id=62 +TRASHED_HOUSE_HEIGHT EQU $04 +TRASHED_HOUSE_WIDTH EQU $04 + +; CeruleanHouse_h map_id=63 +CERULEAN_HOUSE_HEIGHT EQU $04 +CERULEAN_HOUSE_WIDTH EQU $04 + +; CeruleanPokecenter_h map_id=64 +CERULEAN_POKECENTER_HEIGHT EQU $04 +CERULEAN_POKECENTER_WIDTH EQU $07 + +; CeruleanGym_h map_id=65 +CERULEAN_GYM_HEIGHT EQU $07 +CERULEAN_GYM_WIDTH EQU $05 + +; BikeShop_h map_id=66 +BIKE_SHOP_HEIGHT EQU $04 +BIKE_SHOP_WIDTH EQU $04 + +; CeruleanMart_h map_id=67 +CERULEAN_MART_HEIGHT EQU $04 +CERULEAN_MART_WIDTH EQU $04 + +; MtMoonPokecenter_h map_id=68 +MT_MOON_POKECENTER_HEIGHT EQU $04 +MT_MOON_POKECENTER_WIDTH EQU $07 + +; Route5Gate_h map_id=70 +ROUTE_5_GATE_HEIGHT EQU $03 +ROUTE_5_GATE_WIDTH EQU $04 + +; UndergroundTunnelEntranceRoute5_h map_id=71 +PATH_ENTRANCE_ROUTE_5_HEIGHT EQU $04 +PATH_ENTRANCE_ROUTE_5_WIDTH EQU $04 + +; DayCareM_h map_id=72 +DAYCAREM_HEIGHT EQU $04 +DAYCAREM_WIDTH EQU $04 + +; Route6Gate_h map_id=73 +ROUTE_6_GATE_HEIGHT EQU $03 +ROUTE_6_GATE_WIDTH EQU $04 + +; UndergroundTunnelEntranceRoute6_h map_id=74 +PATH_ENTRANCE_ROUTE_6_HEIGHT EQU $04 +PATH_ENTRANCE_ROUTE_6_WIDTH EQU $04 + +; Route7Gate_h map_id=76 +ROUTE_7_GATE_HEIGHT EQU $04 +ROUTE_7_GATE_WIDTH EQU $03 + +; UndergroundPathEntranceRoute7_h map_id=77 +PATH_ENTRANCE_ROUTE_7_HEIGHT EQU $04 +PATH_ENTRANCE_ROUTE_7_WIDTH EQU $04 + +; Route8Gate_h map_id=79 +ROUTE_8_GATE_HEIGHT EQU $04 +ROUTE_8_GATE_WIDTH EQU $03 + +; UndergroundPathEntranceRoute8_h map_id=80 +PATH_ENTRANCE_ROUTE_8_HEIGHT EQU $04 +PATH_ENTRANCE_ROUTE_8_WIDTH EQU $04 + +; RockTunnelPokecenter_h map_id=81 +ROCK_TUNNEL_POKECENTER_HEIGHT EQU $04 +ROCK_TUNNEL_POKECENTER_WIDTH EQU $07 + +; RockTunnel1_h map_id=82 +ROCK_TUNNEL_1_HEIGHT EQU $12 +ROCK_TUNNEL_1_WIDTH EQU $14 + +; PowerPlant_h map_id=83 +POWER_PLANT_HEIGHT EQU $12 +POWER_PLANT_WIDTH EQU $14 + +; Route11Gate_h map_id=84 +ROUTE_11_GATE_1F_HEIGHT EQU $05 +ROUTE_11_GATE_1F_WIDTH EQU $04 + +; DiglettsCaveEntranceRoute11_h map_id=85 +DIGLETTS_CAVE_ENTRANCE_HEIGHT EQU $04 +DIGLETTS_CAVE_ENTRANCE_WIDTH EQU $04 + +; Route11GateUpstairs_h map_id=86 +ROUTE_11_GATE_2F_HEIGHT EQU $04 +ROUTE_11_GATE_2F_WIDTH EQU $04 + +; Route12Gate_h map_id=87 +ROUTE_12_GATE_HEIGHT EQU $04 +ROUTE_12_GATE_WIDTH EQU $05 + +; BillsHouse_h map_id=88 +BILLS_HOUSE_HEIGHT EQU $04 +BILLS_HOUSE_WIDTH EQU $04 + +; VermilionPokecenter_h map_id=89 +VERMILION_POKECENTER_HEIGHT EQU $04 +VERMILION_POKECENTER_WIDTH EQU $07 + +; FanClub_h map_id=90 +POKEMON_FAN_CLUB_HEIGHT EQU $04 +POKEMON_FAN_CLUB_WIDTH EQU $04 + +; VermilionMart_h map_id=91 +VERMILION_MART_HEIGHT EQU $04 +VERMILION_MART_WIDTH EQU $04 + +; VermilionGym_h map_id=92 +VERMILION_GYM_HEIGHT EQU $09 +VERMILION_GYM_WIDTH EQU $05 + +; VermilionHouse1_h map_id=93 +VERMILION_HOUSE_1_HEIGHT EQU $04 +VERMILION_HOUSE_1_WIDTH EQU $04 + +; VermilionDock_h map_id=94 +VERMILION_DOCK_HEIGHT EQU $06 +VERMILION_DOCK_WIDTH EQU $0e + +; SSAnne1_h map_id=95 +SS_ANNE_1_HEIGHT EQU $09 +SS_ANNE_1_WIDTH EQU $14 + +; SSAnne2_h map_id=96 +SS_ANNE_2_HEIGHT EQU $09 +SS_ANNE_2_WIDTH EQU $14 + +; SSAnne3_h map_id=97 +SS_ANNE_3_HEIGHT EQU $03 +SS_ANNE_3_WIDTH EQU $0a + +; SSAnne4_h map_id=98 +SS_ANNE_4_HEIGHT EQU $04 +SS_ANNE_4_WIDTH EQU $0f + +; SSAnne5_h map_id=99 +SS_ANNE_5_HEIGHT EQU $07 +SS_ANNE_5_WIDTH EQU $0a + +; SSAnne6_h map_id=100 +SS_ANNE_6_HEIGHT EQU $08 +SS_ANNE_6_WIDTH EQU $07 + +; SSAnne7_h map_id=101 +SS_ANNE_7_HEIGHT EQU $04 +SS_ANNE_7_WIDTH EQU $03 + +; SSAnne8_h map_id=102 +SS_ANNE_8_HEIGHT EQU $08 +SS_ANNE_8_WIDTH EQU $0c + +; SSAnne9_h map_id=103 +SS_ANNE_9_HEIGHT EQU $08 +SS_ANNE_9_WIDTH EQU $0c + +; SSAnne10_h map_id=104 +SS_ANNE_10_HEIGHT EQU $08 +SS_ANNE_10_WIDTH EQU $0c + +; VictoryRoad1_h map_id=108 +VICTORY_ROAD_1_HEIGHT EQU $09 +VICTORY_ROAD_1_WIDTH EQU $0a + +; Lance_h map_id=113 +LANCES_ROOM_HEIGHT EQU $0d +LANCES_ROOM_WIDTH EQU $0d + +; HallofFameRoom_h map_id=118 +HALL_OF_FAME_HEIGHT EQU $04 +HALL_OF_FAME_WIDTH EQU $05 + +; UndergroundPathNS_h map_id=119 +UNDERGROUND_PATH_NS_HEIGHT EQU $18 +UNDERGROUND_PATH_NS_WIDTH EQU $04 + +; Gary_h map_id=120 +CHAMPIONS_ROOM_HEIGHT EQU $04 +CHAMPIONS_ROOM_WIDTH EQU $04 + +; UndergroundPathWE_h map_id=121 +UNDERGROUND_PATH_WE_HEIGHT EQU $04 +UNDERGROUND_PATH_WE_WIDTH EQU $19 + +; CeladonMart1_h map_id=122 +CELADON_MART_1_HEIGHT EQU $04 +CELADON_MART_1_WIDTH EQU $0a + +; CeladonMart2_h map_id=123 +CELADON_MART_2_HEIGHT EQU $04 +CELADON_MART_2_WIDTH EQU $0a + +; CeladonMart3_h map_id=124 +CELADON_MART_3_HEIGHT EQU $04 +CELADON_MART_3_WIDTH EQU $0a + +; CeladonMart4_h map_id=125 +CELADON_MART_4_HEIGHT EQU $04 +CELADON_MART_4_WIDTH EQU $0a + +; CeladonMartRoof_h map_id=126 +CELADON_MART_ROOF_HEIGHT EQU $04 +CELADON_MART_ROOF_WIDTH EQU $0a + +; CeladonMartElevator_h map_id=127 +CELADON_MART_ELEVATOR_HEIGHT EQU $02 +CELADON_MART_ELEVATOR_WIDTH EQU $02 + +; CeladonMansion1_h map_id=128 +CELADON_MANSION_1_HEIGHT EQU $06 +CELADON_MANSION_1_WIDTH EQU $04 + +; CeladonMansion2_h map_id=129 +CELADON_MANSION_2_HEIGHT EQU $06 +CELADON_MANSION_2_WIDTH EQU $04 + +; CeladonMansion3_h map_id=130 +CELADON_MANSION_3_HEIGHT EQU $06 +CELADON_MANSION_3_WIDTH EQU $04 + +; CeladonMansion4_h map_id=131 +CELADON_MANSION_4_HEIGHT EQU $06 +CELADON_MANSION_4_WIDTH EQU $04 + +; CeladonMansion5_h map_id=132 +CELADON_MANSION_5_HEIGHT EQU $04 +CELADON_MANSION_5_WIDTH EQU $04 + +; CeladonPokecenter_h map_id=133 +CELADON_POKECENTER_HEIGHT EQU $04 +CELADON_POKECENTER_WIDTH EQU $07 + +; CeladonGym_h map_id=134 +CELADON_GYM_HEIGHT EQU $09 +CELADON_GYM_WIDTH EQU $05 + +; CeladonGameCorner_h map_id=135 +GAME_CORNER_HEIGHT EQU $09 +GAME_CORNER_WIDTH EQU $0a + +; CeladonMart5_h map_id=136 +CELADON_MART_5_HEIGHT EQU $04 +CELADON_MART_5_WIDTH EQU $0a + +; CeladonPrizeRoom_h map_id=137 +CELADONPRIZE_ROOM_HEIGHT EQU $04 +CELADONPRIZE_ROOM_WIDTH EQU $05 + +; CeladonDiner_h map_id=138 +CELADON_DINER_HEIGHT EQU $04 +CELADON_DINER_WIDTH EQU $05 + +; CeladonHouse_h map_id=139 +CELADON_HOUSE_HEIGHT EQU $04 +CELADON_HOUSE_WIDTH EQU $04 + +; CeladonHotel_h map_id=140 +CELADONHOTEL_HEIGHT EQU $04 +CELADONHOTEL_WIDTH EQU $07 + +; LavenderPokecenter_h map_id=141 +LAVENDER_POKECENTER_HEIGHT EQU $04 +LAVENDER_POKECENTER_WIDTH EQU $07 + +; PokemonTower1_h map_id=142 +POKEMONTOWER_1_HEIGHT EQU $09 +POKEMONTOWER_1_WIDTH EQU $0a + +; PokemonTower2_h map_id=143 +POKEMONTOWER_2_HEIGHT EQU $09 +POKEMONTOWER_2_WIDTH EQU $0a + +; PokemonTower3_h map_id=144 +POKEMONTOWER_3_HEIGHT EQU $09 +POKEMONTOWER_3_WIDTH EQU $0a + +; PokemonTower4_h map_id=145 +POKEMONTOWER_4_HEIGHT EQU $09 +POKEMONTOWER_4_WIDTH EQU $0a + +; PokemonTower5_h map_id=146 +POKEMONTOWER_5_HEIGHT EQU $09 +POKEMONTOWER_5_WIDTH EQU $0a + +; PokemonTower6_h map_id=147 +POKEMONTOWER_6_HEIGHT EQU $09 +POKEMONTOWER_6_WIDTH EQU $0a + +; PokemonTower7_h map_id=148 +POKEMONTOWER_7_HEIGHT EQU $09 +POKEMONTOWER_7_WIDTH EQU $0a + +; LavenderHouse1_h map_id=149 +LAVENDER_HOUSE_1_HEIGHT EQU $04 +LAVENDER_HOUSE_1_WIDTH EQU $04 + +; LavenderMart_h map_id=150 +LAVENDER_MART_HEIGHT EQU $04 +LAVENDER_MART_WIDTH EQU $04 + +; LavenderHouse2_h map_id=151 +LAVENDER_HOUSE_2_HEIGHT EQU $04 +LAVENDER_HOUSE_2_WIDTH EQU $04 + +; FuchsiaMart_h map_id=152 +FUCHSIA_MART_HEIGHT EQU $04 +FUCHSIA_MART_WIDTH EQU $04 + +; FuchsiaHouse1_h map_id=153 +FUCHSIA_HOUSE_1_HEIGHT EQU $04 +FUCHSIA_HOUSE_1_WIDTH EQU $04 + +; FuchsiaPokecenter_h map_id=154 +FUCHSIA_POKECENTER_HEIGHT EQU $04 +FUCHSIA_POKECENTER_WIDTH EQU $07 + +; FuchsiaHouse2_h map_id=155 +FUCHSIA_HOUSE_2_HEIGHT EQU $04 +FUCHSIA_HOUSE_2_WIDTH EQU $05 + +; SafariZoneEntrance_h map_id=156 +SAFARIZONEENTRANCE_HEIGHT EQU $03 +SAFARIZONEENTRANCE_WIDTH EQU $04 + +; FuchsiaGym_h map_id=157 +FUCHSIA_GYM_HEIGHT EQU $09 +FUCHSIA_GYM_WIDTH EQU $05 + +; FuchsiaMeetingRoom_h map_id=158 +FUCHSIAMEETINGROOM_HEIGHT EQU $04 +FUCHSIAMEETINGROOM_WIDTH EQU $07 + +; SeafoamIslands2_h map_id=159 +SEAFOAM_ISLANDS_2_HEIGHT EQU $09 +SEAFOAM_ISLANDS_2_WIDTH EQU $0f + +; SeafoamIslands3_h map_id=160 +SEAFOAM_ISLANDS_3_HEIGHT EQU $09 +SEAFOAM_ISLANDS_3_WIDTH EQU $0f + +; SeafoamIslands4_h map_id=161 +SEAFOAM_ISLANDS_4_HEIGHT EQU $09 +SEAFOAM_ISLANDS_4_WIDTH EQU $0f + +; SeafoamIslands5_h map_id=162 +SEAFOAM_ISLANDS_5_HEIGHT EQU $09 +SEAFOAM_ISLANDS_5_WIDTH EQU $0f + +; VermilionHouse2_h map_id=163 +VERMILION_HOUSE_2_HEIGHT EQU $04 +VERMILION_HOUSE_2_WIDTH EQU $04 + +; FuchsiaHouse3_h map_id=164 +FUCHSIA_HOUSE_3_HEIGHT EQU $04 +FUCHSIA_HOUSE_3_WIDTH EQU $04 + +; Mansion1_h map_id=165 +MANSION_1_HEIGHT EQU $0e +MANSION_1_WIDTH EQU $0f + +; CinnabarGym_h map_id=166 +CINNABAR_GYM_HEIGHT EQU $09 +CINNABAR_GYM_WIDTH EQU $0a + +; Lab1_h map_id=167 +CINNABAR_LAB_1_HEIGHT EQU $04 +CINNABAR_LAB_1_WIDTH EQU $09 + +; Lab2_h map_id=168 +CINNABAR_LAB_2_HEIGHT EQU $04 +CINNABAR_LAB_2_WIDTH EQU $04 + +; Lab3_h map_id=169 +CINNABAR_LAB_3_HEIGHT EQU $04 +CINNABAR_LAB_3_WIDTH EQU $04 + +; Lab4_h map_id=170 +CINNABAR_LAB_4_HEIGHT EQU $04 +CINNABAR_LAB_4_WIDTH EQU $04 + +; CinnabarPokecenter_h map_id=171 +CINNABAR_POKECENTER_HEIGHT EQU $04 +CINNABAR_POKECENTER_WIDTH EQU $07 + +; CinnabarMart_h map_id=172 +CINNABAR_MART_HEIGHT EQU $04 +CINNABAR_MART_WIDTH EQU $04 + +; IndigoPlateauLobby_h map_id=174 +INDIGO_PLATEAU_LOBBY_HEIGHT EQU $06 +INDIGO_PLATEAU_LOBBY_WIDTH EQU $08 + +; CopycatsHouseF1_h map_id=175 +COPYCATS_HOUSE_1F_HEIGHT EQU $04 +COPYCATS_HOUSE_1F_WIDTH EQU $04 + +; CopycatsHouseF2_h map_id=176 +COPYCATS_HOUSE_2F_HEIGHT EQU $04 +COPYCATS_HOUSE_2F_WIDTH EQU $04 + +; FightingDojo_h map_id=177 +FIGHTINGDOJO_HEIGHT EQU $06 +FIGHTINGDOJO_WIDTH EQU $05 + +; SaffronGym_h map_id=178 +SAFFRON_GYM_HEIGHT EQU $09 +SAFFRON_GYM_WIDTH EQU $0a + +; SaffronHouse1_h map_id=179 +SAFFRON_HOUSE_1_HEIGHT EQU $04 +SAFFRON_HOUSE_1_WIDTH EQU $04 + +; SaffronMart_h map_id=180 +SAFFRON_MART_HEIGHT EQU $04 +SAFFRON_MART_WIDTH EQU $04 + +; SilphCo1_h map_id=181 +SILPH_CO_1F_HEIGHT EQU $09 +SILPH_CO_1F_WIDTH EQU $0f + +; SaffronPokecenter_h map_id=182 +SAFFRON_POKECENTER_HEIGHT EQU $04 +SAFFRON_POKECENTER_WIDTH EQU $07 + +; SaffronHouse2_h map_id=183 +SAFFRON_HOUSE_2_HEIGHT EQU $04 +SAFFRON_HOUSE_2_WIDTH EQU $04 + +; Route15Gate1F_h map_id=184 +ROUTE_15_GATE_1F_HEIGHT EQU $05 +ROUTE_15_GATE_1F_WIDTH EQU $04 + +; Route15GateUpstairs_h map_id=185 +ROUTE_15_GATE_2F_HEIGHT EQU 4 +ROUTE_15_GATE_2F_WIDTH EQU 4 + +; Route16GateMap_h map_id=186 +ROUTE_16_GATE_1F_HEIGHT EQU $07 +ROUTE_16_GATE_1F_WIDTH EQU $04 + +; Route16GateUpstairs_h map_id=187 +ROUTE_16_GATE_2F_HEIGHT EQU $04 +ROUTE_16_GATE_2F_WIDTH EQU $04 + +; Route16House_h map_id=188 +ROUTE_16_HOUSE_HEIGHT EQU $04 +ROUTE_16_HOUSE_WIDTH EQU $04 + +; Route12House_h map_id=189 +ROUTE_12_HOUSE_HEIGHT EQU $04 +ROUTE_12_HOUSE_WIDTH EQU $04 + +; Route18Gate_h map_id=190 +ROUTE_18_GATE_1F_HEIGHT EQU $05 +ROUTE_18_GATE_1F_WIDTH EQU $04 + +; Route18GateHeader_h map_id=191 +ROUTE_18_GATE_2F_HEIGHT EQU $04 +ROUTE_18_GATE_2F_WIDTH EQU $04 + +; SeafoamIslands1_h map_id=192 +SEAFOAM_ISLANDS_1_HEIGHT EQU $09 +SEAFOAM_ISLANDS_1_WIDTH EQU $0f + +; Route22Gate_h map_id=193 +ROUTE_22_GATE_HEIGHT EQU $04 +ROUTE_22_GATE_WIDTH EQU $05 + +; VictoryRoad2_h map_id=194 +VICTORY_ROAD_2_HEIGHT EQU $09 +VICTORY_ROAD_2_WIDTH EQU $0f + +; Route12GateUpstairs_h map_id=195 +ROUTE_12_GATE_2F_HEIGHT EQU $04 +ROUTE_12_GATE_2F_WIDTH EQU $04 + +; VermilionHouse3_h map_id=196 +VERMILION_HOUSE_3_HEIGHT EQU $04 +VERMILION_HOUSE_3_WIDTH EQU $04 + +; DiglettsCave_h map_id=197 +DIGLETTS_CAVE_HEIGHT EQU $12 +DIGLETTS_CAVE_WIDTH EQU $14 + +; VictoryRoad3_h map_id=198 +VICTORY_ROAD_3_HEIGHT EQU $09 +VICTORY_ROAD_3_WIDTH EQU $0f + +; RocketHideout1_h map_id=199 +ROCKET_HIDEOUT_1_HEIGHT EQU $0e +ROCKET_HIDEOUT_1_WIDTH EQU $0f + +; RocketHideout2_h map_id=200 +ROCKET_HIDEOUT_2_HEIGHT EQU $0e +ROCKET_HIDEOUT_2_WIDTH EQU $0f + +; RocketHideout3_h map_id=201 +ROCKET_HIDEOUT_3_HEIGHT EQU $0e +ROCKET_HIDEOUT_3_WIDTH EQU $0f + +; RocketHideout4_h map_id=202 +ROCKET_HIDEOUT_4_HEIGHT EQU $0c +ROCKET_HIDEOUT_4_WIDTH EQU $0f + +; RocketHideoutElevator_h map_id=203 +ROCKET_HIDEOUT_ELEVATOR_HEIGHT EQU $04 +ROCKET_HIDEOUT_ELEVATOR_WIDTH EQU $03 + +; SilphCo2_h map_id=207 +SILPH_CO_2F_HEIGHT EQU $09 +SILPH_CO_2F_WIDTH EQU $0f + +; SilphCo3_h map_id=208 +SILPH_CO_3F_HEIGHT EQU $09 +SILPH_CO_3F_WIDTH EQU $0f + +; SilphCo4_h map_id=209 +SILPH_CO_4F_HEIGHT EQU $09 +SILPH_CO_4F_WIDTH EQU $0f + +; SilphCo5_h map_id=210 +SILPH_CO_5F_HEIGHT EQU $09 +SILPH_CO_5F_WIDTH EQU $0f + +; SilphCo6_h map_id=211 +SILPH_CO_6F_HEIGHT EQU $09 +SILPH_CO_6F_WIDTH EQU $0d + +; SilphCo7_h map_id=212 +SILPH_CO_7F_HEIGHT EQU $09 +SILPH_CO_7F_WIDTH EQU $0d + +; SilphCo8_h map_id=213 +SILPH_CO_8F_HEIGHT EQU $09 +SILPH_CO_8F_WIDTH EQU $0d + +; Mansion2_h map_id=214 +MANSION_2_HEIGHT EQU $0e +MANSION_2_WIDTH EQU $0f + +; Mansion3_h map_id=215 +MANSION_3_HEIGHT EQU $09 +MANSION_3_WIDTH EQU $0f + +; Mansion4_h map_id=216 +MANSION_4_HEIGHT EQU $0e +MANSION_4_WIDTH EQU $0f + +; SafariZoneEast_h map_id=217 +SAFARI_ZONE_EAST_HEIGHT EQU $0d +SAFARI_ZONE_EAST_WIDTH EQU $0f + +; SafariZoneNorth_h map_id=218 +SAFARI_ZONE_NORTH_HEIGHT EQU $12 +SAFARI_ZONE_NORTH_WIDTH EQU $14 + +; SafariZoneWest_h map_id=219 +SAFARI_ZONE_WEST_HEIGHT EQU $0d +SAFARI_ZONE_WEST_WIDTH EQU $0f + +; SafariZoneCenter_h map_id=220 +SAFARI_ZONE_CENTER_HEIGHT EQU $0d +SAFARI_ZONE_CENTER_WIDTH EQU $0f + +; SafariZoneRestHouse1_h map_id=221 +SAFARI_ZONE_REST_HOUSE_1_HEIGHT EQU $04 +SAFARI_ZONE_REST_HOUSE_1_WIDTH EQU $04 + +; SafariZoneSecretHouse_h map_id=222 +SAFARI_ZONE_SECRET_HOUSE_HEIGHT EQU $04 +SAFARI_ZONE_SECRET_HOUSE_WIDTH EQU $04 + +; SafariZoneRestHouse2_h map_id=223 +SAFARI_ZONE_REST_HOUSE_2_HEIGHT EQU $04 +SAFARI_ZONE_REST_HOUSE_2_WIDTH EQU $04 + +; SafariZoneRestHouse3_h map_id=224 +SAFARI_ZONE_REST_HOUSE_3_HEIGHT EQU $04 +SAFARI_ZONE_REST_HOUSE_3_WIDTH EQU $04 + +; SafariZoneRestHouse4_h map_id=225 +SAFARI_ZONE_REST_HOUSE_4_HEIGHT EQU $04 +SAFARI_ZONE_REST_HOUSE_4_WIDTH EQU $04 + +; UnknownDungeon2_h map_id=226 +UNKNOWN_DUNGEON_2_HEIGHT EQU $09 +UNKNOWN_DUNGEON_2_WIDTH EQU $0f + +; UnknownDungeon3_h map_id=227 +UNKNOWN_DUNGEON_3_HEIGHT EQU $09 +UNKNOWN_DUNGEON_3_WIDTH EQU $0f + +; UnknownDungeon1_h map_id=228 +UNKNOWN_DUNGEON_1_HEIGHT EQU $09 +UNKNOWN_DUNGEON_1_WIDTH EQU $0f + +; NameRater_h map_id=229 +NAME_RATERS_HOUSE_HEIGHT EQU $04 +NAME_RATERS_HOUSE_WIDTH EQU $04 + +; CeruleanHouse2_h map_id=230 +CERULEAN_HOUSE_2_HEIGHT EQU $04 +CERULEAN_HOUSE_2_WIDTH EQU $04 + +; RockTunnel2_h map_id=232 +ROCK_TUNNEL_2_HEIGHT EQU $12 +ROCK_TUNNEL_2_WIDTH EQU $14 + +; SilphCo9_h map_id=233 +SILPH_CO_9F_HEIGHT EQU $09 +SILPH_CO_9F_WIDTH EQU $0d + +; SilphCo10_h map_id=234 +SILPH_CO_10F_HEIGHT EQU $09 +SILPH_CO_10F_WIDTH EQU $08 + +; SilphCo11_h map_id=235 +SILPH_CO_11F_HEIGHT EQU $09 +SILPH_CO_11F_WIDTH EQU $09 + +; SilphCoElevator_h map_id=236 +SILPH_CO_ELEVATOR_HEIGHT EQU $02 +SILPH_CO_ELEVATOR_WIDTH EQU $02 + +; BattleCenterM_h map_id=239 +BATTLE_CENTER_HEIGHT EQU $04 +BATTLE_CENTER_WIDTH EQU $05 + +; TradeCenterM_h map_id=240 +TRADE_CENTER_HEIGHT EQU $04 +TRADE_CENTER_WIDTH EQU $05 + +; Lorelei_h map_id=245 +LORELEIS_ROOM_HEIGHT EQU $06 +LORELEIS_ROOM_WIDTH EQU $05 + +; Bruno_h map_id=246 +BRUNOS_ROOM_HEIGHT EQU $06 +BRUNOS_ROOM_WIDTH EQU $05 + +; Agatha_h map_id=247 +AGATHAS_ROOM_HEIGHT EQU $06 +AGATHAS_ROOM_WIDTH EQU $05 + diff --git a/constants/move_constants.asm b/constants/move_constants.asm new file mode 100644 index 00000000..a03f4063 --- /dev/null +++ b/constants/move_constants.asm @@ -0,0 +1,180 @@ +POUND EQU $01 +KARATE_CHOP EQU $02 +DOUBLESLAP EQU $03 +COMET_PUNCH EQU $04 +MEGA_PUNCH EQU $05 +PAY_DAY EQU $06 +FIRE_PUNCH EQU $07 +ICE_PUNCH EQU $08 +THUNDERPUNCH EQU $09 +SCRATCH EQU $0A +VICEGRIP EQU $0B +GUILLOTINE EQU $0C +RAZOR_WIND EQU $0D +SWORDS_DANCE EQU $0E +CUT EQU $0F +GUST EQU $10 +WING_ATTACK EQU $11 +WHIRLWIND EQU $12 +FLY EQU $13 +BIND EQU $14 +SLAM EQU $15 +VINE_WHIP EQU $16 +STOMP EQU $17 +DOUBLE_KICK EQU $18 +MEGA_KICK EQU $19 +JUMP_KICK EQU $1A +ROLLING_KICK EQU $1B +SAND_ATTACK EQU $1C +HEADBUTT EQU $1D +HORN_ATTACK EQU $1E +FURY_ATTACK EQU $1F +HORN_DRILL EQU $20 +TACKLE EQU $21 +BODY_SLAM EQU $22 +WRAP EQU $23 +TAKE_DOWN EQU $24 +THRASH EQU $25 +DOUBLE_EDGE EQU $26 +TAIL_WHIP EQU $27 +POISON_STING EQU $28 +TWINEEDLE EQU $29 +PIN_MISSILE EQU $2A +LEER EQU $2B +BITE EQU $2C +GROWL EQU $2D +ROAR EQU $2E +SING EQU $2F +SUPERSONIC EQU $30 +SONICBOOM EQU $31 +DISABLE EQU $32 +ACID EQU $33 +EMBER EQU $34 +FLAMETHROWER EQU $35 +MIST EQU $36 +WATER_GUN EQU $37 +HYDRO_PUMP EQU $38 +SURF EQU $39 +ICE_BEAM EQU $3A +BLIZZARD EQU $3B +PSYBEAM EQU $3C +BUBBLEBEAM EQU $3D +AURORA_BEAM EQU $3E +HYPER_BEAM EQU $3F +PECK EQU $40 +DRILL_PECK EQU $41 +SUBMISSION EQU $42 +LOW_KICK EQU $43 +COUNTER EQU $44 +SEISMIC_TOSS EQU $45 +STRENGTH EQU $46 +ABSORB EQU $47 +MEGA_DRAIN EQU $48 +LEECH_SEED EQU $49 +GROWTH EQU $4A +RAZOR_LEAF EQU $4B +SOLARBEAM EQU $4C +POISONPOWDER EQU $4D +STUN_SPORE EQU $4E +SLEEP_POWDER EQU $4F +PETAL_DANCE EQU $50 +STRING_SHOT EQU $51 +DRAGON_RAGE EQU $52 +FIRE_SPIN EQU $53 +THUNDERSHOCK EQU $54 +THUNDERBOLT EQU $55 +THUNDER_WAVE EQU $56 +THUNDER EQU $57 +ROCK_THROW EQU $58 +EARTHQUAKE EQU $59 +FISSURE EQU $5A +DIG EQU $5B +TOXIC EQU $5C +CONFUSION EQU $5D +PSYCHIC_M EQU $5E +HYPNOSIS EQU $5F +MEDITATE EQU $60 +AGILITY EQU $61 +QUICK_ATTACK EQU $62 +RAGE EQU $63 +TELEPORT EQU $64 +NIGHT_SHADE EQU $65 +MIMIC EQU $66 +SCREECH EQU $67 +DOUBLE_TEAM EQU $68 +RECOVER EQU $69 +HARDEN EQU $6A +MINIMIZE EQU $6B +SMOKESCREEN EQU $6C +CONFUSE_RAY EQU $6D +WITHDRAW EQU $6E +DEFENSE_CURL EQU $6F +BARRIER EQU $70 +LIGHT_SCREEN EQU $71 +HAZE EQU $72 +REFLECT EQU $73 +FOCUS_ENERGY EQU $74 +BIDE EQU $75 +METRONOME EQU $76 +MIRROR_MOVE EQU $77 +SELFDESTRUCT EQU $78 +EGG_BOMB EQU $79 +LICK EQU $7A +SMOG EQU $7B +SLUDGE EQU $7C +BONE_CLUB EQU $7D +FIRE_BLAST EQU $7E +WATERFALL EQU $7F +CLAMP EQU $80 +SWIFT EQU $81 +SKULL_BASH EQU $82 +SPIKE_CANNON EQU $83 +CONSTRICT EQU $84 +AMNESIA EQU $85 +KINESIS EQU $86 +SOFTBOILED EQU $87 +HI_JUMP_KICK EQU $88 +GLARE EQU $89 +DREAM_EATER EQU $8A +POISON_GAS EQU $8B +BARRAGE EQU $8C +LEECH_LIFE EQU $8D +LOVELY_KISS EQU $8E +SKY_ATTACK EQU $8F +TRANSFORM EQU $90 +BUBBLE EQU $91 +DIZZY_PUNCH EQU $92 +SPORE EQU $93 +FLASH EQU $94 +PSYWAVE EQU $95 +SPLASH EQU $96 +ACID_ARMOR EQU $97 +CRABHAMMER EQU $98 +EXPLOSION EQU $99 +FURY_SWIPES EQU $9A +BONEMERANG EQU $9B +REST EQU $9C +ROCK_SLIDE EQU $9D +HYPER_FANG EQU $9E +SHARPEN EQU $9F +CONVERSION EQU $A0 +TRI_ATTACK EQU $A1 +SUPER_FANG EQU $A2 +SLASH EQU $A3 +SUBSTITUTE EQU $A4 +STRUGGLE EQU $A5 +; these do double duty as animation identifiers +SHOWPIC_ANIM EQU $A6 ; redraw monster pic +XSTATITEM_ANIM EQU $AE ; use X Attack/Defense/Speed/Special +SLP_ANIM EQU $BD ; sleeping monster +CONF_ANIM EQU $BF ; confused monster +TOSS_ANIM EQU $C1 ; toss Poké Ball +SHAKE_ANIM EQU $C2 ; shaking Poké Ball when catching monster +POOF_ANIM EQU $C3 ; puff of smoke +BLOCKBALL_ANIM EQU $C4 ; trainer knocks away Poké Ball +GREATTOSS_ANIM EQU $C5 ; toss Great Ball +ULTRATOSS_ANIM EQU $C6 ; toss Ultra Ball or Master Ball +HIDEPIC_ANIM EQU $C8 ; monster disappears +ROCK_ANIM EQU $C9 ; throw rock +BAIT_ANIM EQU $CA ; throw bait + diff --git a/constants/move_effect_constants.asm b/constants/move_effect_constants.asm new file mode 100644 index 00000000..2e4c7a49 --- /dev/null +++ b/constants/move_effect_constants.asm @@ -0,0 +1,73 @@ +; tentative move effect constants +; {stat}_(UP|DOWN)(1|2) means that the move raises the user's (or lowers the target's) corresponding stat modifier by 1 (or 2) stages +; {status condition}_side_effect means that the move has a side chance of causing that condition +; {status condition}_effect means that the move causes the status condition every time it hits the target +NO_ADDITIONAL_EFFECT EQU $00 +POISON_SIDE_EFFECT1 EQU $02 +DRAIN_HP_EFFECT EQU $03 +BURN_SIDE_EFFECT1 EQU $04 +FREEZE_SIDE_EFFECT EQU $05 +PARALYZE_SIDE_EFFECT1 EQU $06 +EXPLODE_EFFECT EQU $07 ; Explosion, Self Destruct +DREAM_EATER_EFFECT EQU $08 +MIRROR_MOVE_EFFECT EQU $09 +ATTACK_UP1_EFFECT EQU $0A +DEFENSE_UP1_EFFECT EQU $0B +SPECIAL_UP1_EFFECT EQU $0D +EVASION_UP1_EFFECT EQU $0F +PAY_DAY_EFFECT EQU $10 +SWIFT_EFFECT EQU $11 +ATTACK_DOWN1_EFFECT EQU $12 +DEFENSE_DOWN1_EFFECT EQU $13 +SPEED_DOWN1_EFFECT EQU $14 +ACCURACY_DOWN1_EFFECT EQU $16 +CONVERSION_EFFECT EQU $18 +HAZE_EFFECT EQU $19 +BIDE_EFFECT EQU $1A +THRASH_PETAL_DANCE_EFFECT EQU $1B +SWITCH_AND_TELEPORT_EFFECT EQU $1C +TWO_TO_FIVE_ATTACKS_EFFECT EQU $1D +FLINCH_SIDE_EFFECT1 EQU $1F +SLEEP_EFFECT EQU $20 +POISON_SIDE_EFFECT2 EQU $21 +BURN_SIDE_EFFECT2 EQU $22 +PARALYZE_SIDE_EFFECT2 EQU $24 +FLINCH_SIDE_EFFECT2 EQU $25 +OHKO_EFFECT EQU $26 ; moves like Horn Drill +CHARGE_EFFECT EQU $27 ; moves like Solar Beam +SUPER_FANG_EFFECT EQU $28 +SPECIAL_DAMAGE_EFFECT EQU $29 ; Seismic Toss, Night Shade, Sonic Boom, Dragon Rage, Psywave +TRAPPING_EFFECT EQU $2A ; moves like Wrap +FLY_EFFECT EQU $2B +ATTACK_TWICE_EFFECT EQU $2C +JUMP_KICK_EFFECT EQU $2D ; Jump Kick and Hi Jump Kick effect +MIST_EFFECT EQU $2E +FOCUS_ENERGY_EFFECT EQU $2F +RECOIL_EFFECT EQU $30 ; moves like Double Edge +CONFUSION_EFFECT EQU $31 ; Confuse Ray, Supersonic (not the move Confusion) +ATTACK_UP2_EFFECT EQU $32 +DEFENSE_UP2_EFFECT EQU $33 +SPEED_UP2_EFFECT EQU $34 +SPECIAL_UP2_EFFECT EQU $35 +HEAL_EFFECT EQU $38 ; Recover, Softboiled, Rest +TRANSFORM_EFFECT EQU $39 +DEFENSE_DOWN2_EFFECT EQU $3B +LIGHT_SCREEN_EFFECT EQU $40 +REFLECT_EFFECT EQU $41 +POISON_EFFECT EQU $42 +PARALYZE_EFFECT EQU $43 +ATTACK_DOWN_SIDE_EFFECT EQU $44 +DEFENSE_DOWN_SIDE_EFFECT EQU $45 +SPEED_DOWN_SIDE_EFFECT EQU $46 +SPECIAL_DOWN_SIDE_EFFECT EQU $47 +CONFUSION_SIDE_EFFECT EQU $4C +TWINEEDLE_EFFECT EQU $4D +SUBSTITUTE_EFFECT EQU $4F +HYPER_BEAM_EFFECT EQU $50 +RAGE_EFFECT EQU $51 +MIMIC_EFFECT EQU $52 +METRONOME_EFFECT EQU $53 +LEECH_SEED_EFFECT EQU $54 +SPLASH_EFFECT EQU $55 +DISABLE_EFFECT EQU $56 + diff --git a/constants/palette_constants.asm b/constants/palette_constants.asm new file mode 100644 index 00000000..99cde354 --- /dev/null +++ b/constants/palette_constants.asm @@ -0,0 +1,39 @@ +; super game boy palettes +PAL_ROUTE EQU $00 +PAL_PALLET EQU $01 +PAL_VIRIDIAN EQU $02 +PAL_PEWTER EQU $03 +PAL_CERULEAN EQU $04 +PAL_LAVENDER EQU $05 +PAL_VERMILION EQU $06 +PAL_CELADON EQU $07 +PAL_FUCHSIA EQU $08 +PAL_CINNABAR EQU $09 +PAL_INDIGO EQU $0A +PAL_SAFFRON EQU $0B +PAL_TOWNMAP EQU $0C +PAL_LOGO1 EQU $0D +; XXX +PAL_LOGO2 EQU $0F +PAL_MEWMON EQU $10 +PAL_BLUEMON EQU $11 +PAL_REDMON EQU $12 +PAL_CYANMON EQU $13 +PAL_PURPLEMON EQU $14 +PAL_BROWNMON EQU $15 +PAL_GREENMON EQU $16 +PAL_PINKMON EQU $17 +PAL_YELLOWMON EQU $18 +PAL_GREYMON EQU $19 +PAL_SLOTS1 EQU $1A +PAL_SLOTS2 EQU $1B +PAL_SLOTS3 EQU $1C +PAL_SLOTS4 EQU $1D +PAL_BLACK EQU $1E +PAL_GREENBAR EQU $1F +PAL_YELLOWBAR EQU $20 +PAL_REDBAR EQU $21 +PAL_BADGE EQU $22 +PAL_CAVE EQU $23 +; XXX + diff --git a/constants/pokedex_constants.asm b/constants/pokedex_constants.asm new file mode 100644 index 00000000..bc95f8bd --- /dev/null +++ b/constants/pokedex_constants.asm @@ -0,0 +1,152 @@ +DEX_BULBASAUR EQU 1 +DEX_IVYSAUR EQU 2 +DEX_VENUSAUR EQU 3 +DEX_CHARMANDER EQU 4 +DEX_CHARMELEON EQU 5 +DEX_CHARIZARD EQU 6 +DEX_SQUIRTLE EQU 7 +DEX_WARTORTLE EQU 8 +DEX_BLASTOISE EQU 9 +DEX_CATERPIE EQU 10 +DEX_METAPOD EQU 11 +DEX_BUTTERFREE EQU 12 +DEX_WEEDLE EQU 13 +DEX_KAKUNA EQU 14 +DEX_BEEDRILL EQU 15 +DEX_PIDGEY EQU 16 +DEX_PIDGEOTTO EQU 17 +DEX_PIDGEOT EQU 18 +DEX_RATTATA EQU 19 +DEX_RATICATE EQU 20 +DEX_SPEAROW EQU 21 +DEX_FEAROW EQU 22 +DEX_EKANS EQU 23 +DEX_ARBOK EQU 24 +DEX_PIKACHU EQU 25 +DEX_RAICHU EQU 26 +DEX_SANDSHREW EQU 27 +DEX_SANDSLASH EQU 28 +DEX_NIDORAN_F EQU 29 +DEX_NIDORINA EQU 30 +DEX_NIDOQUEEN EQU 31 +DEX_NIDORAN_M EQU 32 +DEX_NIDORINO EQU 33 +DEX_NIDOKING EQU 34 +DEX_CLEFAIRY EQU 35 +DEX_CLEFABLE EQU 36 +DEX_VULPIX EQU 37 +DEX_NINETALES EQU 38 +DEX_JIGGLYPUFF EQU 39 +DEX_WIGGLYTUFF EQU 40 +DEX_ZUBAT EQU 41 +DEX_GOLBAT EQU 42 +DEX_ODDISH EQU 43 +DEX_GLOOM EQU 44 +DEX_VILEPLUME EQU 45 +DEX_PARAS EQU 46 +DEX_PARASECT EQU 47 +DEX_VENONAT EQU 48 +DEX_VENOMOTH EQU 49 +DEX_DIGLETT EQU 50 +DEX_DUGTRIO EQU 51 +DEX_MEOWTH EQU 52 +DEX_PERSIAN EQU 53 +DEX_PSYDUCK EQU 54 +DEX_GOLDUCK EQU 55 +DEX_MANKEY EQU 56 +DEX_PRIMEAPE EQU 57 +DEX_GROWLITHE EQU 58 +DEX_ARCANINE EQU 59 +DEX_POLIWAG EQU 60 +DEX_POLIWHIRL EQU 61 +DEX_POLIWRATH EQU 62 +DEX_ABRA EQU 63 +DEX_KADABRA EQU 64 +DEX_ALAKAZAM EQU 65 +DEX_MACHOP EQU 66 +DEX_MACHOKE EQU 67 +DEX_MACHAMP EQU 68 +DEX_BELLSPROUT EQU 69 +DEX_WEEPINBELL EQU 70 +DEX_VICTREEBEL EQU 71 +DEX_TENTACOOL EQU 72 +DEX_TENTACRUEL EQU 73 +DEX_GEODUDE EQU 74 +DEX_GRAVELER EQU 75 +DEX_GOLEM EQU 76 +DEX_PONYTA EQU 77 +DEX_RAPIDASH EQU 78 +DEX_SLOWPOKE EQU 79 +DEX_SLOWBRO EQU 80 +DEX_MAGNEMITE EQU 81 +DEX_MAGNETON EQU 82 +DEX_FARFETCH_D EQU 83 +DEX_DODUO EQU 84 +DEX_DODRIO EQU 85 +DEX_SEEL EQU 86 +DEX_DEWGONG EQU 87 +DEX_GRIMER EQU 88 +DEX_MUK EQU 89 +DEX_SHELLDER EQU 90 +DEX_CLOYSTER EQU 91 +DEX_GASTLY EQU 92 +DEX_HAUNTER EQU 93 +DEX_GENGAR EQU 94 +DEX_ONIX EQU 95 +DEX_DROWZEE EQU 96 +DEX_HYPNO EQU 97 +DEX_KRABBY EQU 98 +DEX_KINGLER EQU 99 +DEX_VOLTORB EQU 100 +DEX_ELECTRODE EQU 101 +DEX_EXEGGCUTE EQU 102 +DEX_EXEGGUTOR EQU 103 +DEX_CUBONE EQU 104 +DEX_MAROWAK EQU 105 +DEX_HITMONLEE EQU 106 +DEX_HITMONCHAN EQU 107 +DEX_LICKITUNG EQU 108 +DEX_KOFFING EQU 109 +DEX_WEEZING EQU 110 +DEX_RHYHORN EQU 111 +DEX_RHYDON EQU 112 +DEX_CHANSEY EQU 113 +DEX_TANGELA EQU 114 +DEX_KANGASKHAN EQU 115 +DEX_HORSEA EQU 116 +DEX_SEADRA EQU 117 +DEX_GOLDEEN EQU 118 +DEX_SEAKING EQU 119 +DEX_STARYU EQU 120 +DEX_STARMIE EQU 121 +DEX_MR_MIME EQU 122 +DEX_SCYTHER EQU 123 +DEX_JYNX EQU 124 +DEX_ELECTABUZZ EQU 125 +DEX_MAGMAR EQU 126 +DEX_PINSIR EQU 127 +DEX_TAUROS EQU 128 +DEX_MAGIKARP EQU 129 +DEX_GYARADOS EQU 130 +DEX_LAPRAS EQU 131 +DEX_DITTO EQU 132 +DEX_EEVEE EQU 133 +DEX_VAPOREON EQU 134 +DEX_JOLTEON EQU 135 +DEX_FLAREON EQU 136 +DEX_PORYGON EQU 137 +DEX_OMANYTE EQU 138 +DEX_OMASTAR EQU 139 +DEX_KABUTO EQU 140 +DEX_KABUTOPS EQU 141 +DEX_AERODACTYL EQU 142 +DEX_SNORLAX EQU 143 +DEX_ARTICUNO EQU 144 +DEX_ZAPDOS EQU 145 +DEX_MOLTRES EQU 146 +DEX_DRATINI EQU 147 +DEX_DRAGONAIR EQU 148 +DEX_DRAGONITE EQU 149 +DEX_MEWTWO EQU 150 +DEX_MEW EQU 151 + diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm new file mode 100644 index 00000000..ed4681e1 --- /dev/null +++ b/constants/pokemon_constants.asm @@ -0,0 +1,155 @@ +RHYDON EQU $01 +KANGASKHAN EQU $02 +NIDORAN_M EQU $03 +CLEFAIRY EQU $04 +SPEAROW EQU $05 +VOLTORB EQU $06 +NIDOKING EQU $07 +SLOWBRO EQU $08 +IVYSAUR EQU $09 +EXEGGUTOR EQU $0A +LICKITUNG EQU $0B +EXEGGCUTE EQU $0C +GRIMER EQU $0D +GENGAR EQU $0E +NIDORAN_F EQU $0F +NIDOQUEEN EQU $10 +CUBONE EQU $11 +RHYHORN EQU $12 +LAPRAS EQU $13 +ARCANINE EQU $14 +MEW EQU $15 +GYARADOS EQU $16 +SHELLDER EQU $17 +TENTACOOL EQU $18 +GASTLY EQU $19 +SCYTHER EQU $1A +STARYU EQU $1B +BLASTOISE EQU $1C +PINSIR EQU $1D +TANGELA EQU $1E +GROWLITHE EQU $21 +ONIX EQU $22 +FEAROW EQU $23 +PIDGEY EQU $24 +SLOWPOKE EQU $25 +KADABRA EQU $26 +GRAVELER EQU $27 +CHANSEY EQU $28 +MACHOKE EQU $29 +MR_MIME EQU $2A +HITMONLEE EQU $2B +HITMONCHAN EQU $2C +ARBOK EQU $2D +PARASECT EQU $2E +PSYDUCK EQU $2F +DROWZEE EQU $30 +GOLEM EQU $31 +MAGMAR EQU $33 +ELECTABUZZ EQU $35 +MAGNETON EQU $36 +KOFFING EQU $37 +MANKEY EQU $39 +SEEL EQU $3A +DIGLETT EQU $3B +TAUROS EQU $3C +FARFETCH_D EQU $40 +VENONAT EQU $41 +DRAGONITE EQU $42 +DODUO EQU $46 +POLIWAG EQU $47 +JYNX EQU $48 +MOLTRES EQU $49 +ARTICUNO EQU $4A +ZAPDOS EQU $4B +DITTO EQU $4C +MEOWTH EQU $4D +KRABBY EQU $4E +VULPIX EQU $52 +NINETALES EQU $53 +PIKACHU EQU $54 +RAICHU EQU $55 +DRATINI EQU $58 +DRAGONAIR EQU $59 +KABUTO EQU $5A +KABUTOPS EQU $5B +HORSEA EQU $5C +SEADRA EQU $5D +SANDSHREW EQU $60 +SANDSLASH EQU $61 +OMANYTE EQU $62 +OMASTAR EQU $63 +JIGGLYPUFF EQU $64 +WIGGLYTUFF EQU $65 +EEVEE EQU $66 +FLAREON EQU $67 +JOLTEON EQU $68 +VAPOREON EQU $69 +MACHOP EQU $6A +ZUBAT EQU $6B +EKANS EQU $6C +PARAS EQU $6D +POLIWHIRL EQU $6E +POLIWRATH EQU $6F +WEEDLE EQU $70 +KAKUNA EQU $71 +BEEDRILL EQU $72 +DODRIO EQU $74 +PRIMEAPE EQU $75 +DUGTRIO EQU $76 +VENOMOTH EQU $77 +DEWGONG EQU $78 +CATERPIE EQU $7B +METAPOD EQU $7C +BUTTERFREE EQU $7D +MACHAMP EQU $7E +GOLDUCK EQU $80 +HYPNO EQU $81 +GOLBAT EQU $82 +MEWTWO EQU $83 +SNORLAX EQU $84 +MAGIKARP EQU $85 +MUK EQU $88 +KINGLER EQU $8A +CLOYSTER EQU $8B +ELECTRODE EQU $8D +CLEFABLE EQU $8E +WEEZING EQU $8F +PERSIAN EQU $90 +MAROWAK EQU $91 +HAUNTER EQU $93 +ABRA EQU $94 +ALAKAZAM EQU $95 +PIDGEOTTO EQU $96 +PIDGEOT EQU $97 +STARMIE EQU $98 +BULBASAUR EQU $99 +VENUSAUR EQU $9A +TENTACRUEL EQU $9B +GOLDEEN EQU $9D +SEAKING EQU $9E +PONYTA EQU $A3 +RAPIDASH EQU $A4 +RATTATA EQU $A5 +RATICATE EQU $A6 +NIDORINO EQU $A7 +NIDORINA EQU $A8 +GEODUDE EQU $A9 +PORYGON EQU $AA +AERODACTYL EQU $AB +MAGNEMITE EQU $AD +CHARMANDER EQU $B0 +SQUIRTLE EQU $B1 +CHARMELEON EQU $B2 +WARTORTLE EQU $B3 +CHARIZARD EQU $B4 +FOSSIL_KABUTOPS EQU $B6 +FOSSIL_AERODACTYL EQU $B7 +MON_GHOST EQU $B8 +ODDISH EQU $B9 +GLOOM EQU $BA +VILEPLUME EQU $BB +BELLSPROUT EQU $BC +WEEPINBELL EQU $BD +VICTREEBEL EQU $BE + diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm new file mode 100644 index 00000000..f98352f9 --- /dev/null +++ b/constants/trainer_constants.asm @@ -0,0 +1,48 @@ +; sometimes it's necessary to add $C8 to these values +YOUNGSTER EQU $01 +BUG_CATCHER EQU $02 +LASS EQU $03 +SAILOR EQU $04 +JR__TRAINER_M EQU $05 +JR__TRAINER_F EQU $06 +POKEMANIAC EQU $07 +SUPER_NERD EQU $08 +HIKER EQU $09 +BIKER EQU $0A +BURGLAR EQU $0B +ENGINEER EQU $0C +JUGGLER_X EQU $0D +FISHER EQU $0E +SWIMMER EQU $0F +CUE_BALL EQU $10 +GAMBLER EQU $11 +BEAUTY EQU $12 +PSYCHIC_TR EQU $13 +ROCKER EQU $14 +JUGGLER EQU $15 +TAMER EQU $16 +BIRD_KEEPER EQU $17 +BLACKBELT EQU $18 +SONY1 EQU $19 +PROF_OAK EQU $1A +CHIEF EQU $1B +SCIENTIST EQU $1C +GIOVANNI EQU $1D +ROCKET EQU $1E +COOLTRAINER_M EQU $1F +COOLTRAINER_F EQU $20 +BRUNO EQU $21 +BROCK EQU $22 +MISTY EQU $23 +LT__SURGE EQU $24 +ERIKA EQU $25 +KOGA EQU $26 +BLAINE EQU $27 +SABRINA EQU $28 +GENTLEMAN EQU $29 +SONY2 EQU $2A +SONY3 EQU $2B +LORELEI EQU $2C +CHANNELER EQU $2D +AGATHA EQU $2E +LANCE EQU $2F -- cgit v1.3.1-sl0p From 3904b5aba5accc6bab47363b2f9e9996212c3ed6 Mon Sep 17 00:00:00 2001 From: yenatch Date: Thu, 5 Dec 2013 01:37:44 -0500 Subject: clean up remaining constants --- constants.asm | 82 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 41 insertions(+), 41 deletions(-) (limited to 'constants.asm') diff --git a/constants.asm b/constants.asm index e54b7c70..c453884b 100644 --- a/constants.asm +++ b/constants.asm @@ -24,16 +24,16 @@ TRAINER_NAME EQU 7 ; hardware registers, from the pandocs http://nocash.emubase.de/pandocs.htm rJOYP EQU $FF00 -rDIV EQU $FF04 +rDIV EQU $FF04 rLCDC EQU $FF40 -rSCY EQU $FF42 -rSCX EQU $FF43 -rBGP EQU $FF47 +rSCY EQU $FF42 +rSCX EQU $FF43 +rBGP EQU $FF47 rOBP0 EQU $FF48 rOBP1 EQU $FF49 -rWY EQU $FF4A -rWX EQU $FF4B -rIE EQU $FFFF +rWY EQU $FF4A +rWX EQU $FF4B +rIE EQU $FFFF BTN_A EQU %00000001 BTN_B EQU %00000010 @@ -73,54 +73,54 @@ INCLUDE "constants/map_constants.asm" INCLUDE "constants/map_dimensions.asm" ; Evolution types -EV_LEVEL EQU 1 -EV_ITEM EQU 2 -EV_TRADE EQU 3 +EV_LEVEL EQU 1 +EV_ITEM EQU 2 +EV_TRADE EQU 3 ; Elemental types -NORMAL EQU $00 +NORMAL EQU $00 FIGHTING EQU $01 -FLYING EQU $02 -POISON EQU $03 -GROUND EQU $04 -ROCK EQU $05 -BUG EQU $07 -GHOST EQU $08 -FIRE EQU $14 -WATER EQU $15 -GRASS EQU $16 +FLYING EQU $02 +POISON EQU $03 +GROUND EQU $04 +ROCK EQU $05 +BUG EQU $07 +GHOST EQU $08 +FIRE EQU $14 +WATER EQU $15 +GRASS EQU $16 ELECTRIC EQU $17 -PSYCHIC EQU $18 -ICE EQU $19 -DRAGON EQU $1A +PSYCHIC EQU $18 +ICE EQU $19 +DRAGON EQU $1A -EAST EQU 1 -WEST EQU 2 +EAST EQU 1 +WEST EQU 2 SOUTH EQU 4 NORTH EQU 8 ; different kinds of people events -ITEM EQU $80 +ITEM EQU $80 TRAINER EQU $40 ; status ailments (masks) -SLP EQU %00000111 -PSN EQU %00001000 -BRN EQU %00010000 -FRZ EQU %00100000 -PAR EQU %01000000 +SLP EQU %00000111 +PSN EQU %00001000 +BRN EQU %00010000 +FRZ EQU %00100000 +PAR EQU %01000000 ; pokemon's overworld sprites -SPRITE_MON EQU $0 -SPRITE_BALL_M EQU $1 -SPRITE_HELIX EQU $2 -SPRITE_FAIRY EQU $3 -SPRITE_BIRD_M EQU $4 -SPRITE_WATER EQU $5 -SPRITE_BUG EQU $6 -SPRITE_GRASS EQU $7 -SPRITE_SNAKE EQU $8 -SPRITE_QUADRUPED EQU $9 +SPRITE_MON EQU $0 +SPRITE_BALL_M EQU $1 +SPRITE_HELIX EQU $2 +SPRITE_FAIRY EQU $3 +SPRITE_BIRD_M EQU $4 +SPRITE_WATER EQU $5 +SPRITE_BUG EQU $6 +SPRITE_GRASS EQU $7 +SPRITE_SNAKE EQU $8 +SPRITE_QUADRUPED EQU $9 ; overworld sprites SPRITE_RED EQU $01 -- cgit v1.3.1-sl0p From 9c4be8a91e0df8c2eb8a75a5108898d4f33d01de Mon Sep 17 00:00:00 2001 From: "U-Fish-PC\\Daniel" Date: Wed, 11 Dec 2013 01:44:39 -0500 Subject: Disassemble Slot Machine and Others --- constants.asm | 2 + constants/slotmachine_constants.asm | 6 + gfx/blue/slotmachine1.2bpp | Bin 432 -> 592 bytes gfx/red/slotmachine1.2bpp | Bin 432 -> 592 bytes main.asm | 1323 ++++++++++++++++++++++++++++++++--- 5 files changed, 1251 insertions(+), 80 deletions(-) create mode 100755 constants/slotmachine_constants.asm mode change 100644 => 100755 gfx/blue/slotmachine1.2bpp mode change 100644 => 100755 gfx/red/slotmachine1.2bpp (limited to 'constants.asm') diff --git a/constants.asm b/constants.asm index c453884b..8191adee 100644 --- a/constants.asm +++ b/constants.asm @@ -72,6 +72,8 @@ INCLUDE "constants/palette_constants.asm" INCLUDE "constants/map_constants.asm" INCLUDE "constants/map_dimensions.asm" +INCLUDE "constants/slotmachine_constants.asm" + ; Evolution types EV_LEVEL EQU 1 EV_ITEM EQU 2 diff --git a/constants/slotmachine_constants.asm b/constants/slotmachine_constants.asm new file mode 100755 index 00000000..651383e6 --- /dev/null +++ b/constants/slotmachine_constants.asm @@ -0,0 +1,6 @@ +SLOTS7 EQU $0200 +SLOTSBAR EQU $0604 +SLOTSCHERRY EQU $0A08 +SLOTSFISH EQU $0E0C +SLOTSBIRD EQU $1210 +SLOTSMOUSE EQU $1614 diff --git a/gfx/blue/slotmachine1.2bpp b/gfx/blue/slotmachine1.2bpp old mode 100644 new mode 100755 index c83ef184..0b79d447 Binary files a/gfx/blue/slotmachine1.2bpp and b/gfx/blue/slotmachine1.2bpp differ diff --git a/gfx/red/slotmachine1.2bpp b/gfx/red/slotmachine1.2bpp old mode 100644 new mode 100755 index 32d4daa5..be40a1df Binary files a/gfx/red/slotmachine1.2bpp and b/gfx/red/slotmachine1.2bpp differ diff --git a/main.asm b/main.asm index 80d27687..c677b316 100755 --- a/main.asm +++ b/main.asm @@ -15650,7 +15650,7 @@ NicknameTextString: ; 6953 (1:6953) db "NICKNAME?@" Func_695d: ; 695d (1:695d) - call Unnamed_6a12 + call Func_6a12 ld de, DefaultNamesPlayer ; $6aa8 call Func_6a6c ld a, [wCurrentMenuItem] ; $cc26 @@ -15683,7 +15683,7 @@ UnnamedText_699f: ; 699f (1:699f) db "@" Func_69a4: ; 69a4 (1:69a4) - call Unnamed_6a12 ; 0x69a4 call 0x6a12 + call Func_6a12 ; 0x69a4 call 0x6a12 ld de, DefaultNamesRival call Func_6a6c ld a, [wCurrentMenuItem] ; $cc26 @@ -15733,7 +15733,7 @@ Func_69ec: ; 69ec (1:69ec) ld a, $ff jr asm_6a19 -Unnamed_6a12: ; 6a12 (1:6a12) +Func_6a12: ; 6a12 (1:6a12) FuncCoord 5, 4 ; $c3f5 ld hl, Coord ld de, $67d @@ -22227,13 +22227,14 @@ MapHSA2: ; cd8d (3:4d8d) Func_cd99: ; cd99 (3:4d99) ld hl, $d728 set 0, [hl] - ld hl, Unknown_cdaa ; $4daa + ld hl, UsedStrengthText ; $4daa call PrintText ld hl, UnnamedText_cdbb ; $4dbb jp PrintText -Unknown_cdaa: ; cdaa (3:4daa) -INCBIN "baserom.gbc",$cdaa,$cdaf - $cdaa +UsedStrengthText: ; cdaa (3:4daa) + TX_FAR _UsedStrengthText + db $08 ; asm ld a, [$cf91] call PlayCry call Delay3 @@ -29597,7 +29598,7 @@ asm_ef82: ; ef82 (3:6f82) call Delay3 xor a ld [$FF00+$b0], a - ld hl, Unknown_eff2 ; $6ff2 + ld hl, UsedCutText ; $6ff2 call PrintText call LoadScreenTilesFromBuffer2 ld hl, $d730 @@ -29620,8 +29621,9 @@ asm_ef82: ; ef82 (3:6f82) call UpdateSprites jp Func_eedc -Unknown_eff2: ; eff2 (3:6ff2) -INCBIN "baserom.gbc",$eff2,$eff7 - $eff2 +UsedCutText: ; eff2 (3:6ff2) + TX_FAR _UsedCutText + db "@" Func_eff7: ; eff7 (3:6ff7) xor a @@ -31543,7 +31545,20 @@ UnnamedText_fbe3: ; fbe3 (3:7be3) TX_FAR _UnnamedText_fbe3 db "@" -INCBIN "baserom.gbc",$fbe8,$fc03 - $fbe8 +UnnamedText_fbe8: ; fbe8 (3:7be8) + db $08 ; asm + ld hl, UnnamedText_fc03 + ld a, [W_CURMAPTILESET] + cp $13 + jr nz, .asm_fbfd + ld a, [$c420] + cp $38 + jr nz, .asm_fbfd + ld hl, UnnamedText_fc08 + +.asm_fbfd + call PrintText + jp TextScriptEnd UnnamedText_fc03: ; fc03 (3:7c03) TX_FAR _UnnamedText_fc03 @@ -31557,7 +31572,30 @@ UnnamedText_fc0d: ; fc0d (3:7c0d) TX_FAR _UnnamedText_fc0d db "@" -INCBIN "baserom.gbc",$fc12,$fc45 - $fc12 +TownMapText: ; fc12 (3:7c12) + TX_FAR _TownMapText + db $06 + db $08 ; asm + ld a, $1 + ld [$cc3c], a + ld hl, $d730 + set 6, [hl] + call GBPalWhiteOutWithDelay3 + xor a + ld [$ffb0], a + inc a + ld [H_AUTOBGTRANSFERENABLED], a + call LoadFontTilePatterns + ld b, BANK(Func_70e3e) + ld hl, Func_70e3e + call Bankswitch + ld hl, $d730 + res 6, [hl] + ld de, TextScriptEnd + push de + ld a, [H_LOADEDROMBANK] + push af + jp CloseTextDisplay UnnamedText_fc45: ; fc45 (3:7c45) TX_FAR _UnnamedText_fc45 @@ -31882,10 +31920,16 @@ StatusScreen: ; 12953 (4:6953) jp SkipFixedLengthTextEntries Unknown_12a95: ; 12a95 (4:6a95) -INCBIN "baserom.gbc",$12a95,$12a9d - $12a95 + dw W_PARTYMON1OT + dw W_ENEMYMON1OT + dw $DD2A + dw $DA54 Unknown_12a9d: ; 12a9d (4:6a9d) -INCBIN "baserom.gbc",$12a9d,$12aa5 - $12a9d + dw W_PARTYMON1NAME + dw W_ENEMYMON1NAME + dw $DE06 + dw $DA49 Type1Text: ; 12aa5 (4:6aa5) db "TYPE1/", $4e @@ -33791,13 +33835,113 @@ UnnamedText_1399e: ; 1399e (4:799e) TX_FAR _UnnamedText_1399e db "@" -INCBIN "baserom.gbc",$139a3,$139cd - $139a3 + ld hl, W_ENEMYMONTYPE1 + ld de, W_PLAYERMONTYPE1 + ld a, [H_WHOSETURN] + and a + ld a, [W_ENEMYBATTSTATUS1] + jr z, .asm_139b8 + push hl + ld h, d + ld l, e + pop de + ld a, [W_PLAYERBATTSTATUS1] + +.asm_139b8 + bit 6, a + jr nz, Func_139d2 + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + ld hl, Func_3fba8 + call Func_139d5 + ld hl, UnnamedText_139cd + jp PrintText UnnamedText_139cd: ; 139cd (4:79cd) TX_FAR _UnnamedText_139cd db "@" -INCBIN "baserom.gbc",$139d2,$13a53 - $139d2 +Func_139d2: ; 139d2 (4:79d2) + ld hl, Func_3fb53 +Func_139d5: ; 139d5 (4:79d5) + ld b, BANK(Func_3fb53) + jp Bankswitch + +Func_139da: ; 139da (4:79da) + ld a, $7 + ld hl, wPlayerMonAttackMod + call Func_13a43 + ld hl, wEnemyMonAttackMod + call Func_13a43 + ld hl, $cd12 + ld de, W_PLAYERMONATK + call Func_13a4a + ld hl, $cd26 + ld de, W_ENEMYMONATTACK + call Func_13a4a + ld hl, W_ENEMYMONSTATUS + ld de, wEnemySelectedMove + ld a, [H_WHOSETURN] + and a + jr z, .asm_13a09 + ld hl, W_PLAYERMONSTATUS + dec de + +.asm_13a09 + ld a, [hl] + ld [hl], $0 + and $27 + jr z, .asm_13a13 + ld a, $ff + ld [de], a + +.asm_13a13 + xor a + ld [W_PLAYERDISABLEDMOVE], a + ld [W_ENEMYDISABLEDMOVE], a + ld hl, $ccee + ld [hli], a + ld [hl], a + ld hl, W_PLAYERBATTSTATUS1 + call Func_13a37 + ld hl, W_ENEMYBATTSTATUS1 + call Func_13a37 + ld hl, Func_3fba8 + call Func_139d5 + ld hl, UnnamedText_13a53 + jp PrintText + +Func_13a37: ; 13a37 (4:7a37) + res 7, [hl] + inc hl + ld a, [hl] + and $78 + ld [hli], a + ld a, [hl] + and $f8 + ld [hl], a + ret + +Func_13a43: ; 13a43 (4:7a43) + ld b, $8 +.loop + ld [hli], a + dec b + jr nz, .loop + ret + +Func_13a4a: ; 13a4a (4:7a4a) + ld b, $8 +.loop + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .loop + ret UnnamedText_13a53: ; 13a53 (4:7a53) TX_FAR _UnnamedText_13a53 @@ -37028,8 +37172,8 @@ CeruleanCityText2: ; 1967c (6:567c) ld [$cc3c], a ld hl, ReceivedTM28Text call PrintText - ld b, BANK(Unnamed_ASM_74872) - ld hl, Unnamed_ASM_74872 + ld b, BANK(Func_74872) + ld hl, Func_74872 call Bankswitch .Done jp TextScriptEnd @@ -43936,11 +44080,11 @@ asm_1e9b0: ; 1e9b0 (7:69b0) Func_1e9ed: ; 1e9ed (7:69ed) xor a ld [wJoypadForbiddenButtonsMask], a - ld hl, Unknown_1e9f7 ; $69f7 + ld hl, UnnamedText_1e9f7 ; $69f7 jp PrintText -Unknown_1e9f7: ; 1e9f7 (7:69f7) -INCBIN "baserom.gbc",$1e9f7,$1e9f8 - $1e9f7 +UnnamedText_1e9f7: ; 1e9f7 (7:69f7) + db $08 ; asm ld a, [W_NUMSAFARIBALLS] ; $da47 and a jr z, .asm_1ea04 @@ -43966,7 +44110,8 @@ UnnamedText_1ea12: ; 1ea12 (7:6a12) ld a, $31 jp Func_3ef5 -INCBIN "baserom.gbc",$1ea25,$1ea26 - $1ea25 +UnnamedText_1ea25: ; 1ea25 (7:6a25) + db $08 ; asm xor a ld [$da38], a ld a, [wWhichTrade] ; $cd3d @@ -44212,10 +44357,10 @@ UnnamedText_1ebdd: ; 1ebdd (7:6bdd) TX_FAR _UnnamedText_1ebdd db "@" -UnnamedText_1ebe2: ; 1ebe2 (7:6be2 +UnnamedText_1ebe2: ; 1ebe2 (7:6be2) TX_FAR _UnnamedText_1ebe2 - db $06,$08 - + db $06 + db $08 ; asm ld a, $ff ld [$c0ee], a call PlaySound @@ -44228,8 +44373,8 @@ UnnamedText_1ebe2: ; 1ebe2 (7:6be2 call DelayFrames jp TextScriptEnd -INCBIN "baserom.gbc",$1ec05,$1ec06 - $1ec05 - +UnnamedText_1ec05: ; 1ec05 (7:6c05) + db $08 ; asm call SaveScreenTilesToBuffer1 ld hl, UnnamedText_1ec7f call PrintText @@ -48082,7 +48227,7 @@ Func_3726a: ; 3726a (d:726a) and $f0 swap a ld b, a -.asm_37279 +.loop ld h, d ld l, $48 call Func_37292 @@ -48094,7 +48239,7 @@ Func_3726a: ; 3726a (d:726a) ld d, a call Func_372c4 dec c - jr nz, .asm_37279 + jr nz, .loop pop bc jr Func_3726a @@ -48104,10 +48249,10 @@ Func_37292: ; 37292 (d:7292) jr nz, Func_37292 ld a, h ld [rSCX], a ; $FF00+$43 -.asm_3729a +.loop ld a, [$FF00+$44] cp h - jr z, .asm_3729a + jr z, .loop ret Unknown_372a0: ; 372a0 (d:72a0) @@ -48116,12 +48261,12 @@ INCBIN "baserom.gbc",$372a0,$372ac - $372a0 Func_372ac: ; 372ac (d:72ac) ld a, [wWhichTrade] ; $cd3d cp $b0 - jr z, .asm_372ba + jr z, .skip cp $b1 - jr z, .asm_372ba + jr z, .skip cp $99 ret nz -.asm_372ba +.skip ld e, $1 ld bc, Unknown_37244 ; $7244 ld d, $0 @@ -48171,13 +48316,159 @@ Func_372d6: ; 372d6 (d:72d6) ld c, $96 jp DelayFrames -INCBIN "baserom.gbc",$3730e,$37390 - $3730e +Func_3730e: ; 3730e (d:730e) + call SaveScreenTilesToBuffer2 + ld a, BANK(DisplayTextIDInit) + ld [$cf0c], a + ld b, a + ld hl, DisplayTextIDInit + call Bankswitch + ld hl, UnnamedText_37390 + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .skip + dec a + ld [$cfcb], a + ld hl, $cd4f + xor a + ld [hli], a + ld [hl], $2 + ld a, $4c + call Predef + call GBPalWhiteOutWithDelay3 + call Func_378a8 + call LoadFontTilePatterns + ld b, $5 + call GoPAL_SET + call GBPalNormal + ld a, $e4 + ld [$ff48], a + ld hl, $d730 + set 6, [hl] + xor a + ld [W_SUBANIMSUBENTRYADDR], a + ld hl, wTrainerSpriteOffset + ld bc, $0014 + call FillMemory + call Func_37395 + ld hl, $d730 + res 6, [hl] + xor a + ld [W_SUBANIMSUBENTRYADDR], a + call GBPalWhiteOutWithDelay3 + ld a, $1 + ld [$cfcb], a + call GoPAL_SET_CF1C + call Func_3e08 + call ReloadTilesetTilePatterns +.skip + call LoadScreenTilesFromBuffer2 + call Delay3 + call GBPalNormal + ld a, [$cc5e] + push af + jp CloseTextDisplay UnnamedText_37390: ; 37390 (d:7390) TX_FAR _UnnamedText_37390 db "@" -INCBIN "baserom.gbc",$37395,$37467 - $37395 +Func_37395: ; 37395 (d:7395) + call Func_37754 + xor a + ld hl, $cd4a + ld [hli], a + ld [hl], a + call Func_3775f + ld hl, UnnamedText_3746c + call PrintText + call SaveScreenTilesToBuffer1 +.loop + ld a, $3 + ld [wMenuWatchedKeys], a + ld a, $2 + ld [wMaxMenuItem], a + ld a, $c + ld [wTopMenuItemY], a + ld a, $f + ld [wTopMenuItemX], a + xor a + ld [wCurrentMenuItem], a + ld [wLastMenuItem], a + ld [$cc37], a + ld hl, $c48a + ld b, $5 + ld c, $4 + call TextBoxBorder + ld hl, $c4a0 + ld de, UnnamedText_3745e + call PlaceString + call HandleMenuInput + and $2 + jp nz, LoadScreenTilesFromBuffer1 + ld a, [wCurrentMenuItem] + ld b, a + ld a, $3 + sub b + ld [$cd50], a + ld hl, wPlayerCoins + ld c, a + ld a, [hli] + and a + jr nz, .skip1 + ld a, [hl] + cp c + jr nc, .skip1 + ld hl, UnnamedText_37476 + call PrintText + jr .loop +.skip1 + call LoadScreenTilesFromBuffer1 + call Func_37741 + call Func_377d5 + call Func_37480 + ld a, $4 + ld hl, $cd4d + ld [hli], a + ld [hli], a + ld [hl], a + call WaitForSoundToFinish + ld a, $c0 + call PlaySound + ld hl, UnnamedText_37471 + call PrintText + call Func_374ad + call Func_37588 + ld hl, wPlayerCoins + ld a, [hli] + or [hl] + jr nz, .skip2 + ld hl, UnnamedText_37467 + call PrintText + ld c, $3c + jp DelayFrames +.skip2 + ld hl, UnnamedText_3747b + call PrintText + ld hl, $c49e + ld bc, $0d0f + xor a + ld [$d12c], a + ld a, $14 + ld [$d125], a + call DisplayTextBoxID + ld a, [wCurrentMenuItem] + and a + ret nz + call Func_377ce + jp Func_37395 + +UnnamedText_3745e: ; 3745e (d:745e) + db "×3",$4e + db "×2",$4e + db "×1@" UnnamedText_37467: ; 37467 (d:7467) TX_FAR _UnnamedText_37467 @@ -48199,29 +48490,749 @@ UnnamedText_3747b: ; 3747b (d:747b) TX_FAR _UnnamedText_3747b db "@" -INCBIN "baserom.gbc",$37480,$37673 - $37480 +Func_37480: ; 37480 (d:7480) + ld hl, $cd4c + bit 7, [hl] + ret nz + ld a, [W_SUBANIMSUBENTRYADDR] + and a + jr nz, .skip1 + call GenRandom + and a + jr z, .skip2 + ld b, a + ld a, [$cc5b] + cp b + jr c, .skip3 + ld a, $d2 + cp b + jr c, .skip1 + ld [hl], $0 + ret +.skip1 + set 6, [hl] + ret +.skip2 + ld a, $3c + ld [W_SUBANIMSUBENTRYADDR], a + ret +.skip3 + set 7, [hl] + ret + +Func_374ad: ; 374ad (d:74ad) + ld c, $14 +.loop1 + push bc + call Func_37813 + call Func_37823 + call Func_37833 + ld c, $2 + call DelayFrames + pop bc + dec c + jr nz, .loop1 + xor a + ld [wTrainerSpriteOffset], a +.loop2 + call Func_37882 + call Func_374df + call Func_374fb + call Func_37517 + ret c + ld a, [$cf1b] + xor $1 + inc a + ld c, a + call DelayFrames + jr .loop2 + +Func_374df: ; 374df (d:74df) + ld a, [wTrainerSpriteOffset] + cp $1 + jr c, .skip + ld de, wTrainerEngageDistance + ld a, [de] + rra + jr nc, .skip + ld hl, $cd4d + ld a, [hl] + and a + ret z + dec [hl] + call Func_3752c + ret nz +.skip + jp Func_37813 + +Func_374fb: ; 374fb (d:74fb) + ld a, [wTrainerSpriteOffset] + cp $2 + jr c, .skip + ld de, wTrainerFacingDirection + ld a, [de] + rra + jr nc, .skip + ld hl, $cd4e + ld a, [hl] + and a + ret z + dec [hl] + call Func_37552 + ret z +.skip + jp Func_37823 + +Func_37517: ; 37517 (d:7517) + ld a, [wTrainerSpriteOffset] + cp $3 + jr c, .skip + ld de, wTrainerScreenY + ld a, [de] + rra + jr nc, .skip + scf + ret +.skip + call Func_37833 + and a + ret + +Func_3752c: ; 3752c (d:752c) + call Func_376c0 + ld hl, wTrainerScreenX + ld a, [$cd4c] + and $80 + jr nz, .skip1 + inc hl + ld a, [hl] + cp $a + jr nz, .skip2 + ret +.skip1 + ld c, $3 +.loop + ld a, [hli] + cp $2 + jr c, .skip2 + dec c + jr nz, .loop + ret +.skip2 + inc a + ld hl, $cd4d + ld [hl], $0 + ret + +Func_37552: ; 37552 (d:7552) + call Func_376b4 + ld a, [$cd4c] + and $80 + jr nz, .skip1 + call Func_3756e + ret nz + jr .skip2 +.skip1 + call Func_3756e + ld a, [de] + cp $7 + ret nc +.skip2 + xor a + ld [$cd4e], a + ret + +Func_3756e: ; 3756e (d:756e) + ld hl, wTrainerScreenX + ld de, $cd44 + ld a, [de] + cp [hl] + ret z + inc de + ld a, [de] + cp [hl] + ret z + inc hl + cp [hl] + ret z + inc hl + cp [hl] + ret z + inc de + ld a, [de] + cp [hl] + ret z + dec de + dec de + ret + +Func_37588: ; 37588 (d:7588) + call Func_376a8 + ld a, [$cd50] + cp $2 + jr z, .skip1 + cp $1 + jr z, .skip2 + ld hl, wTrainerScreenX + ld de, $cd45 + ld bc, $cd49 + call Func_376a2 + jp z, .skip5 + ld hl, $cd43 + ld de, $cd45 + ld bc, $cd47 + call Func_376a2 + jr z, .skip5 +.skip1 + ld hl, $cd43 + ld de, $cd46 + ld bc, $cd49 + call Func_376a2 + jr z, .skip5 + ld hl, wTrainerScreenX + ld de, $cd44 + ld bc, $cd47 + call Func_376a2 + jr z, .skip5 +.skip2 + ld hl, $cd42 + ld de, $cd45 + ld bc, $cd48 + call Func_376a2 + jr z, .skip5 + ld a, [$cd4c] + and $c0 + jr z, .skip3 + ld hl, $cd4f + dec [hl] + jr nz, .skip4 +.skip3 + ld hl, UnnamedText_3769d + call PrintText +.loop + xor a + ld [$c002], a + ret +.skip4 + call Func_37833 + call DelayFrame + call Func_37833 + call DelayFrame + jp Func_37588 +.skip5 + ld a, [$cd4c] + and $c0 + jr z, .skip4 + and $80 + jr nz, .skip6 + ld a, [hl] + cp $7 + jr c, .skip4 +.skip6 + ld a, [hl] + sub $2 + ld [wTrainerScreenX], a + ld hl, SlotRewardPointers + ld c, a + ld b, $0 + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push de + ld a, [hli] + ld h, [hl] + ld l, a + ld de, $cf4b + ld bc, $0004 + call CopyData + pop hl + ld de, .asm_37638 + push de + jp [hl] + +.asm_37638 + ld a, [$ff47] + xor $40 + ld [$ff47], a + ld c, $5 + call DelayFrames + dec b + jr nz, .asm_37638 + ld hl, $cd4a + ld [hl], d + inc hl + ld [hl], e + call Func_3775f + ld hl, UnnamedText_37665 + call PrintText + call WaitForTextScrollButtonPress + call Func_3776b + call Func_3775f + ld a, $e4 + ld [$ff48], a + jp .loop + +UnnamedText_37665: ; 37665 (d:7665) + db $08 ; asm + push bc + call Func_37728 + ld hl, UnnamedText_37673 + pop bc + inc bc + inc bc + inc bc + inc bc + ret UnnamedText_37673: ; 37673 (d:7673) TX_FAR _UnnamedText_37673 db "@" -INCBIN "baserom.gbc",$37678,$37690 - $37678 +SlotRewardPointers: ; 37678 (d:7678) + dw SlotReward300Func + dw SlotReward300Text + dw SlotReward100Func + dw SlotReward100Text + dw SlotReward8Func + dw SlotReward8Text + dw SlotReward15Func + dw SlotReward15Text + dw SlotReward15Func + dw SlotReward15Text + dw SlotReward15Func + dw SlotReward15Text + +SlotReward300Text: ; 37690 (d:7690) + db "300@" -SlotRewardValues: - db "300@100@8@15@" +SlotReward100Text: ; 37694 (d:7694) + db "100@" + +SlotReward8Text: ; 37698 (d:7698) + db "8@" + +SlotReward15Text: ; 3769a (d:769a) + db "15@" UnnamedText_3769d: ; 3769d (d:769d) TX_FAR _UnnamedText_3769d db "@" -INCBIN "baserom.gbc",$376a2,$378f5 - $376a2 +Func_376a2: ; 376a2 (d:76a2) + ld a, [de] + cp [hl] + ret nz + ld a, [bc] + cp [hl] + ret + +Func_376a8: ; 376a8 (d:76a8) + ld de, $cd47 + ld hl, SlotMachineWheel3 + ld a, [wTrainerScreenY] + call Func_376c9 + +Func_376b4: ; 376b4 (d:76b4) + ld de, $cd44 + ld hl, SlotMachineWheel2 + ld a, [wTrainerFacingDirection] + call Func_376c9 + +Func_376c0: ; 376c0 (d:76c0) + ld de, wTrainerScreenX + ld hl, SlotMachineWheel1 + ld a, [wTrainerEngageDistance] + +Func_376c9: ; 376c9 (d:76c9) + ld c, a + ld b, $0 + add hl, bc + ld c, $3 +.loop + ld a, [hli] + ld [de], a + inc de + inc hl + dec c + jr nz, .loop + ret + +SlotReward8Func: ; 376d7 (d:76d7) + ld hl, W_SUBANIMSUBENTRYADDR + ld a, [hl] + and a + jr z, .skip + dec [hl] +.skip + ld b, $2 + ld de, 8 + ret + +SlotReward15Func: ; 376e5 (d:76e5) + ld hl, W_SUBANIMSUBENTRYADDR + ld a, [hl] + and a + jr z, .skip + dec [hl] +.skip + ld b, $4 + ld de, 15 + ret + +SlotReward100Func: ; 376f3 (d:76f3) + ld a, $94 + call PlaySound + xor a + ld [$cd4c], a + ld b, $8 + ld de, 100 + ret + +SlotReward300Func: ; 37702 (d:7702) + ld hl, UnnamedText_37722 + call PrintText + ld a, $89 + call PlaySound + call GenRandom + cp $80 + ld a, $0 + jr c, .skip + ld [$cd4c], a +.skip + ld [W_SUBANIMSUBENTRYADDR], a + ld b, $14 + ld de, 300 + ret + +UnnamedText_37722: ; 37722 (d:7722) + TX_FAR _UnnamedText_37722 + db $0a, "@" + +Func_37728: ; 37728 (d:7728) + ld hl, $c4ba + ld a, [wTrainerScreenX] + add $25 + ld [hli], a + inc a + ld [hld], a + inc a + ld de, $ffec + add hl, de + ld [hli], a + inc a + ld [hl], a + ld hl, $c4f2 + ld [hl], $ee + ret + +Func_37741: ; 37741 (d:7741) + ld hl, $cd4b + ld a, [$cd50] + ld [hld], a + xor a + ld [hli], a + ld de, $d5a5 + ld c, $2 + ld a, $c + call Predef + +Func_37754: ; 37754 (d:7754) + ld hl, $c3b9 + ld de, wPlayerCoins + ld c, $2 + jp PrintBCDNumber + +Func_3775f: ; 3775f (d:775f) + ld hl, $c3bf + ld de, $cd4a + ld bc, $8204 + jp PrintNumber + +Func_3776b: ; 3776b (d:776b) + ld a, $1 + ld [$c002], a + call WaitForSoundToFinish + ld hl, $cd46 + xor a + ld [hli], a + inc a + ld [hl], a + ld a, $5 + ld [W_SUBANIMTRANSFORM], a +.loop + ld a, [$cd4b] + ld l, a + ld a, [$cd4a] + ld h, a + or l + ret z + ld de, $ffff + add hl, de + ld a, l + ld [$cd4b], a + ld a, h + ld [$cd4a], a + ld hl, $cd47 + ld de, $d5a5 + ld c, $2 + ld a, $b + call Predef + call Func_37754 + call Func_3775f + ld a, $bf + call PlaySound + ld a, [W_SUBANIMTRANSFORM] + dec a + jr nz, .skip1 + ld a, [$ff48] + xor $40 + ld [$ff48], a + ld a, $5 +.skip1 + ld [W_SUBANIMTRANSFORM], a + ld a, [wTrainerScreenX] + cp $7 + ld c, $8 + jr nc, .skip2 + srl c +.skip2 + call DelayFrames + jr .loop + +Func_377ce: ; 377ce (d:77ce) + ld a, $23 + ld [$d08a], a + jr Func_377e3 + +Func_377d5: ; 377d5 (d:77d5) + ld a, $14 + ld [$d08a], a + ld a, [$cd50] + dec a + jr z, Func_377fb + dec a + jr z, Func_377ef + +Func_377e3: ; 377e3 (d:77e3) + ld hl, $c3cb + call Func_377fe + ld hl, $c46b + call Func_377fe + +Func_377ef: ; 377ef (d:77ef) + ld hl, $c3f3 + call Func_377fe + ld hl, $c443 + call Func_377fe + +Func_377fb: ; 377fb (d:77fb) + ld hl, $c41b + +Func_377fe: ; 377fe (d:77fe) + ld a, [$d08a] + ld [hl], a + ld bc, $000d + add hl, bc + ld [hl], a + ld bc, $0007 + add hl, bc + inc a + ld [hl], a + ld bc, $000d + add hl, bc + ld [hl], a + ret + +Func_37813: ; 37813 (d:7813) + ld bc, SlotMachineWheel1 + ld de, wTrainerEngageDistance + ld hl, wOAMBuffer + ld a, $30 + ld [W_BASECOORDX], a + jr Func_37841 + +Func_37823: ; 37823 (d:7823) + ld bc, SlotMachineWheel2 + ld de, wTrainerFacingDirection + ld hl, $c330 + ld a, $50 + ld [W_BASECOORDX], a + jr Func_37841 + +Func_37833: ; 37833 (d:7833) + ld bc, SlotMachineWheel3 + ld de, wTrainerScreenY + ld hl, $c360 + ld a, $70 + ld [W_BASECOORDX], a + +Func_37841: ; 37841 (d:7841) + ld a, $58 + ld [W_BASECOORDY], a + push de + ld a, [de] + ld d, b + add c + ld e, a + jr nc, Func_3784e + inc d + +Func_3784e: ; 3784e (d:784e) + ld a, [W_BASECOORDY] + ld [hli], a + ld a, [W_BASECOORDX] + ld [hli], a + ld a, [de] + ld [hli], a + ld a, $80 + ld [hli], a + ld a, [W_BASECOORDY] + ld [hli], a + ld a, [W_BASECOORDX] + add $8 + ld [hli], a + ld a, [de] + inc a + ld [hli], a + ld a, $80 + ld [hli], a + inc de + ld a, [W_BASECOORDY] + sub $8 + ld [W_BASECOORDY], a + cp $28 + jr nz, Func_3784e + pop de + ld a, [de] + inc a + cp $1e + jr nz, .skip + xor a +.skip + ld [de], a + ret + +Func_37882: ; 37882 (d:7882) + call DelayFrame + call GetJoypadStateLowSensitivity + ld a, [$ffb5] + and $1 + ret z + ld hl, wTrainerSpriteOffset + ld a, [hl] + dec a + ld de, $cd4d + jr z, .skip + dec a + ld de, $cd4e + jr z, .skip +.loop + inc [hl] + ld a, $be + jp PlaySound +.skip + ld a, [de] + and a + ret nz + jr .loop + +Func_378a8: ; 378a8 (d:78a8) + call DisableLCD + ld hl, SlotMachineTiles2 + ld de, $8000 + ld bc, $01c0 + ld a, BANK(SlotMachineTiles2) + call FarCopyData2 + ld hl, SlotMachineTiles1 + ld de, $9000 + ld bc, $0250 + ld a, BANK(SlotMachineTiles1) + call FarCopyData2 + ld hl, SlotMachineTiles2 + ld de, $9250 + ld bc, $01c0 + ld a, BANK(SlotMachineTiles2) + call FarCopyData2 + ld hl, SlotMachineMap + ld de, wTileMap + ld bc, $00f0 + call CopyData + call EnableLCD + ld hl, wTrainerEngageDistance + ld a, $1c + ld [hli], a + ld [hli], a + ld [hl], a + call Func_37813 + call Func_37823 + jp Func_37833 SlotMachineMap: ; 378f5 (d:78f5) INCBIN "gfx/tilemaps/slotmachine.map" -INCBIN "baserom.gbc",$379e5,$37af1 - $379e5 - -; 0x37af1 +SlotMachineWheel1: ; 379e5 (d:79e5) + dw SLOTS7 + dw SLOTSMOUSE + dw SLOTSFISH + dw SLOTSBAR + dw SLOTSCHERRY + dw SLOTS7 + dw SLOTSFISH + dw SLOTSBIRD + dw SLOTSBAR + dw SLOTSCHERRY + dw SLOTS7 + dw SLOTSMOUSE + dw SLOTSBIRD + dw SLOTSBAR + dw SLOTSCHERRY + dw SLOTS7 + dw SLOTSMOUSE + dw SLOTSFISH + +SlotMachineWheel2: ; 37a09 (d:7a09) + dw SLOTS7 + dw SLOTSFISH + dw SLOTSCHERRY + dw SLOTSBIRD + dw SLOTSMOUSE + dw SLOTSBAR + dw SLOTSCHERRY + dw SLOTSFISH + dw SLOTSBIRD + dw SLOTSCHERRY + dw SLOTSBAR + dw SLOTSFISH + dw SLOTSBIRD + dw SLOTSCHERRY + dw SLOTSMOUSE + dw SLOTS7 + dw SLOTSFISH + dw SLOTSCHERRY + +SlotMachineWheel3: ; 37a2d (d:7a2d) + dw SLOTS7 + dw SLOTSBIRD + dw SLOTSFISH + dw SLOTSCHERRY + dw SLOTSMOUSE + dw SLOTSBIRD + dw SLOTSFISH + dw SLOTSCHERRY + dw SLOTSMOUSE + dw SLOTSBIRD + dw SLOTSFISH + dw SLOTSCHERRY + dw SLOTSMOUSE + dw SLOTSBIRD + dw SLOTSBAR + dw SLOTS7 + dw SLOTSBIRD + dw SLOTSFISH + +SlotMachineTiles1: ; 37a51 (d:7a51) IF _RED INCBIN "gfx/red/slotmachine1.2bpp" ENDC @@ -78833,7 +79844,7 @@ Route11GateUpstairsText3: ; 494a8 (12:54a8) db $08 ; asm ld a, [$c109] cp $4 - jp nz, Unnamed_55c9 + jp nz, Func_55c9 ld a, [$d7d8] bit 7, a ld hl, UnnamedText_494c4 @@ -78854,7 +79865,7 @@ UnnamedText_494c9: ; 494c9 (12:54c9) Route11GateUpstairsText4: ; 494ce (12:54ce) db $8 ld hl, UnnamedText_494d5 ; $54d5 - jp Unnamed_55c9 + jp Func_55c9 UnnamedText_494d5: ; 494d5 (12:54d5) TX_FAR _UnnamedText_494d5 @@ -78980,7 +79991,7 @@ TM39NoRoomText: ; 495ac (12:55ac) Route12GateUpstairsText2: ; 495b1 (12:55b1) db $08 ; asm ld hl, UnnamedText_495b8 - jp Unnamed_55c9 + jp Func_55c9 UnnamedText_495b8: ; 495b8 (12:55b8) TX_FAR _UnnamedText_495b8 ; 0x8c95a @@ -78989,13 +80000,13 @@ UnnamedText_495b8: ; 495b8 (12:55b8) Route12GateUpstairsText3: ; 495bd (12:55bd) db $8 ld hl, UnnamedText_495c4 - jp Unnamed_55c9 + jp Func_55c9 UnnamedText_495c4: ; 495c4 (12:55c4) TX_FAR _UnnamedText_495c4 db "@" -Unnamed_55c9: ; 495c9 (12:55c9) +Func_55c9: ; 495c9 (12:55c9) ld a, [$c109] cp $4 jr z, .asm_495d4 ; 0x495ce $4 @@ -79114,7 +80125,7 @@ UnnamedText_4968c: ; 4968c (12:568c) Route15GateUpstairsText2: ; 49691 (12:5691) db $8 ld hl, UnnamedText_49698 - jp Unnamed_55c9 + jp Func_55c9 UnnamedText_49698: ; 49698 (12:5698) TX_FAR _UnnamedText_49698 @@ -79339,7 +80350,7 @@ UnnamedText_4982f: ; 4982f (12:582f) Route16GateUpstairsText3: ; 49834 (12:5834) db $8 ld hl, UnnamedText_4983b - jp Unnamed_55c9 + jp Func_55c9 UnnamedText_4983b: ; 4983b (12:583b) TX_FAR _UnnamedText_4983b @@ -79348,7 +80359,7 @@ UnnamedText_4983b: ; 4983b (12:583b) Route16GateUpstairsText4: ; 49840 (12:5840) db $8 ld hl, UnnamedText_49847 ; $5847 - jp Unnamed_55c9 + jp Func_55c9 UnnamedText_49847: ; 49847 (12:5847) TX_FAR _UnnamedText_49847 @@ -79541,7 +80552,7 @@ Route18GateUpstairsText1: ; 4997e (12:597e) Route18GateUpstairsText2: ; 4998c (12:598c) db $8 ld hl, UnnamedText_49993 ; $5993 - jp Unnamed_55c9 + jp Func_55c9 UnnamedText_49993: ; 49993 (12:5993) TX_FAR _UnnamedText_49993 @@ -79550,7 +80561,7 @@ UnnamedText_49993: ; 49993 (12:5993) Route18GateUpstairsText3: ; 49998 (12:5998) db $8 ld hl, UnnamedText_4999f ; $599f - jp Unnamed_55c9 + jp Func_55c9 UnnamedText_4999f: ; 4999f (12:599f) TX_FAR _UnnamedText_4999f @@ -80024,7 +81035,7 @@ MtMoon3TextPointers: ; 49e34 (12:5e34) dw MtMoon3Text7 dw Predef5CText dw Predef5CText - dw Unnamed_49f99 + dw UnnamedText_49f99 MtMoon3TrainerHeaders: ; 49e48 (12:5e48) MtMoon3TrainerHeader0: ; 49e48 (12:5e48) @@ -80134,8 +81145,8 @@ MtMoon3Text6: ; 49ee9 (12:5ee9) jr nz, .asm_1fa5e ; 0x49efc ld bc,(DOME_FOSSIL << 8) | 1 call GiveItem - jp nc, Unnamed_49f76 - call Unnamed_49f69 + jp nc, Func_49f76 + call Func_49f69 ld a, $6d ld [$cc4d], a ld a, $11 @@ -80164,8 +81175,8 @@ MtMoon3Text7: ; 49f29 (12:5f29) jr nz, .asm_8e988 ; 0x49f3c ld bc, (HELIX_FOSSIL << 8) | 1 call GiveItem - jp nc, Unnamed_49f76 - call Unnamed_49f69 + jp nc, Func_49f76 + call Func_49f69 ld a, $6e ld [$cc4d], a ld a, $11 @@ -80182,7 +81193,7 @@ UnnamedText_49f64: ; 49f64 (12:5f64) TX_FAR _UnnamedText_49f64 db "@" -Unnamed_49f69: ; 49f69 (12:5f69) +Func_49f69: ; 49f69 (12:5f69) ld hl, UnnamedText_49f6f jp PrintText @@ -80190,7 +81201,7 @@ UnnamedText_49f6f: ; 49f6f (12:5f6f) TX_FAR _UnnamedText_49f6f ; 0x80995 db $11, $d, "@" -Unnamed_49f76: ; 49f76 (12:5f76) +Func_49f76: ; 49f76 (12:5f76) ld hl, UnnamedText_49f7f call PrintText jp TextScriptEnd @@ -80215,8 +81226,9 @@ UnnamedText_49f94: ; 49f94 (12:5f94) TX_FAR _UnnamedText_49f94 db "@" -Unnamed_49f99: ; 49f99 (12:5f99) -INCBIN "baserom.gbc",$49f99,$49f9f - $49f99 +UnnamedText_49f99: ; 49f99 (12:5f99) + TX_FAR _UnnamedText_49f99 + db $11, "@" MtMoon3BattleText2: ; 49f9f (12:5f9f) TX_FAR _MtMoon3BattleText2 @@ -88451,18 +89463,18 @@ DayCareMText1: ; 56254 (15:6254) call SaveScreenTilesToBuffer2 ld a, [$da48] and a - jp nz, Unnamed_562e1 + jp nz, Func_562e1 ld hl, UnnamedText_5640f call PrintText call YesNoChoice ld a, [$cc26] and a ld hl, UnnamedText_5643b - jp nz, Unnamed_56409 + jp nz, Func_56409 ld a, [$d163] dec a ld hl, UnnamedText_56445 - jp z, Unnamed_56409 + jp z, Func_56409 ld hl, UnnamedText_56414 call PrintText xor a @@ -88476,12 +89488,12 @@ DayCareMText1: ; 56254 (15:6254) call LoadGBPal pop af ld hl, UnnamedText_56437 - jp c, Unnamed_56409 + jp c, Func_56409 ld hl, Func_2171b ld b, BANK(Func_2171b) call Bankswitch ld hl, UnnamedText_5644a - jp c, Unnamed_56409 + jp c, Func_56409 xor a ld [$cc2b], a ld a, [$cf92] @@ -88500,12 +89512,160 @@ DayCareMText1: ; 56254 (15:6254) ld a, [$cf91] call PlayCry ld hl, UnnamedText_5641e - jp Unnamed_56409 + jp Func_56409 + +Func_562e1: ; 562e1 (15:62e1) + xor a + ld hl, $da49 + call GetPartyMonName + ld a, $3 + ld [$cc49], a + call LoadMonData + ld hl, Func_58f43 + ld b, BANK(Func_58f43) + call Bankswitch + ld a, d + cp $64 + jr c, .asm_56315 + ld d, $64 + ld hl, CalcExperience + ld b, BANK(CalcExperience) + call Bankswitch + ld hl, $da6d + ld a, [H_NUMTOPRINT] + ld [hli], a + ld a, [$ff97] + ld [hli], a + ld a, [$ff98] + ld [hl], a + ld d, $64 + +.asm_56315 + xor a + ld [wTrainerEngageDistance], a + ld hl, $da62 + ld a, [hl] + ld [wTrainerSpriteOffset], a + cp d + ld [hl], d + ld hl, UnnamedText_56432 + jr z, .asm_56333 + ld a, [wTrainerSpriteOffset] + ld b, a + ld a, d + sub b + ld [wTrainerEngageDistance], a + ld hl, UnnamedText_56423 -Unnamed_562e1: ; 562e1 (15:62e1) -INCBIN "baserom.gbc",$562e1,$56409 - $562e1 +.asm_56333 + call PrintText + ld a, [W_NUMINPARTY] + cp $6 + ld hl, UnnamedText_56440 + jp z, .asm_56403 + ld de, wTrainerFacingDirection + xor a + ld [de], a + inc de + ld [de], a + ld hl, wTrainerScreenX + ld a, $1 + ld [hli], a + ld [hl], $0 + ld a, [wTrainerEngageDistance] + inc a + ld b, a + ld c, $2 +.asm_56357 + push hl + push de + push bc + ld a, $b + call Predef + pop bc + pop de + pop hl + dec b + jr nz, .asm_56357 + ld hl, UnnamedText_56428 + call PrintText + ld a, $13 + ld [$d125], a + call DisplayTextBoxID + call YesNoChoice + ld hl, UnnamedText_56437 + ld a, [wCurrentMenuItem] + and a + jp nz, .asm_56403 + ld hl, wTrainerFacingDirection + ld [$ff9f], a + ld a, [hli] + ld [$ffa0], a + ld a, [hl] + ld [$ffa1], a + call HasEnoughMoney + jr nc, .asm_56396 + ld hl, UnnamedText_56454 + jp .asm_56403 -Unnamed_56409: ; 56409 (15:6409) +.asm_56396 + xor a + ld [$da48], a + ld hl, wTrainerEngageDistance + ld [hli], a + inc hl + ld de, $d349 + ld c, $3 + ld a, $c + call Predef + ld a, $b2 + call PlaySoundWaitForCurrent + ld a, $13 + ld [$d125], a + call DisplayTextBoxID + ld hl, UnnamedText_5644f + call PrintText + ld a, $2 + ld [$cf95], a + call Func_3a68 + ld a, [$da5f] + ld [$cf91], a + ld a, [W_NUMINPARTY] + dec a + push af + ld bc, $002c + push bc + ld hl, W_PARTYMON1_MOVE1 + call AddNTimes + ld d, h + ld e, l + ld a, $1 + ld [wHPBarMaxHP], a + ld a, $3e + call Predef + pop bc + pop af + ld hl, W_PARTYMON1_HP + call AddNTimes + ld d, h + ld e, l + ld bc, $0021 + add hl, bc + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + ld a, [$cf91] + call PlayCry + ld hl, UnnamedText_5642d + jr Func_56409 + +.asm_56403 + ld a, [wTrainerSpriteOffset] + ld [$da62], a + +Func_56409: ; 56409 (15:6409) call PrintText jp TextScriptEnd @@ -106796,7 +107956,7 @@ Func_7486b: ; 7486b (1d:486b) xor a ret -Unnamed_ASM_74872: ; 74872 (1d:4872) +Func_74872: ; 74872 (1d:4872) ; code similar to this appears in a lot of banks; this particular ; one is called after you beat the Rocket that gives you TM28 DIG. ; the screen then fades out, he disappears, and fades back in @@ -107636,11 +108796,11 @@ Func_74ee0: ; 74ee0 (1d:4ee0) call UpdateSprites FuncCoord 2, 5 ; $c406 ld hl, Coord - ld de, Unnamed_74f9e + ld de, DrinkText call PlaceString FuncCoord 9, 6 ; $c421 ld hl, Coord - ld de, Unnamed_74fc3 + ld de, DrinkPriceText call PlaceString ld hl, $d730 res 6, [hl] @@ -107697,12 +108857,12 @@ UnnamedText_74f99: ; 74f99 (1d:4f99) TX_FAR _UnnamedText_74f99 db "@" -Unnamed_74f9e: ; 74f9e (1d:4f9e) +DrinkText: ; 74f9e (1d:4f9e) db "FRESH WATER",$4E db "SODA POP",$4E db "LEMONADE",$4E db "CANCEL@" -Unnamed_74fc3: ; 74fc3 (1d:4fc3) +DrinkPriceText: ; 74fc3 (1d:4fc3) db "¥200",$4E db "¥300",$4E db "¥350",$4E,"@" @@ -111391,6 +112551,7 @@ AnimationTileset1: ; 781fe (1e:41fe) AnimationTileset2: ; 786ee (1e:46ee) INCBIN "gfx/attack_anim_2.2bpp" +SlotMachineTiles2: ; 78bde (1e:4bde) IF _RED INCBIN "gfx/red/slotmachine2.2bpp" ENDC @@ -116129,7 +117290,7 @@ _UnnamedText_49f94: ; 80a37 (20:4a37) db "on regenerating", $55 db "fossils.", $57 -UnnamedText_80a93: ; 80a93 (20:4a93) +_UnnamedText_49f99: ; 80a93 (20:4a93) db $0, "All right. Then", $4f db "this is mine!@@" @@ -118451,7 +119612,7 @@ UnnamedText_8821a: ; 8821a (22:421a) _UnnamedText_3769d: ; 88226 (22:4226) db $0, "Not this time!", $58 -UnnamedText_88236: ; 88236 (22:4236) +_UnnamedText_37722: ; 88236 (22:4236) db $0, "Yeah!@@" _UnnamedText_703fa: ; 8823e (22:423e) @@ -119011,7 +120172,7 @@ _UnnamedText_fc0d: ; 895fb (22:55fb) db $0, "This is an", $4f db "elevator.", $57 -UnnamedText_89611: ; 89611 (22:5611) +_TownMapText: ; 89611 (22:5611) db $0, "A TOWN MAP.@@" _UnnamedText_fc45: ; 8961f (22:561f) @@ -127602,7 +128763,7 @@ _UnnamedText_72d2: ; a4014 (29:4014) db "preparations.", $55 db "Please wait.", $57 -UnnamedText_a403c: ; a403c (29:403c) +_UsedStrengthText: ; a403c (29:403c) TX_RAM $cd6d db $0, " used", $4f db "STRENGTH.@@" @@ -128982,6 +130143,8 @@ _UnnamedText_71dda: ; a82c9 (2a:42c9) _UnnamedText_ef7d ; a82f8 (2a:42f8) db $0, "There isn't", $4f db "anything to CUT!", $58 + +_UsedCutText: ; a8315 (2a:4315) TX_RAM $cd6d db $0, " hacked", $4f db "away with CUT!", $58 -- cgit v1.3.1-sl0p From d4d4481df061dc250e2f85ea17103b873df8b49a Mon Sep 17 00:00:00 2001 From: "U-Fish-PC\\Daniel" Date: Wed, 11 Dec 2013 02:00:10 -0500 Subject: Move slot machine constants --- constants.asm | 2 -- constants/slotmachine_constants.asm | 6 ------ main.asm | 7 +++++++ 3 files changed, 7 insertions(+), 8 deletions(-) delete mode 100755 constants/slotmachine_constants.asm (limited to 'constants.asm') diff --git a/constants.asm b/constants.asm index 8191adee..c453884b 100644 --- a/constants.asm +++ b/constants.asm @@ -72,8 +72,6 @@ INCLUDE "constants/palette_constants.asm" INCLUDE "constants/map_constants.asm" INCLUDE "constants/map_dimensions.asm" -INCLUDE "constants/slotmachine_constants.asm" - ; Evolution types EV_LEVEL EQU 1 EV_ITEM EQU 2 diff --git a/constants/slotmachine_constants.asm b/constants/slotmachine_constants.asm deleted file mode 100755 index 651383e6..00000000 --- a/constants/slotmachine_constants.asm +++ /dev/null @@ -1,6 +0,0 @@ -SLOTS7 EQU $0200 -SLOTSBAR EQU $0604 -SLOTSCHERRY EQU $0A08 -SLOTSFISH EQU $0E0C -SLOTSBIRD EQU $1210 -SLOTSMOUSE EQU $1614 diff --git a/main.asm b/main.asm index c677b316..39313346 100755 --- a/main.asm +++ b/main.asm @@ -49172,6 +49172,13 @@ Func_378a8: ; 378a8 (d:78a8) SlotMachineMap: ; 378f5 (d:78f5) INCBIN "gfx/tilemaps/slotmachine.map" +SLOTS7 EQU $0200 +SLOTSBAR EQU $0604 +SLOTSCHERRY EQU $0A08 +SLOTSFISH EQU $0E0C +SLOTSBIRD EQU $1210 +SLOTSMOUSE EQU $1614 + SlotMachineWheel1: ; 379e5 (d:79e5) dw SLOTS7 dw SLOTSMOUSE -- cgit v1.3.1-sl0p From 23c7161bbcd0e3412fc30a59c68cf4296fdd7dca Mon Sep 17 00:00:00 2001 From: "U-Fish-PC\\Daniel" Date: Wed, 11 Dec 2013 10:34:29 -0500 Subject: Clean up constants --- constants.asm | 190 ++---------------------------------- constants/connection_constants.asm | 5 + constants/evolution_constants.asm | 4 + constants/hardware_constants.asm | 21 ++++ constants/item_constants.asm | 3 +- constants/list_constants.asm | 14 +++ constants/map_constants.asm | 3 +- constants/map_dimensions.asm | 3 +- constants/move_constants.asm | 3 +- constants/move_effect_constants.asm | 3 + constants/oam_constants.asm | 9 ++ constants/palette_constants.asm | 3 +- constants/pokedex_constants.asm | 3 +- constants/pokemon_constants.asm | 3 +- constants/sprite_constants.asm | 89 +++++++++++++++++ constants/status_constants.asm | 6 ++ constants/trainer_constants.asm | 2 +- constants/type_constants.asm | 16 +++ 18 files changed, 184 insertions(+), 196 deletions(-) create mode 100755 constants/connection_constants.asm create mode 100755 constants/evolution_constants.asm create mode 100755 constants/hardware_constants.asm create mode 100755 constants/list_constants.asm create mode 100755 constants/oam_constants.asm create mode 100755 constants/sprite_constants.asm create mode 100755 constants/status_constants.asm create mode 100755 constants/type_constants.asm (limited to 'constants.asm') diff --git a/constants.asm b/constants.asm index c453884b..87f0b633 100644 --- a/constants.asm +++ b/constants.asm @@ -2,197 +2,25 @@ _JAPAN EQU 0 _GREEN EQU 0 _YELLOW EQU 0 - INCLUDE "macros.asm" INCLUDE "hram.asm" - -; OAM flags used by this game -OAMFLAG_ENDOFDATA EQU %00000001 ; pseudo OAM flag, only used by game logic -OAMFLAG_CANBEMASKED EQU %00000010 ; pseudo OAM flag, only used by game logic -OAMFLAG_VFLIPPED EQU %00100000 ; OAM flag flips the sprite vertically. Used for making left facing sprites face right and to alternate between left and right foot animation when walking up or down - -MONSTER_NAME EQU 1 -MOVE_NAME EQU 2 -; ???_NAME EQU 3 -ITEM_NAME EQU 4 -PLAYEROT_NAME EQU 5 -ENEMYOT_NAME EQU 6 -TRAINER_NAME EQU 7 - - -; hardware registers, from the pandocs http://nocash.emubase.de/pandocs.htm -rJOYP EQU $FF00 -rDIV EQU $FF04 -rLCDC EQU $FF40 -rSCY EQU $FF42 -rSCX EQU $FF43 -rBGP EQU $FF47 -rOBP0 EQU $FF48 -rOBP1 EQU $FF49 -rWY EQU $FF4A -rWX EQU $FF4B -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_HFLIP EQU %00100000 ; horizontal flip -OAM_VFLIP EQU %01000000 ; vertical flip - -; list menu ID's -PCPOKEMONLISTMENU EQU $00 ; PC pokemon withdraw/deposit lists -MOVESLISTMENU EQU $01 ; XXX where is this used? -PRICEDITEMLISTMENU EQU $02 ; Pokemart buy menu / Pokemart buy/sell choose quantity menu -ITEMLISTMENU EQU $03 ; Start menu Item menu / Pokemart sell menu -SPECIALLISTMENU EQU $04 ; list of special "items" e.g. floor list in elevators / list of badges - +INCLUDE "constants/hardware_constants.asm" +INCLUDE "constants/oam_constants.asm" INCLUDE "constants/pokemon_constants.asm" -INCLUDE "constants/trainer_constants.asm" INCLUDE "constants/pokedex_constants.asm" +INCLUDE "constants/trainer_constants.asm" INCLUDE "constants/item_constants.asm" - +INCLUDE "constants/type_constants.asm" INCLUDE "constants/move_constants.asm" INCLUDE "constants/move_effect_constants.asm" - -; fixed damage constants -SONICBOOM_DAMAGE EQU 20 -DRAGON_RAGE_DAMAGE EQU 40 - +INCLUDE "constants/status_constants.asm" +INCLUDE "constants/sprite_constants.asm" INCLUDE "constants/palette_constants.asm" +INCLUDE "constants/evolution_constants.asm" +INCLUDE "constants/list_constants.asm" INCLUDE "constants/map_constants.asm" INCLUDE "constants/map_dimensions.asm" - -; Evolution types -EV_LEVEL EQU 1 -EV_ITEM EQU 2 -EV_TRADE EQU 3 - -; Elemental types -NORMAL EQU $00 -FIGHTING EQU $01 -FLYING EQU $02 -POISON EQU $03 -GROUND EQU $04 -ROCK EQU $05 -BUG EQU $07 -GHOST EQU $08 -FIRE EQU $14 -WATER EQU $15 -GRASS EQU $16 -ELECTRIC EQU $17 -PSYCHIC EQU $18 -ICE EQU $19 -DRAGON EQU $1A - -EAST EQU 1 -WEST EQU 2 -SOUTH EQU 4 -NORTH EQU 8 - -; different kinds of people events -ITEM EQU $80 -TRAINER EQU $40 - -; status ailments (masks) -SLP EQU %00000111 -PSN EQU %00001000 -BRN EQU %00010000 -FRZ EQU %00100000 -PAR EQU %01000000 - -; pokemon's overworld sprites -SPRITE_MON EQU $0 -SPRITE_BALL_M EQU $1 -SPRITE_HELIX EQU $2 -SPRITE_FAIRY EQU $3 -SPRITE_BIRD_M EQU $4 -SPRITE_WATER EQU $5 -SPRITE_BUG EQU $6 -SPRITE_GRASS EQU $7 -SPRITE_SNAKE EQU $8 -SPRITE_QUADRUPED EQU $9 - -; overworld sprites -SPRITE_RED EQU $01 -SPRITE_BLUE EQU $02 -SPRITE_OAK EQU $03 -SPRITE_BUG_CATCHER EQU $04 -SPRITE_SLOWBRO EQU $05 -SPRITE_LASS EQU $06 -SPRITE_BLACK_HAIR_BOY_1 EQU $07 -SPRITE_LITTLE_GIRL EQU $08 -SPRITE_BIRD EQU $09 -SPRITE_FAT_BALD_GUY EQU $0a -SPRITE_GAMBLER EQU $0b -SPRITE_BLACK_HAIR_BOY_2 EQU $0c -SPRITE_GIRL EQU $0d -SPRITE_HIKER EQU $0e -SPRITE_FOULARD_WOMAN EQU $0f -SPRITE_GENTLEMAN EQU $10 -SPRITE_DAISY EQU $11 -SPRITE_BIKER EQU $12 -SPRITE_SAILOR EQU $13 -SPRITE_COOK EQU $14 -SPRITE_BIKE_SHOP_GUY EQU $15 -SPRITE_MR_FUJI EQU $16 -SPRITE_GIOVANNI EQU $17 -SPRITE_ROCKET EQU $18 -SPRITE_MEDIUM EQU $19 -SPRITE_WAITER EQU $1a -SPRITE_ERIKA EQU $1b -SPRITE_MOM_GEISHA EQU $1c -SPRITE_BRUNETTE_GIRL EQU $1d -SPRITE_LANCE EQU $1e -SPRITE_OAK_SCIENTIST_AIDE EQU $1f -SPRITE_OAK_AIDE EQU $20 -SPRITE_ROCKER EQU $21 -SPRITE_SWIMMER EQU $22 -SPRITE_WHITE_PLAYER EQU $23 -SPRITE_GYM_HELPER EQU $24 -SPRITE_OLD_PERSON EQU $25 -SPRITE_MART_GUY EQU $26 -SPRITE_FISHER EQU $27 -SPRITE_OLD_MEDIUM_WOMAN EQU $28 -SPRITE_NURSE EQU $29 -SPRITE_CABLE_CLUB_WOMAN EQU $2a -SPRITE_MR_MASTERBALL EQU $2b -SPRITE_LAPRAS_GIVER EQU $2c -SPRITE_WARDEN EQU $2d -SPRITE_SS_CAPTAIN EQU $2e -SPRITE_FISHER2 EQU $2f -SPRITE_BLACKBELT EQU $30 -SPRITE_GUARD EQU $31 -;SPRITE_COP_GUARD EQU $32 -SPRITE_MOM EQU $33 -SPRITE_BALDING_GUY EQU $34 -SPRITE_YOUNG_BOY EQU $35 -SPRITE_GAMEBOY_KID EQU $36 -SPRITE_GAMEBOY_KID_COPY EQU $37 -SPRITE_CLEFAIRY EQU $38 -SPRITE_AGATHA EQU $39 -SPRITE_BRUNO EQU $3a -SPRITE_LORELEI EQU $3b -SPRITE_SEEL EQU $3c -SPRITE_BALL EQU $3d -SPRITE_OMANYTE EQU $3e -SPRITE_BOULDER EQU $3f -SPRITE_PAPER_SHEET EQU $40 -SPRITE_BOOK_MAP_DEX EQU $41 -SPRITE_CLIPBOARD EQU $42 -SPRITE_SNORLAX EQU $43 -SPRITE_OLD_AMBER_COPY EQU $44 -SPRITE_OLD_AMBER EQU $45 -SPRITE_LYING_OLD_MAN_UNUSED_1 EQU $46 -SPRITE_LYING_OLD_MAN_UNUSED_2 EQU $47 -SPRITE_LYING_OLD_MAN EQU $48 - +INCLUDE "constants/connection_constants.asm" \ No newline at end of file diff --git a/constants/connection_constants.asm b/constants/connection_constants.asm new file mode 100755 index 00000000..389ba867 --- /dev/null +++ b/constants/connection_constants.asm @@ -0,0 +1,5 @@ +; connection directions +EAST EQU 1 +WEST EQU 2 +SOUTH EQU 4 +NORTH EQU 8 \ No newline at end of file diff --git a/constants/evolution_constants.asm b/constants/evolution_constants.asm new file mode 100755 index 00000000..96b063cc --- /dev/null +++ b/constants/evolution_constants.asm @@ -0,0 +1,4 @@ +; Evolution types +EV_LEVEL EQU 1 +EV_ITEM EQU 2 +EV_TRADE EQU 3 \ No newline at end of file diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm new file mode 100755 index 00000000..de9d2311 --- /dev/null +++ b/constants/hardware_constants.asm @@ -0,0 +1,21 @@ +; hardware registers, from the pandocs http://nocash.emubase.de/pandocs.htm +rJOYP EQU $FF00 +rDIV EQU $FF04 +rLCDC EQU $FF40 +rSCY EQU $FF42 +rSCX EQU $FF43 +rBGP EQU $FF47 +rOBP0 EQU $FF48 +rOBP1 EQU $FF49 +rWY EQU $FF4A +rWX EQU $FF4B +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 \ No newline at end of file diff --git a/constants/item_constants.asm b/constants/item_constants.asm index e67f0d79..224e0b78 100644 --- a/constants/item_constants.asm +++ b/constants/item_constants.asm @@ -136,5 +136,4 @@ TM_46 EQU $F6 TM_47 EQU $F7 TM_48 EQU $F8 TM_49 EQU $F9 -TM_50 EQU $FA - +TM_50 EQU $FA \ No newline at end of file diff --git a/constants/list_constants.asm b/constants/list_constants.asm new file mode 100755 index 00000000..1299f7d8 --- /dev/null +++ b/constants/list_constants.asm @@ -0,0 +1,14 @@ +; list menu ID's +PCPOKEMONLISTMENU EQU $00 ; PC pokemon withdraw/deposit lists +MOVESLISTMENU EQU $01 ; XXX where is this used? +PRICEDITEMLISTMENU EQU $02 ; Pokemart buy menu / Pokemart buy/sell choose quantity menu +ITEMLISTMENU EQU $03 ; Start menu Item menu / Pokemart sell menu +SPECIALLISTMENU EQU $04 ; list of special "items" e.g. floor list in elevators / list of badges + +MONSTER_NAME EQU 1 +MOVE_NAME EQU 2 +; ???_NAME EQU 3 +ITEM_NAME EQU 4 +PLAYEROT_NAME EQU 5 +ENEMYOT_NAME EQU 6 +TRAINER_NAME EQU 7 \ No newline at end of file diff --git a/constants/map_constants.asm b/constants/map_constants.asm index ec1c0822..b1d36a4d 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -246,5 +246,4 @@ TRADE_CENTER EQU $F0 LORELEIS_ROOM EQU $F5 BRUNOS_ROOM EQU $F6 AGATHAS_ROOM EQU $F7 -BEACH_HOUSE EQU $F8 ; Yellow only - +BEACH_HOUSE EQU $F8 ; Yellow only \ No newline at end of file diff --git a/constants/map_dimensions.asm b/constants/map_dimensions.asm index 30e393e4..8bb41a25 100644 --- a/constants/map_dimensions.asm +++ b/constants/map_dimensions.asm @@ -886,5 +886,4 @@ BRUNOS_ROOM_WIDTH EQU $05 ; Agatha_h map_id=247 AGATHAS_ROOM_HEIGHT EQU $06 -AGATHAS_ROOM_WIDTH EQU $05 - +AGATHAS_ROOM_WIDTH EQU $05 \ No newline at end of file diff --git a/constants/move_constants.asm b/constants/move_constants.asm index a03f4063..dd287fde 100644 --- a/constants/move_constants.asm +++ b/constants/move_constants.asm @@ -176,5 +176,4 @@ GREATTOSS_ANIM EQU $C5 ; toss Great Ball ULTRATOSS_ANIM EQU $C6 ; toss Ultra Ball or Master Ball HIDEPIC_ANIM EQU $C8 ; monster disappears ROCK_ANIM EQU $C9 ; throw rock -BAIT_ANIM EQU $CA ; throw bait - +BAIT_ANIM EQU $CA ; throw bait \ No newline at end of file diff --git a/constants/move_effect_constants.asm b/constants/move_effect_constants.asm index 2e4c7a49..088482dc 100644 --- a/constants/move_effect_constants.asm +++ b/constants/move_effect_constants.asm @@ -71,3 +71,6 @@ LEECH_SEED_EFFECT EQU $54 SPLASH_EFFECT EQU $55 DISABLE_EFFECT EQU $56 +; fixed damage constants +SONICBOOM_DAMAGE EQU 20 +DRAGON_RAGE_DAMAGE EQU 40 \ No newline at end of file diff --git a/constants/oam_constants.asm b/constants/oam_constants.asm new file mode 100755 index 00000000..a707e16d --- /dev/null +++ b/constants/oam_constants.asm @@ -0,0 +1,9 @@ +; OAM flags used by this game +OAMFLAG_ENDOFDATA EQU %00000001 ; pseudo OAM flag, only used by game logic +OAMFLAG_CANBEMASKED EQU %00000010 ; pseudo OAM flag, only used by game logic +OAMFLAG_VFLIPPED EQU %00100000 ; OAM flag flips the sprite vertically. +; Used for making left facing sprites face right and to alternate between left and right foot animation when walking up or down + +; OAM attribute flags +OAM_HFLIP EQU %00100000 ; horizontal flip +OAM_VFLIP EQU %01000000 ; vertical flip \ No newline at end of file diff --git a/constants/palette_constants.asm b/constants/palette_constants.asm index 99cde354..56e48080 100644 --- a/constants/palette_constants.asm +++ b/constants/palette_constants.asm @@ -35,5 +35,4 @@ PAL_YELLOWBAR EQU $20 PAL_REDBAR EQU $21 PAL_BADGE EQU $22 PAL_CAVE EQU $23 -; XXX - +; XXX \ No newline at end of file diff --git a/constants/pokedex_constants.asm b/constants/pokedex_constants.asm index bc95f8bd..c9ba6ae8 100644 --- a/constants/pokedex_constants.asm +++ b/constants/pokedex_constants.asm @@ -148,5 +148,4 @@ DEX_DRATINI EQU 147 DEX_DRAGONAIR EQU 148 DEX_DRAGONITE EQU 149 DEX_MEWTWO EQU 150 -DEX_MEW EQU 151 - +DEX_MEW EQU 151 \ No newline at end of file diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm index ed4681e1..af74e8f4 100644 --- a/constants/pokemon_constants.asm +++ b/constants/pokemon_constants.asm @@ -151,5 +151,4 @@ GLOOM EQU $BA VILEPLUME EQU $BB BELLSPROUT EQU $BC WEEPINBELL EQU $BD -VICTREEBEL EQU $BE - +VICTREEBEL EQU $BE \ No newline at end of file diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm new file mode 100755 index 00000000..cc791a57 --- /dev/null +++ b/constants/sprite_constants.asm @@ -0,0 +1,89 @@ +; pokemon's overworld sprites +SPRITE_MON EQU $0 +SPRITE_BALL_M EQU $1 +SPRITE_HELIX EQU $2 +SPRITE_FAIRY EQU $3 +SPRITE_BIRD_M EQU $4 +SPRITE_WATER EQU $5 +SPRITE_BUG EQU $6 +SPRITE_GRASS EQU $7 +SPRITE_SNAKE EQU $8 +SPRITE_QUADRUPED EQU $9 + +; overworld sprites +SPRITE_RED EQU $01 +SPRITE_BLUE EQU $02 +SPRITE_OAK EQU $03 +SPRITE_BUG_CATCHER EQU $04 +SPRITE_SLOWBRO EQU $05 +SPRITE_LASS EQU $06 +SPRITE_BLACK_HAIR_BOY_1 EQU $07 +SPRITE_LITTLE_GIRL EQU $08 +SPRITE_BIRD EQU $09 +SPRITE_FAT_BALD_GUY EQU $0a +SPRITE_GAMBLER EQU $0b +SPRITE_BLACK_HAIR_BOY_2 EQU $0c +SPRITE_GIRL EQU $0d +SPRITE_HIKER EQU $0e +SPRITE_FOULARD_WOMAN EQU $0f +SPRITE_GENTLEMAN EQU $10 +SPRITE_DAISY EQU $11 +SPRITE_BIKER EQU $12 +SPRITE_SAILOR EQU $13 +SPRITE_COOK EQU $14 +SPRITE_BIKE_SHOP_GUY EQU $15 +SPRITE_MR_FUJI EQU $16 +SPRITE_GIOVANNI EQU $17 +SPRITE_ROCKET EQU $18 +SPRITE_MEDIUM EQU $19 +SPRITE_WAITER EQU $1a +SPRITE_ERIKA EQU $1b +SPRITE_MOM_GEISHA EQU $1c +SPRITE_BRUNETTE_GIRL EQU $1d +SPRITE_LANCE EQU $1e +SPRITE_OAK_SCIENTIST_AIDE EQU $1f +SPRITE_OAK_AIDE EQU $20 +SPRITE_ROCKER EQU $21 +SPRITE_SWIMMER EQU $22 +SPRITE_WHITE_PLAYER EQU $23 +SPRITE_GYM_HELPER EQU $24 +SPRITE_OLD_PERSON EQU $25 +SPRITE_MART_GUY EQU $26 +SPRITE_FISHER EQU $27 +SPRITE_OLD_MEDIUM_WOMAN EQU $28 +SPRITE_NURSE EQU $29 +SPRITE_CABLE_CLUB_WOMAN EQU $2a +SPRITE_MR_MASTERBALL EQU $2b +SPRITE_LAPRAS_GIVER EQU $2c +SPRITE_WARDEN EQU $2d +SPRITE_SS_CAPTAIN EQU $2e +SPRITE_FISHER2 EQU $2f +SPRITE_BLACKBELT EQU $30 +SPRITE_GUARD EQU $31 +;SPRITE_COP_GUARD EQU $32 +SPRITE_MOM EQU $33 +SPRITE_BALDING_GUY EQU $34 +SPRITE_YOUNG_BOY EQU $35 +SPRITE_GAMEBOY_KID EQU $36 +SPRITE_GAMEBOY_KID_COPY EQU $37 +SPRITE_CLEFAIRY EQU $38 +SPRITE_AGATHA EQU $39 +SPRITE_BRUNO EQU $3a +SPRITE_LORELEI EQU $3b +SPRITE_SEEL EQU $3c +SPRITE_BALL EQU $3d +SPRITE_OMANYTE EQU $3e +SPRITE_BOULDER EQU $3f +SPRITE_PAPER_SHEET EQU $40 +SPRITE_BOOK_MAP_DEX EQU $41 +SPRITE_CLIPBOARD EQU $42 +SPRITE_SNORLAX EQU $43 +SPRITE_OLD_AMBER_COPY EQU $44 +SPRITE_OLD_AMBER EQU $45 +SPRITE_LYING_OLD_MAN_UNUSED_1 EQU $46 +SPRITE_LYING_OLD_MAN_UNUSED_2 EQU $47 +SPRITE_LYING_OLD_MAN EQU $48 + +; different kinds of people events +ITEM EQU $80 +TRAINER EQU $40 \ No newline at end of file diff --git a/constants/status_constants.asm b/constants/status_constants.asm new file mode 100755 index 00000000..8dd99e1d --- /dev/null +++ b/constants/status_constants.asm @@ -0,0 +1,6 @@ +; status ailments (masks) +SLP EQU %00000111 +PSN EQU %00001000 +BRN EQU %00010000 +FRZ EQU %00100000 +PAR EQU %01000000 \ No newline at end of file diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm index f98352f9..37a51376 100644 --- a/constants/trainer_constants.asm +++ b/constants/trainer_constants.asm @@ -45,4 +45,4 @@ SONY3 EQU $2B LORELEI EQU $2C CHANNELER EQU $2D AGATHA EQU $2E -LANCE EQU $2F +LANCE EQU $2F \ No newline at end of file diff --git a/constants/type_constants.asm b/constants/type_constants.asm new file mode 100755 index 00000000..7ded18c3 --- /dev/null +++ b/constants/type_constants.asm @@ -0,0 +1,16 @@ +; Elemental types +NORMAL EQU $00 +FIGHTING EQU $01 +FLYING EQU $02 +POISON EQU $03 +GROUND EQU $04 +ROCK EQU $05 +BUG EQU $07 +GHOST EQU $08 +FIRE EQU $14 +WATER EQU $15 +GRASS EQU $16 +ELECTRIC EQU $17 +PSYCHIC EQU $18 +ICE EQU $19 +DRAGON EQU $1A \ No newline at end of file -- cgit v1.3.1-sl0p