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 --- wram.asm | 1204 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1201 insertions(+), 3 deletions(-) (limited to 'wram.asm') diff --git a/wram.asm b/wram.asm index ead23b85..8f4bbb5e 100644 --- a/wram.asm +++ b/wram.asm @@ -1,4 +1,1202 @@ -SECTION "pokedex",WRAMX[$d2f7],BANK[1] -WPokedexOwned: + + +SECTION "WRAM Bank 0", WRAM0 + + +SECTION "Sprite State Data", WRAM0[$c100] + +wSpriteStateData1: ; c100 +; data for all sprites on the current map +; holds info for 16 sprites with $10 bytes each +; player sprite is always sprite 0 +; C1x0: picture ID (fixed, loaded at map init) +; C1x1: movement status (0: uninitialized, 1: ready, 2: delayed, 3: moving) +; C1x2: sprite image index (changed on update, $ff if off screen, includes facing direction, progress in walking animation and a sprite-specific offset) +; C1x3: Y screen position delta (-1,0 or 1; added to c1x4 on each walking animation update) +; C1x4: Y screen position (in pixels, always 4 pixels above grid which makes sprites appear to be in the center of a tile) +; C1x5: X screen position delta (-1,0 or 1; added to c1x6 on each walking animation update) +; C1x6: X screen position (in pixels, snaps to grid if not currently walking) +; C1x7: intra-animation-frame counter (counting upwards to 4 until c1x8 is incremented) +; C1x8: animation frame counter (increased every 4 updates, hold four states (totalling to 16 walking frames) +; C1x9: facing direction (0: down, 4: up, 8: left, $c: right) +; C1xA +; C1xB +; C1xC +; C1xD +; C1xE +; C1xF + ds $10 * $10 + +wSpriteStateData2: ; c200 +; more data for all sprites on the current map +; holds info for 16 sprites with $10 bytes each +; player sprite is always sprite 0 +; C2x0: walk animation counter (counting from $10 backwards when moving) +; C2x1: +; C2x2: Y displacement (initialized at 8, supposed to keep moving sprites from moving too far, but bugged) +; C2x3: X displacement (initialized at 8, supposed to keep moving sprites from moving too far, but bugged) +; C2x4: Y position (in 2x2 tile grid steps, topmost 2x2 tile has value 4) +; C2x5: X position (in 2x2 tile grid steps, leftmost 2x2 tile has value 4) +; C2x6: movement byte 1 (determines whether a sprite can move, $ff:not moving, $fe:random movements, others unknown) +; C2x7: (?) (set to $80 when in grass, else $0; may be used to draw grass above the sprite) +; C2x8: delay until next movement (counted downwards, status (c1x1) is set to ready if reached 0) +; C2x9 +; C2xA +; C2xB +; C2xC +; C2xD +; C2xE: sprite image base offset (in video ram, player always has value 1, used to compute c1x2) +; C2xF + ds $10 * $10 + + +wOAMBuffer: ; c300 +; buffer for OAM data. Copied to OAM by DMA + ds 4 * 40 + + +SECTION "Tile Map", WRAM0[$c3a0] + +wTileMap: ; c3a0 +; buffer for tiles that are visible on screen (20 columns by 18 rows) + ds 20 * 18 + +wTileMapBackup: ; c508 +; buffer for temporarily saving and restoring current screen's tiles +; (e.g. if menus are drawn on top) + ds 20 * 18 + +; c670 + + +SECTION "Screen Edge Tiles", WRAM0[$cbfc] + +wScreenEdgeTiles: ; cbfc +; the tiles of the row or column to be redrawn by RedrawExposedScreenEdge + ds 20 * 2 + +; coordinates of the position of the cursor for the top menu item (id 0) +wTopMenuItemY: ; cc24 + ds 1 +wTopMenuItemX: ; cc25 + ds 1 + +wCurrentMenuItem: ; cc26 +; the id of the currently selected menu item +; the top item has id 0, the one below that has id 1, etc. +; note that the "top item" means the top item currently visible on the screen +; add this value to [wListScrollOffset] to get the item's position within the list + ds 1 + +wTileBehindCursor: ; cc27 +; the tile that was behind the menu cursor's current location + ds 1 + +wMaxMenuItem: ; cc28 +; id of the bottom menu item + ds 1 + +wMenuWatchedKeys: ; cc29 +; bit mask of keys that the menu will respond to + ds 1 + +wLastMenuItem: ; cc2a +; id of previously selected menu item + ds 1 + +; cc2b + + ds 3 + +wPlayerMoveListIndex: ; cc2e + ds 1 + +wPlayerMonNumber: ; cc2f + ds 1 + +wMenuCursorLocation: ; cc30 +; the address of the menu cursor's current location within wTileMap + ds 2 + + ds 2 + +wMenuJoypadPollCount: ; cc34 +; how many times should HandleMenuInput poll the joypad state before it returns? + ds 1 + + ds 1 + +wListScrollOffset: ; cc36 +; offset of the current top menu item from the beginning of the list +; keeps track of what section of the list is on screen + ds 1 + + ds 19 + +wMenuWrappingEnabled: ; cc4a +; set to 1 if you can go from the bottom to the top or top to bottom of a menu +; set to 0 if you can't go past the top or bottom of the menu + ds 1 + + ds 10 + +wTrainerHeaderFlagBit: ; cc55 + ds 1 + +; cc56 + + +SECTION "RLE", WRAM0[$ccd2] +wRLEByteCount: ; ccd2 + ds 1 + + ds 4 + +; current HP of player and enemy substitutes +wPlayerSubstituteHP: ; ccd7 + ds 1 +wEnemySubstituteHP: ; ccd8 + ds 1 + + ds 2 + +wMoveMenuType: ; ccdb +; 0=regular, 1=mimic, 2=above message box (relearn, heal pp..) + ds 1 + +wPlayerSelectedMove: ; ccdc + ds 1 +wEnemySelectedMove: ; ccdd + ds 1 + + ds 1 + +wAICount: ; ccdf +; number of times remaining that AI action can occur + ds 1 + + ds 2 + +wEnemyMoveListIndex: ; cce2 + ds 1 + +; cce3 + + +SECTION "Stat Modifiers", WRAM0[$cd1a] + +; stat modifiers for the player's current pokemon +; value can range from 1 - 13 ($1 to $D) +; 7 is normal + +wPlayerMonStatMods: +wPlayerMonAttackMod: ; cd1a + ds 1 +wPlayerMonDefenseMod: ; cd1b + ds 1 +wPlayerMonSpeedMod: ; cd1c + ds 1 +wPlayerMonSpecialMod: ; cd1d + ds 1 +wPlayerMonAccuracyMod: ; cd1e + ds 1 +wPlayerMonEvasionMod: ; cd1f + ds 1 + + ds 13 + +wEngagedTrainerClass: ; cd2d + ds 1 +wEngagedTrainerSet: ; cd2e +; ds 1 + +; stat modifiers for the enemy's current pokemon +; value can range from 1 - 13 ($1 to $D) +; 7 is normal + +wEnemyMonStatMods: +wEnemyMonAttackMod: ; cd2e + ds 1 +wEnemyMonDefenseMod: ; cd2f + ds 1 +wEnemyMonSpeedMod: ; cd30 + ds 1 +wEnemyMonSpecialMod: ; cd31 + ds 1 +wEnemyMonAccuracyMod: ; cd32 + ds 1 +wEnemyMonEvasionMod: ; cd33 + ds 1 + + ds 9 + +wWhichTrade: ; cd3d +; which entry from TradeMons to select +; ds 1 + +wTrainerSpriteOffset: ; cd3d + ds 1 +wTrainerEngageDistance: ; cd3e + ds 1 +wTrainerFacingDirection: ; cd3f + ds 1 +wTrainerScreenY: ; cd40 + ds 1 +wTrainerScreenX: ; cd41 + ds 1 + + ds 30 + +wFlags_0xcd60: ; cd60 +; bit 0: is player engaged by trainer (to avoid being engaged by multiple trainers simultaniously) + ds 1 + + ds 10 + +wJoypadForbiddenButtonsMask: ; cd6b +; bit 1 means button presses will be ignored for that button + ds 1 + + ds 21 + +wTileMapBackup2: ; cd81 +; second buffer for temporarily saving and restoring current screen's tiles (e.g. if menus are drawn on top) + ds 20 * 18 + +wBuffer: ; cee9 +; used for temporary things + +wHPBarMaxHP: ; cee9 + ds 2 +wHPBarOldHP: ; ceeb + ds 2 +wHPBarNewHP: ; ceed + ds 2 +wHPBarDelta: ; ceef + ds 1 + + ds 13 + +wHPBarHPDifference: ; cefd + ds 1 + + ds 9 + +wAnimSoundID: ; cf07 +; sound ID during battle animations + ds 1 + + ds 12 + +wCurSpriteMovement2: ; cf14 +; movement byte 2 of current sprite + ds 1 + + ds 74 + +wGymCityName: ; cf5f +wStringBuffer1: ; cf5f + ds 16 + 1 +wGymLeaderName: ; cf70 +wStringBuffer2: ; cf70 + ds 16 + 1 +wStringBuffer3: ; cf81 + ds 16 + 1 + +wWhichPokemon: ; cf92 +; which pokemon you selected + ds 1 + + ds 1 + +wListMenuID: ; cf94 +; ID used by DisplayListMenuID + ds 1 + + + +W_WALKCOUNTER EQU $CFC5 ; walk animation counter + +W_CURCHANNELPOINTER EQU $CFC7 ; (the current music channel pointer - $4000) / 3 + +W_ENEMYMOVENUM EQU $CFCC +W_ENEMYMOVEEFFECT EQU $CFCD +W_ENEMYMOVEPOWER EQU $CFCE +W_ENEMYMOVETYPE EQU $CFCF +W_ENEMYMOVEACCURACY EQU $CFD0 +W_ENEMYMOVEMAXPP EQU $CFD1 + +W_PLAYERMOVENUM EQU $CFD2 +W_PLAYERMOVEEFFECT EQU $CFD3 +W_PLAYERMOVEPOWER EQU $CFD4 +W_PLAYERMOVETYPE EQU $CFD5 +W_PLAYERMOVEACCURACY EQU $CFD6 +W_PLAYERMOVEMAXPP EQU $CFD7 + +W_ENEMYMONID EQU $CFD8 + +W_ENEMYMONNAME EQU $CFDA + +W_ENEMYMONCURHP EQU $CFE6 ; active opponent's hp (16 bits) +W_ENEMYMONNUMBER EQU $CFE8 ; active opponent's position in team (0 to 5) +W_ENEMYMONSTATUS EQU $CFE9 ; active opponent's status condition + ; bit 0 slp + ; bit 1 slp + ; bit 2 slp + ; bit 3 psn + ; bit 4 brn + ; bit 5 frz + ; bit 6 par + ; unused? (XXX confirm) +W_ENEMYMONTYPES EQU $CFEA +W_ENEMYMONTYPE1 EQU $CFEA +W_ENEMYMONTYPE2 EQU $CFEB +W_ENEMYMONMOVES EQU $CFED +W_ENEMYMONATKDEFIV EQU $CFF1 +W_ENEMYMONSPDSPCIV EQU $CFF2 +W_ENEMYMONLEVEL EQU $CFF3 +W_ENEMYMONMAXHP EQU $CFF4 ; (16 bits) +W_ENEMYMONATTACK EQU $CFF6 +W_ENEMYMONDEFENSE EQU $CFF8 +W_ENEMYMONSPEED EQU $CFFA +W_ENEMYMONSPECIAL EQU $CFFC +W_ENEMYMONPP EQU $CFFE + + +SECTION "WRAM Bank 1", WRAMX, BANK[1] + +W_PLAYERMONNAME EQU $D009 +W_PLAYERMONID EQU $D014 +W_PLAYERMONCURHP EQU $D015 ; active opponent's hp (16 bits) +W_PLAYERMONSTATUS EQU $D018 ; the status of the player’s current monster + ; bit 0 slp + ; bit 1 slp + ; bit 2 slp + ; bit 3 psn + ; bit 4 brn + ; bit 5 frz + ; bit 6 par + ; unused? (XXX confirm) +W_PLAYERMONTYPES EQU $D019 +W_PLAYERMONTYPE1 EQU $D019 +W_PLAYERMONTYPE2 EQU $D01A +W_PLAYERMONMOVES EQU $D01C +W_PLAYERMONIVS EQU $D020 ; 4x 4 bit: atk, def, spd, spc +W_PLAYERMONLEVEL EQU $D022 +W_PLAYERMONMAXHP EQU $D023 ; (16 bits) +W_PLAYERMONATK EQU $D025 +W_PLAYERMONDEF EQU $D027 +W_PLAYERMONSPEED EQU $D029 +W_PLAYERMONSPECIAL EQU $D02B +W_PLAYERMONPP EQU $D02D + +W_TRAINERCLASS EQU $D031 + +W_ISINBATTLE EQU $D057 ; no battle, this is 0 + ; wild battle, this is 1 + ; trainer battle, this is 2 + +W_PLAYERMONSALIVEFLAGS EQU $D058 ; 6 bit array, 1 if player mon is alive + +W_CUROPPONENT EQU $D059 ; in a wild battle, this is the species of pokemon + ; in a trainer battle, this is the trainer class + $C8 + +W_BATTLETYPE EQU $D05A ; in normal battle, this is 0 + ; in old man battle, this is 1 + ; in safari battle, this is 2 + +W_LONEATTACKNO EQU $D05C ; which entry in LoneAttacks to use +W_GYMLEADERNO EQU $D05C ; it's actually the same thing as ^ +W_TRAINERNO EQU $D05D ; which instance of [youngster, lass, etc] is this? + +W_MOVEMISSED EQU $D05F + +; not entirely sure that all these bits are 100% correct +; Battle Status Byte 1 +; bit 0 - bide +; bit 1 - thrash / petal dance +; bit 2 - attacking multiple times (e.g. double kick) +; bit 3 - flinch +; bit 4 - charging up for attack +; bit 5 - using multi-turn move (e.g. wrap) +; bit 6 - invulnerable to normal attack (using fly/dig) +; bit 7 - confusion + +; Battle Status Byte 2 +; bit 0 - X Accuracy effect +; bit 1 - protected by "mist" +; bit 2 - focus energy effect +; bit 4 - has a substitute +; bit 5 - need to recharge +; bit 6 - rage +; bit 7 - leech seeded + +; Battle Status Byte 3 +; bit 0 - toxic +; bit 1 - light screen +; bit 2 - reflect +; bit 3 - tranformed + +W_PLAYERBATTSTATUS1 EQU $D062 +W_PLAYERBATTSTATUS2 EQU $D063 +W_PLAYERBATTSTATUS3 EQU $D064 + +W_ENEMYBATTSTATUS1 EQU $D067 +W_ENEMYBATTSTATUS2 EQU $D068 +W_ENEMYBATTSTATUS3 EQU $D069 + +W_PLAYERTOXICCOUNTER EQU $D06C +W_PLAYERDISABLEDMOVE EQU $D06D + +W_ENEMYTOXICCOUNTER EQU $D071 +W_ENEMYDISABLEDMOVE EQU $D072 + +W_NUMHITS EQU $D074 ; number of hits in attacks like Doubleslap, etc. + +W_ANIMATIONID EQU $D07C ; ID number of the current battle animation + +; base coordinates of frame block +W_BASECOORDX EQU $D081 +W_BASECOORDY EQU $D082 + +W_FBTILECOUNTER EQU $D084 ; counts how many tiles of the current frame block have been drawn + +W_SUBANIMFRAMEDELAY EQU $D086 ; duration of each frame of the current subanimation in terms of screen refreshes +W_SUBANIMCOUNTER EQU $D087 ; counts the number of subentries left in the current subanimation + +W_NUMFBTILES EQU $D089 ; number of tiles in current battle animation frame block + +W_SUBANIMTRANSFORM EQU $D08B ; controls what transformations are applied to the subanimation +; 01: flip horizontally and vertically +; 02: flip horizontally and translate downwards 40 pixels +; 03: translate base coordinates of frame blocks, but don't change their internal coordinates or flip their tiles +; 04: reverse the subanimation + +W_PBSTOREDREGISTERH EQU $D08C +W_PBSTOREDREGISTERL EQU $D08D +W_PBSTOREDREGISTERD EQU $D08E +W_PBSTOREDREGISTERE EQU $D08F +W_PBSTOREDROMBANK EQU $D092 + +W_SUBANIMADDRPTR EQU $D094 ; the address _of the address_ of the current subanimation entry (2 bytes) + +W_SUBANIMSUBENTRYADDR EQU $D096 ; the address of the current subentry of the current subanimation (2 bytes) + +W_FBDESTADDR EQU $D09C ; current destination address in OAM for frame blocks (2 bytes, big endian) + +W_FBMODE EQU $D09E ; controls how the frame blocks are put together to form frames +; specifically, after finishing drawing the frame block, the frame block's mode determines what happens +; 00: clean OAM buffer and delay +; 02: move onto the next frame block with no delay and no cleaning OAM buffer +; 03: delay, but don't clean OAM buffer +; 04: delay, without cleaning OAM buffer, and do not advance [W_FBDESTADDR], so that the next frame block will overwrite this one + +; sprite data is written column by column, each byte contains 8 columns (one for ech bit) +; for 2bpp sprites, pairs of two consecutive bytes (i.e. pairs of consecutive rows of sprite data) +; contain the upper and lower bit of each of the 8 pixels, respectively +SPRITEBUFFERSIZE EQU $188 ; 7 * 7 (tiles) * 8 (bytes per tile) +S_SPRITEBUFFER0 EQU $A000 + 0 * SPRITEBUFFERSIZE +S_SPRITEBUFFER1 EQU $A000 + 1 * SPRITEBUFFERSIZE +S_SPRITEBUFFER2 EQU $A000 + 2 * SPRITEBUFFERSIZE + +W_SPRITECURPOSX EQU $D0A1 +W_SPRITECURPOSY EQU $D0A2 +W_SPRITEWITDH EQU $D0A3 +W_SPRITEHEIGHT EQU $D0A4 +W_SPRITEINPUTCURBYTE EQU $D0A5 ; current input byte +W_SPRITEINPUTBITCOUNTER EQU $D0A6 ; bit offset of last read input bit + +; determines where in the output byte the two bits are placed. Each byte contains four columns (2bpp data) +; 3 -> XX000000 1st column +; 2 -> 00XX0000 2nd column +; 1 -> 0000XX00 3rd column +; 0 -> 000000XX 4th column +W_SPRITEOUTPUTBITOFFSET EQU $D0A7 + +; bit 0 determines used buffer (0 -> $a188, 1 -> $a310) +; bit 1 loading last sprite chunk? (there are at most 2 chunks per load operation) +W_SPRITELOADFLAGS EQU $D0A8 +W_SPRITEUNPACKMODE EQU $D0A9 +W_SPRITEFLIPPED EQU $D0AA + +W_SPRITEINPUTPTR EQU $D0AB ; pointer to next input byte +W_SPRITEOUTPUTPTR EQU $D0AD ; pointer to current output byte +W_SPRITEOUTPUTPTRCACHED EQU $D0AF ; used to revert pointer for different bit offsets +W_SPRITEDECODETABLE0PTR EQU $D0B1 ; pointer to differential decoding table (assuming initial value 0) +W_SPRITEDECODETABLE1PTR EQU $D0B3 ; pointer to differential decoding table (assuming initial value 1) + + +; List type +; used in $D0B6 +W_LISTTYPE EQU $D0B6 + +W_MONHEADER EQU $d0b8 +W_MONHDEXNUM EQU $d0b8 +W_MONHBASESTATS EQU $d0b9 +;W_MONHBASEHP EQU $d0b9 +;W_MONHBASEATTACK EQU $d0ba +;W_MONHBASEDEFENSE EQU $d0bb +W_MONHBASESPEED EQU $d0bc +;W_MONHBASESPECIAL EQU $d0bd +W_MONHTYPES EQU $d0be +W_MONHTYPE1 EQU $d0be +W_MONHTYPE2 EQU $d0bf +W_MONHCATCHRATE EQU $d0c0 +;W_MONHBASEXP EQU $d0c1 +W_MONHSPRITEDIM EQU $d0c2 +W_MONHFRONTSPRITE EQU $d0c3 +W_MONHBACKSPRITE EQU $d0c5 +W_MONHMOVES EQU $d0c7 +;W_MONHMOVE1 EQU $d0c7 +;W_MONHMOVE2 EQU $d0c8 +;W_MONHMOVE3 EQU $d0c9 +;W_MONHMOVE4 EQU $d0ca +W_MONHGROWTHRATE EQU $d0cb +W_MONHLEARNSET EQU $d0cc ; bit field, 7 bytes +;W_MONHPADDING EQU $d0d7 + + + +W_DAMAGE EQU $D0D7 + + +W_CURENEMYLVL EQU $D127 + +W_ISLINKBATTLE EQU $D12B + +W_PRIZE1 EQU $D13D +W_PRIZE2 EQU $D13E +W_PRIZE3 EQU $D13F + +W_PLAYERNAME EQU $D158 ; 11 characters, including null + +W_NUMINPARTY EQU $D163 + +W_PARTYMON1 EQU $D164 +W_PARTYMON2 EQU $D165 +W_PARTYMON3 EQU $D166 +W_PARTYMON4 EQU $D167 +W_PARTYMON5 EQU $D168 +W_PARTYMON6 EQU $D169 +W_PARTYMONEND EQU $D16A + +W_PARTYMON1DATA EQU $D16B +W_PARTYMON1_NUM EQU $D16B +W_PARTYMON1_HP EQU $D16C +W_PARTYMON1_BOXLEVEL EQU $D16E +W_PARTYMON1_STATUS EQU $D16F +W_PARTYMON1_TYPE1 EQU $D170 +W_PARTYMON1_TYPE2 EQU $D171 +W_PARTYMON1_CRATE EQU $D172 +W_PARTYMON1_MOVE1 EQU $D173 +W_PARTYMON1_MOVE2 EQU $D174 +W_PARTYMON1_MOVE3 EQU $D175 +W_PARTYMON1_MOVE4 EQU $D176 +W_PARTYMON1_OTID EQU $D177 +W_PARTYMON1_EXP EQU $D179 +W_PARTYMON1_EVHP EQU $D17C +W_PARTYMON1_EVATTACK EQU $D17E +W_PARTYMON1_EVDEFENSE EQU $D180 +W_PARTYMON1_EVSPEED EQU $D182 +W_PARTYMON1_EVSECIAL EQU $D184 +W_PARTYMON1_IV EQU $D186 +W_PARTYMON1_MOVE1PP EQU $D188 +W_PARTYMON1_MOVE2PP EQU $D189 +W_PARTYMON1_MOVE3PP EQU $D18A +W_PARTYMON1_MOVE4PP EQU $D18B +W_PARTYMON1_LEVEL EQU $D18C +W_PARTYMON1_MAXHP EQU $D18D +W_PARTYMON1_ATACK EQU $D18F +W_PARTYMON1_DEFENSE EQU $D191 +W_PARTYMON1_SPEED EQU $D193 +W_PARTYMON1_SPECIAL EQU $D195 + +W_PARTYMON2DATA EQU $D197 +W_PARTYMON2_NUM EQU $D197 +W_PARTYMON2_HP EQU $D198 +W_PARTYMON2_BOXLEVEL EQU $D19A +W_PARTYMON2_STATUS EQU $D19B +W_PARTYMON2_TYPE1 EQU $D19C +W_PARTYMON2_TYPE2 EQU $D19D +W_PARTYMON2_CRATE EQU $D19E +W_PARTYMON2_MOVE1 EQU $D19F +W_PARTYMON2_MOVE2 EQU $D1A0 +W_PARTYMON2_MOVE3 EQU $D1A1 +W_PARTYMON2_MOVE4 EQU $D1A2 +W_PARTYMON2_OTID EQU $D1A3 +W_PARTYMON2_EXP EQU $D1A5 +W_PARTYMON2_EVHP EQU $D1A8 +W_PARTYMON2_EVATTACK EQU $D1AA +W_PARTYMON2_EVDEFENSE EQU $D1AC +W_PARTYMON2_EVSPEED EQU $D1AE +W_PARTYMON2_EVSECIAL EQU $D1B0 +W_PARTYMON2_IV EQU $D1B2 +W_PARTYMON2_MOVE1PP EQU $D1B4 +W_PARTYMON2_MOVE2PP EQU $D1B5 +W_PARTYMON2_MOVE3PP EQU $D1B6 +W_PARTYMON2_MOVE4PP EQU $D1B7 +W_PARTYMON2_LEVEL EQU $D1B8 +W_PARTYMON2_MAXHP EQU $D1B9 +W_PARTYMON2_ATACK EQU $D1BB +W_PARTYMON2_DEFENSE EQU $D1BD +W_PARTYMON2_SPEED EQU $D1BF +W_PARTYMON2_SPECIAL EQU $D1C1 + +W_PARTYMON3DATA EQU $D1C3 +W_PARTYMON3_NUM EQU $D1C3 +W_PARTYMON3_HP EQU $D1C4 +W_PARTYMON3_BOXLEVEL EQU $D1C6 +W_PARTYMON3_STATUS EQU $D1C7 +W_PARTYMON3_TYPE1 EQU $D1C8 +W_PARTYMON3_TYPE2 EQU $D1C9 +W_PARTYMON3_CRATE EQU $D1CA +W_PARTYMON3_MOVE1 EQU $D1CB +W_PARTYMON3_MOVE2 EQU $D1CC +W_PARTYMON3_MOVE3 EQU $D1CD +W_PARTYMON3_MOVE4 EQU $D1CE +W_PARTYMON3_OTID EQU $D1CF +W_PARTYMON3_EXP EQU $D1D1 +W_PARTYMON3_EVHP EQU $D1D4 +W_PARTYMON3_EVATTACK EQU $D1D6 +W_PARTYMON3_EVDEFENSE EQU $D1D8 +W_PARTYMON3_EVSPEED EQU $D1DA +W_PARTYMON3_EVSECIAL EQU $D1DC +W_PARTYMON3_IV EQU $D1DE +W_PARTYMON3_MOVE1PP EQU $D1E0 +W_PARTYMON3_MOVE2PP EQU $D1E1 +W_PARTYMON3_MOVE3PP EQU $D1E2 +W_PARTYMON3_MOVE4PP EQU $D1E3 +W_PARTYMON3_LEVEL EQU $D1E4 +W_PARTYMON3_MAXHP EQU $D1E5 +W_PARTYMON3_ATACK EQU $D1E7 +W_PARTYMON3_DEFENSE EQU $D1E9 +W_PARTYMON3_SPEED EQU $D1EB +W_PARTYMON3_SPECIAL EQU $D1ED + +W_PARTYMON4DATA EQU $D1EF +W_PARTYMON4_NUM EQU $D1EF +W_PARTYMON4_HP EQU $D1F0 +W_PARTYMON4_BOXLEVEL EQU $D1F2 +W_PARTYMON4_STATUS EQU $D1F3 +W_PARTYMON4_TYPE1 EQU $D1F4 +W_PARTYMON4_TYPE2 EQU $D1F5 +W_PARTYMON4_CRATE EQU $D1F6 +W_PARTYMON4_MOVE1 EQU $D1F7 +W_PARTYMON4_MOVE2 EQU $D1F8 +W_PARTYMON4_MOVE3 EQU $D1F9 +W_PARTYMON4_MOVE4 EQU $D1FA +W_PARTYMON4_OTID EQU $D1FB +W_PARTYMON4_EXP EQU $D1FD +W_PARTYMON4_EVHP EQU $D200 +W_PARTYMON4_EVATTACK EQU $D202 +W_PARTYMON4_EVDEFENSE EQU $D204 +W_PARTYMON4_EVSPEED EQU $D206 +W_PARTYMON4_EVSECIAL EQU $D208 +W_PARTYMON4_IV EQU $D20A +W_PARTYMON4_MOVE1PP EQU $D20C +W_PARTYMON4_MOVE2PP EQU $D20D +W_PARTYMON4_MOVE3PP EQU $D20E +W_PARTYMON4_MOVE4PP EQU $D20F +W_PARTYMON4_LEVEL EQU $D210 +W_PARTYMON4_MAXHP EQU $D211 +W_PARTYMON4_ATACK EQU $D213 +W_PARTYMON4_DEFENSE EQU $D215 +W_PARTYMON4_SPEED EQU $D217 +W_PARTYMON4_SPECIAL EQU $D219 + +W_PARTYMON5DATA EQU $D21B +W_PARTYMON5_NUM EQU $D21B +W_PARTYMON5_HP EQU $D21C +W_PARTYMON5_BOXLEVEL EQU $D21E +W_PARTYMON5_STATUS EQU $D21F +W_PARTYMON5_TYPE1 EQU $D220 +W_PARTYMON5_TYPE2 EQU $D221 +W_PARTYMON5_CRATE EQU $D222 +W_PARTYMON5_MOVE1 EQU $D223 +W_PARTYMON5_MOVE2 EQU $D224 +W_PARTYMON5_MOVE3 EQU $D225 +W_PARTYMON5_MOVE4 EQU $D226 +W_PARTYMON5_OTID EQU $D227 +W_PARTYMON5_EXP EQU $D229 +W_PARTYMON5_EVHP EQU $D22C +W_PARTYMON5_EVATTACK EQU $D22E +W_PARTYMON5_EVDEFENSE EQU $D230 +W_PARTYMON5_EVSPEED EQU $D232 +W_PARTYMON5_EVSECIAL EQU $D234 +W_PARTYMON5_IV EQU $D236 +W_PARTYMON5_MOVE1PP EQU $D238 +W_PARTYMON5_MOVE2PP EQU $D239 +W_PARTYMON5_MOVE3PP EQU $D23A +W_PARTYMON5_MOVE4PP EQU $D23B +W_PARTYMON5_LEVEL EQU $D23C +W_PARTYMON5_MAXHP EQU $D23D +W_PARTYMON5_ATACK EQU $D23F +W_PARTYMON5_DEFENSE EQU $D241 +W_PARTYMON5_SPEED EQU $D243 +W_PARTYMON5_SPECIAL EQU $D245 + +W_PARTYMON6DATA EQU $D247 +W_PARTYMON6_NUM EQU $D247 +W_PARTYMON6_HP EQU $D248 +W_PARTYMON6_BOXLEVEL EQU $D24A +W_PARTYMON6_STATUS EQU $D24B +W_PARTYMON6_TYPE1 EQU $D24C +W_PARTYMON6_TYPE2 EQU $D24D +W_PARTYMON6_CRATE EQU $D24E +W_PARTYMON6_MOVE1 EQU $D24F +W_PARTYMON6_MOVE2 EQU $D250 +W_PARTYMON6_MOVE3 EQU $D251 +W_PARTYMON6_MOVE4 EQU $D252 +W_PARTYMON6_OTID EQU $D253 +W_PARTYMON6_EXP EQU $D255 +W_PARTYMON6_EVHP EQU $D258 +W_PARTYMON6_EVATTACK EQU $D25A +W_PARTYMON6_EVDEFENSE EQU $D25C +W_PARTYMON6_EVSPEED EQU $D25E +W_PARTYMON6_EVSECIAL EQU $D260 +W_PARTYMON6_IV EQU $D262 +W_PARTYMON6_MOVE1PP EQU $D264 +W_PARTYMON6_MOVE2PP EQU $D265 +W_PARTYMON6_MOVE3PP EQU $D266 +W_PARTYMON6_MOVE4PP EQU $D267 +W_PARTYMON6_LEVEL EQU $D268 +W_PARTYMON6_MAXHP EQU $D269 +W_PARTYMON6_ATACK EQU $D26B +W_PARTYMON6_DEFENSE EQU $D26D +W_PARTYMON6_SPEED EQU $D26F +W_PARTYMON6_SPECIAL EQU $D271 + +W_PARTYMON1OT EQU $D273 +W_PARTYMON2OT EQU $D27E +W_PARTYMON3OT EQU $D289 +W_PARTYMON4OT EQU $D294 +W_PARTYMON5OT EQU $D29F +W_PARTYMON6OT EQU $D2AA + +W_PARTYMON1NAME EQU $D2B5 +W_PARTYMON2NAME EQU $D2C0 +W_PARTYMON3NAME EQU $D2CB +W_PARTYMON4NAME EQU $D2D6 +W_PARTYMON5NAME EQU $D2E1 +W_PARTYMON6NAME EQU $D2EC + + +SECTION "Pokedex", WRAMX[$d2f7], BANK[1] + +wPokedexOwned: ; d2f7 ds (150 / 8) + 1 -WPokedexOwnedEnd: +wPokedexOwnedEnd: + +wPokedexSeen: ; d30a + ds (150 / 8) + 1 +wPokedexSeenEnd: + + +;number of items in bag +W_NUMBAGITEMS EQU $D31D +; BAGITEM01 is an item id +; BAGCOUNT01 is how many of this item +W_BAGITEM01 EQU $D31E +W_BAGITEM01QTY EQU $D31F +W_BAGITEM02 EQU $D320 +W_BAGITEM02QTY EQU $D321 +W_BAGITEM03 EQU $D322 +W_BAGITEM03QTY EQU $D323 +W_BAGITEM04 EQU $D324 +W_BAGITEM04QTY EQU $D325 +W_BAGITEM05 EQU $D326 +W_BAGITEM05QTY EQU $D327 +W_BAGITEM06 EQU $D328 +W_BAGITEM06QTY EQU $D329 +W_BAGITEM07 EQU $D32A +W_BAGITEM07QTY EQU $D32B +W_BAGITEM08 EQU $D32C +W_BAGITEM08QTY EQU $D32D +W_BAGITEM09 EQU $D32E +W_BAGITEM09QTY EQU $D32F +W_BAGITEM10 EQU $D330 +W_BAGITEM10QTY EQU $D331 +W_BAGITEM11 EQU $D332 +W_BAGITEM11QTY EQU $D333 +W_BAGITEM12 EQU $D334 +W_BAGITEM12QTY EQU $D335 +W_BAGITEM13 EQU $D336 +W_BAGITEM13QTY EQU $D337 +W_BAGITEM14 EQU $D338 +W_BAGITEM14QTY EQU $D339 +W_BAGITEM15 EQU $D33A +W_BAGITEM15QTY EQU $D33B +W_BAGITEM16 EQU $D33C +W_BAGITEM16QTY EQU $D33D +W_BAGITEM17 EQU $D33E +W_BAGITEM17QTY EQU $D33F +W_BAGITEM18 EQU $D340 +W_BAGITEM18QTY EQU $D341 +W_BAGITEM19 EQU $D342 +W_BAGITEM19QTY EQU $D343 +W_BAGITEM20 EQU $D344 +W_BAGITEM20QTY EQU $D345 + +; money is in decimal +W_PLAYERMONEY3 EQU $D347 +W_PLAYERMONEY2 EQU $D348 +W_PLAYERMONEY1 EQU $D349 + +W_RIVALNAME EQU $D34A ; 11 characters, including null + +W_OPTIONS EQU $D355 +; bit 7 = battle animation +; 0: On +; 1: Off +; bit 6 = battle style +; 0: Shift +; 1: Set +; bits 0-3 = text speed (number of frames to delay after printing a letter) +; 1: Fast +; 3: Medium +; 5: Slow + +W_OBTAINEDBADGES EQU $D356 + +W_PLAYERIDHI EQU $D359 +W_PLAYERIDLO EQU $D35A + +W_CURMAP EQU $D35E + +W_YCOORD EQU $D361 ; player’s position on the current map +W_XCOORD EQU $D362 +W_YBLOCKCOORD EQU $D363 ; player's y position (by block) +W_XBLOCKCOORD EQU $D364 + +W_CURMAPTILESET EQU $D367 +W_CURMAPHEIGHT EQU $D368 ; blocks +W_CURMAPWIDTH EQU $D369 ; blocks + +W_MAPDATAPTR EQU $D36A +W_MAPTEXTPTR EQU $D36C +W_MAPSCRIPTPTR EQU $D36E +W_MAPCONNECTIONS EQU $D370 ; connection byte +W_MAPCONN1PTR EQU $D371 +W_MAPCONN2PTR EQU $D37C +W_MAPCONN3PTR EQU $D387 +W_MAPCONN4PTR EQU $D392 + +W_SPRITESET EQU $D39D ; sprite set for the current map (11 sprite picture ID's) +W_SPRITESETID EQU $D3A8 ; sprite set ID for the current map + +W_NUMSPRITES EQU $D4E1 ; number of sprites on the current map + +; two bytes per sprite (movement byte 2 , text ID) +W_MAPSPRITEDATA EQU $D4e4 + +; two bytes per sprite (trainer class/item ID , trainer set ID) +W_MAPSPRITEEXTRADATA EQU $D504 + +W_TILESETBANK EQU $D52B +W_TILESETBLOCKSPTR EQU $D52C ; maps blocks (4x4 tiles) to it's tiles +W_TILESETGFXPTR EQU $D52E +W_TILESETCOLLISIONPTR EQU $D530 ; list of all walkable tiles +W_TILESETTALKINGOVERTILES EQU $D532 ; 3 bytes +W_GRASSTILE EQU $D535 + +;number of items in box +W_NUMBOXITEMS EQU $D53A +; BOXITEM01 is an item id +; BOXITEM01QTY is how many of this item +W_BOXITEM01 EQU $D53B +W_BOXITEM01QTY EQU $D53C +W_BOXITEM02 EQU $D53D +W_BOXITEM02QTY EQU $D53E +W_BOXITEM03 EQU $D53F +W_BOXITEM03QTY EQU $D540 +W_BOXITEM04 EQU $D541 +W_BOXITEM04QTY EQU $D542 +W_BOXITEM05 EQU $D543 +W_BOXITEM05QTY EQU $D544 +W_BOXITEM06 EQU $D545 +W_BOXITEM06QTY EQU $D546 +W_BOXITEM07 EQU $D547 +W_BOXITEM07QTY EQU $D548 +W_BOXITEM08 EQU $D549 +W_BOXITEM08QTY EQU $D54A +W_BOXITEM09 EQU $D54B +W_BOXITEM09QTY EQU $D54C +W_BOXITEM10 EQU $D54D +W_BOXITEM10QTY EQU $D54E +W_BOXITEM11 EQU $D54F +W_BOXITEM11QTY EQU $D550 +W_BOXITEM12 EQU $D551 +W_BOXITEM12QTY EQU $D552 +W_BOXITEM13 EQU $D553 +W_BOXITEM13QTY EQU $D554 +W_BOXITEM14 EQU $D555 +W_BOXITEM14QTY EQU $D556 +W_BOXITEM15 EQU $D557 +W_BOXITEM15QTY EQU $D558 +W_BOXITEM16 EQU $D559 +W_BOXITEM16QTY EQU $D55A +W_BOXITEM17 EQU $D55B +W_BOXITEM17QTY EQU $D55C +W_BOXITEM18 EQU $D55D +W_BOXITEM18QTY EQU $D55E +W_BOXITEM19 EQU $D55F +W_BOXITEM19QTY EQU $D560 +W_BOXITEM20 EQU $D561 +W_BOXITEM20QTY EQU $D562 +W_BOXITEM21 EQU $D563 +W_BOXITEM21QTY EQU $D564 +W_BOXITEM22 EQU $D565 +W_BOXITEM22QTY EQU $D566 +W_BOXITEM23 EQU $D567 +W_BOXITEM23QTY EQU $D568 +W_BOXITEM24 EQU $D569 +W_BOXITEM24QTY EQU $D56A +W_BOXITEM25 EQU $D56B +W_BOXITEM25QTY EQU $D56C +W_BOXITEM26 EQU $D56D +W_BOXITEM26QTY EQU $D56E +W_BOXITEM27 EQU $D56F +W_BOXITEM27QTY EQU $D570 +W_BOXITEM28 EQU $D571 +W_BOXITEM28QTY EQU $D572 +W_BOXITEM29 EQU $D573 +W_BOXITEM29QTY EQU $D574 +W_BOXITEM30 EQU $D575 +W_BOXITEM30QTY EQU $D576 +W_BOXITEM31 EQU $D577 +W_BOXITEM31QTY EQU $D578 +W_BOXITEM32 EQU $D579 +W_BOXITEM32QTY EQU $D57A +W_BOXITEM33 EQU $D57B +W_BOXITEM33QTY EQU $D57C +W_BOXITEM34 EQU $D57D +W_BOXITEM34QTY EQU $D57E +W_BOXITEM35 EQU $D57F +W_BOXITEM35QTY EQU $D580 +W_BOXITEM36 EQU $D581 +W_BOXITEM36QTY EQU $D582 +W_BOXITEM37 EQU $D583 +W_BOXITEM37QTY EQU $D584 +W_BOXITEM38 EQU $D585 +W_BOXITEM38QTY EQU $D586 +W_BOXITEM39 EQU $D587 +W_BOXITEM39QTY EQU $D588 +W_BOXITEM40 EQU $D589 +W_BOXITEM40QTY EQU $D58A +W_BOXITEM41 EQU $D58B +W_BOXITEM41QTY EQU $D58C +W_BOXITEM42 EQU $D58D +W_BOXITEM42QTY EQU $D58E +W_BOXITEM43 EQU $D58F +W_BOXITEM43QTY EQU $D590 +W_BOXITEM44 EQU $D591 +W_BOXITEM44QTY EQU $D592 +W_BOXITEM45 EQU $D593 +W_BOXITEM45QTY EQU $D594 +W_BOXITEM46 EQU $D595 +W_BOXITEM46QTY EQU $D596 +W_BOXITEM47 EQU $D597 +W_BOXITEM47QTY EQU $D598 +W_BOXITEM48 EQU $D599 +W_BOXITEM48QTY EQU $D59A +W_BOXITEM49 EQU $D59B +W_BOXITEM49QTY EQU $D59C +W_BOXITEM50 EQU $D59D +W_BOXITEM50QTY EQU $D59E +;box end of list $D59F + +; coins are in decimal +W_PLAYERCOINS1 EQU $D5A4 +W_PLAYERCOINS2 EQU $D5A5 +W_MISSABLEOBJECTFLAGS EQU $D5A6 ; $20 bytes, bit array of missable objects. bit 1 = removed + +; each entry consists of 2 bytes +; * the sprite ID (depending on the current map) +; * the missable object index (global, used for W_MISSABLEOBJECTFLAGS) +; terminated with $FF +W_MISSABLEOBJECTLIST EQU $D5CE + +W_GAMEPROGRESSFLAGS EQU $D5F0 ; $c8 bytes +W_OAKSLABCURSCRIPT EQU $D5F0 +W_PALLETTOWNCURSCRIPT EQU $D5F1 + +W_BLUESHOUSECURSCRIPT EQU $D5F3 +W_VIRIDIANCITYCURSCRIPT EQU $D5F4 + +W_PEWTERCITYCURSCRIPT EQU $D5F7 +W_ROUTE3CURSCRIPT EQU $D5F8 +W_ROUTE4CURSCRIPT EQU $D5F9 + +W_VIRIDIANGYMCURSCRIPT EQU $D5FB +W_PEWTERGYMCURSCRIPT EQU $D5FC +W_CERULEANGYMCURSCRIPT EQU $D5FD +W_VERMILIONGYMCURSCRIPT EQU $D5FE +W_CELADONGYMCURSCRIPT EQU $D5FF +W_ROUTE6CURSCRIPT EQU $D600 +W_ROUTE8CURSCRIPT EQU $D601 +W_ROUTE24CURSCRIPT EQU $D602 +W_ROUTE25CURSCRIPT EQU $D603 +W_ROUTE9CURSCRIPT EQU $D604 +W_ROUTE10CURSCRIPT EQU $D605 +W_MTMOON1CURSCRIPT EQU $D606 +W_MTMOON3CURSCRIPT EQU $D607 +W_SSANNE8CURSCRIPT EQU $D608 +W_SSANNE9CURSCRIPT EQU $D609 +W_ROUTE22CURSCRIPT EQU $D60A + +W_REDSHOUSE2CURSCRIPT EQU $D60C +W_VIRIDIANMARKETCURSCRIPT EQU $D60D +W_ROUTE22GATECURSCRIPT EQU $D60E +W_CERULEANCITYCURSCRIPT EQU $D60F + +W_SSANNE5CURSCRIPT EQU $D617 +W_VIRIDIANFORESTCURSCRIPT EQU $D618 +W_MUSEUMF1CURSCRIPT EQU $D619 +W_ROUTE13CURSCRIPT EQU $D61A +W_ROUTE14CURSCRIPT EQU $D61B +W_ROUTE17CURSCRIPT EQU $D61C +W_ROUTE19CURSCRIPT EQU $D61D +W_ROUTE21CURSCRIPT EQU $D61E +W_SAFARIZONEENTRANCECURSCRIPT EQU $D61F +W_ROCKTUNNEL2CURSCRIPT EQU $D620 +W_ROCKTUNNEL1CURSCRIPT EQU $D621 + +W_ROUTE11CURSCRIPT EQU $D623 +W_ROUTE12CURSCRIPT EQU $D624 +W_ROUTE15CURSCRIPT EQU $D625 +W_ROUTE16CURSCRIPT EQU $D626 +W_ROUTE18CURSCRIPT EQU $D627 +W_ROUTE20CURSCRIPT EQU $D628 +W_SSANNE10CURSCRIPT EQU $D629 +W_VERMILIONCITYCURSCRIPT EQU $D62A +W_POKEMONTOWER2CURSCRIPT EQU $D62B +W_POKEMONTOWER3CURSCRIPT EQU $D62C +W_POKEMONTOWER4CURSCRIPT EQU $D62D +W_POKEMONTOWER5CURSCRIPT EQU $D62E +W_POKEMONTOWER6CURSCRIPT EQU $D62F +W_POKEMONTOWER7CURSCRIPT EQU $D630 +W_ROCKETHIDEOUT1CURSCRIPT EQU $D631 +W_ROCKETHIDEOUT2CURSCRIPT EQU $D632 +W_ROCKETHIDEOUT3CURSCRIPT EQU $D633 +W_ROCKETHIDEOUT4CURSCRIPT EQU $D634 + +W_ROUTE6GATECURSCRIPT EQU $D636 +W_ROUTE8GATECURSCRIPT EQU $D637 + +W_CINNABARISLANDCURSCRIPT EQU $D639 +W_MANSION1CURSCRIPT EQU $D63A + +W_MANSION2CURSCRIPT EQU $D63C +W_MANSION3CURSCRIPT EQU $D63D +W_MANSION4CURSCRIPT EQU $D63E +W_VICTORYROAD2CURSCRIPT EQU $D63F +W_VICTORYROAD3CURSCRIPT EQU $D640 + +W_FIGHTINGDOJOCURSCRIPT EQU $D642 +W_SILPHCO2CURSCRIPT EQU $D643 +W_SILPHCO3CURSCRIPT EQU $D644 +W_SILPHCO4CURSCRIPT EQU $D645 +W_SILPHCO5CURSCRIPT EQU $D646 +W_SILPHCO6CURSCRIPT EQU $D647 +W_SILPHCO7CURSCRIPT EQU $D648 +W_SILPHCO8CURSCRIPT EQU $D649 +W_SILPHCO9CURSCRIPT EQU $D64A +W_HALLOFFAMEROOMCURSCRIPT EQU $D64B +W_GARYCURSCRIPT EQU $D64C +W_LORELEICURSCRIPT EQU $D64D +W_BRUNOCURSCRIPT EQU $D64E +W_AGATHACURSCRIPT EQU $D64F +W_UNKNOWNDUNGEON3CURSCRIPT EQU $D650 +W_VICTORYROAD1CURSCRIPT EQU $D651 + +W_LANCECURSCRIPT EQU $D653 + +W_SILPHCO10CURSCRIPT EQU $D658 +W_SILPHCO11CURSCRIPT EQU $D659 + +W_FUCHSIAGYMCURSCRIPT EQU $D65B +W_SAFFRONGYMCURSCRIPT EQU $D65C + +W_CINNABARGYMCURSCRIPT EQU $D65E +W_CELADONGAMECORNERCURSCRIPT EQU $D65F +W_ROUTE16GATECURSCRIPT EQU $D660 +W_BILLSHOUSECURSCRIPT EQU $D661 +W_ROUTE5GATECURSCRIPT EQU $D662 +W_POWERPLANTCURSCRIPT EQU $D663 ; overload +W_ROUTE7GATECURSCRIPT EQU $D663 ; overload + +W_SSANNE2CURSCRIPT EQU $D665 +W_SEAFOAMISLANDS4CURSCRIPT EQU $D666 +W_ROUTE23CURSCRIPT EQU $D667 +W_SEAFOAMISLANDS5CURSCRIPT EQU $D668 +W_ROUTE18GATECURSCRIPT EQU $D669 + +W_TOWNVISITEDFLAG EQU $D70B ; 2 bytes bit array, 1 means visited + +W_SAFARITIMER1 EQU $D70D ; use 01 for maximum +W_SAFARITIMER2 EQU $D70E ; use F4 for maximum +W_FOSSILITEM EQU $D70F ; item given to cinnabar lab +W_FOSSILMON EQU $D710 ; mon that will result from the item + +W_ENEMYMONORTRAINERCLASS EQU $D713 ; trainer classes start at $c8 + +W_RIVALSTARTER EQU $D715 + +W_PLAYERSTARTER EQU $D717 + +; bit 4: use variable [W_CURMAPSCRIPT] instead of the provided index for next frame's map script (used to start battle when talking to trainers) +W_FLAGS_D733 EQU $D733 + + +W_GRASSRATE EQU $D887 +W_GRASSMONS EQU $D888 +W_WATERRATE EQU $D8A4 ; OVERLOADED +W_WATERMONS EQU $D8A5 ; OVERLOADED + +W_ENEMYMONCOUNT EQU $D89C + +W_ENEMYMON1HP EQU $D8A5 ; 16 bits + +W_ENEMYMON1MOVE3 EQU $D8AE + +W_ENEMYMON2MOVE3 EQU $D8DA + +W_ENEMYMON3MOVE3 EQU $D906 + +W_ENEMYMON4MOVE3 EQU $D932 + +W_ENEMYMON5MOVE3 EQU $D95E + +W_ENEMYMON6MOVE3 EQU $D98A + +W_ENEMYMON1OT EQU $D9AC +W_ENEMYMON2OT EQU $D9B7 +W_ENEMYMON3OT EQU $D9C2 +W_ENEMYMON4OT EQU $D9CD +W_ENEMYMON5OT EQU $D9D8 +W_ENEMYMON6OT EQU $D9E3 + +W_ENEMYMON1NAME EQU $D9EE +W_ENEMYMON2NAME EQU $D9F9 +W_ENEMYMON3NAME EQU $DA04 +W_ENEMYMON4NAME EQU $DA0F +W_ENEMYMON5NAME EQU $DA1A +W_ENEMYMON6NAME EQU $DA25 ; to $da2f +W_TRAINERHEADERPTR EQU $DA30 + +; index of current map script, mostly used as index for function pointer array +; mostly copied from map-specific map script pointer and wirtten back later +W_CURMAPSCRIPT EQU $DA39 + +W_PLAYTIMEHOURS EQU $DA40 ; two bytes +W_PLAYTIMEMINUTES EQU $DA42 ; two bytes +W_PLAYTIMESECONDS EQU $DA44 ; one byte +W_PLAYTIMEFRAMES EQU $DA45 ; one byte + +W_NUMSAFARIBALLS EQU $DA47 + +; number of mons in current box +W_NUMINBOX EQU $DA80 +W_BOXMON1DATA EQU $DA96 +W_BOXMON2DATA EQU $DAB7 + -- cgit v1.3.1-sl0p From 4f527b7eef8c33060ddc9f990966c12d3d0d85bc Mon Sep 17 00:00:00 2001 From: yenatch Date: Sun, 8 Dec 2013 04:49:40 -0500 Subject: more wram labels --- main.asm | 208 ++++++------ wram.asm | 1123 +++++++++++++++++++++++++++++++------------------------------- 2 files changed, 662 insertions(+), 669 deletions(-) (limited to 'wram.asm') diff --git a/main.asm b/main.asm index b3e2074b..698d7d22 100755 --- a/main.asm +++ b/main.asm @@ -490,7 +490,7 @@ OverworldLoopLessDelay: ; 0402 (0:0402) ld a,[$d736] bit 6,a ; jumping down a ledge? call nz, HandleMidJump - ld a,[W_WALKCOUNTER] + ld a,[wWalkCounter] and a jp nz,.moveAhead ; if the player sprite has not yet completed the walking animation call GetJoypadStateOverworld ; get joypad state (which is possibly simulated) @@ -694,7 +694,7 @@ OverworldLoopLessDelay: ; 0402 (0:0402) jp c,OverworldLoop .noCollision ld a,$08 - ld [W_WALKCOUNTER],a + ld [wWalkCounter],a jr .moveAhead2 .moveAhead ld a,[$d736] @@ -717,7 +717,7 @@ OverworldLoopLessDelay: ; 0402 (0:0402) call BikeSpeedup ; if riding a bike and not jumping a ledge .normalPlayerSpriteAdvancement call AdvancePlayerSprite - ld a,[W_WALKCOUNTER] + ld a,[wWalkCounter] and a jp nz,CheckMapConnections ; it seems like this check will never succeed (the other place where CheckMapConnections is run works) ; walking animation finished @@ -1214,12 +1214,12 @@ HandleBlackOut: ; 0931 (0:0931) jp Func_5d5f StopMusic: ; 0951 (0:0951) - ld [W_CURCHANNELPOINTER],a + ld [wMusicChannelPointer],a ld a,$ff ld [$c0ee],a call PlaySound .waitLoop - ld a,[W_CURCHANNELPOINTER] + ld a,[wMusicChannelPointer] and a jr nz,.waitLoop jp StopAllSounds @@ -1902,7 +1902,7 @@ AdvancePlayerSprite: ; 0d27 (0:0d27) ld b,a ld a,[$c105] ; delta X ld c,a - ld hl,W_WALKCOUNTER ; walking animation counter + ld hl,wWalkCounter ; walking animation counter dec [hl] jr nz,.afterUpdateMapCoords ; if it's the end of the animation, update the player's map coordinates @@ -1913,7 +1913,7 @@ AdvancePlayerSprite: ; 0d27 (0:0d27) add c ld [W_XCOORD],a .afterUpdateMapCoords - ld a,[W_WALKCOUNTER] ; walking animation counter + ld a,[wWalkCounter] ; walking animation counter cp a,$07 jp nz,.scrollBackgroundAndSprites ; if this is the first iteration of the animation @@ -2781,7 +2781,7 @@ LoadMapData: ; 1241 (0:1241) ld [$d526],a ld [$ffaf],a ld [$ffae],a - ld [W_WALKCOUNTER],a + ld [wWalkCounter],a ld [$d119],a ld [$d11a],a ld [$d3a8],a @@ -5271,7 +5271,7 @@ StopAllSounds: ; 200e (0:200e) ld [$c0ef], a ld [$c0f0], a xor a - ld [W_CURCHANNELPOINTER], a + ld [wMusicChannelPointer], a ld [$c0ee], a ld [$cfca], a dec a @@ -5825,7 +5825,7 @@ asm_2324: ; 2324 (0:2324) ret z .asm_2351 ld a, c - ld [W_CURCHANNELPOINTER], a + ld [wMusicChannelPointer], a ld a, b ld [$cfca], a ld [$c0ee], a @@ -5883,7 +5883,7 @@ PlayMusic: ; 23a1 (0:23a1) ld b, a ld [$c0ee], a xor a - ld [W_CURCHANNELPOINTER], a + ld [wMusicChannelPointer], a ld a, c ld [$c0ef], a ld [$c0f0], a @@ -5904,7 +5904,7 @@ PlaySound: ; 23b1 (0:23b1) ld [$c02c], a ld [$c02d], a .asm_23c8 - ld a, [W_CURCHANNELPOINTER] + ld a, [wMusicChannelPointer] and a jr z, .asm_23e3 ld a, [$c0ee] @@ -5916,7 +5916,7 @@ PlaySound: ; 23b1 (0:23b1) cp $ff jr nz, .asm_2414 xor a - ld [W_CURCHANNELPOINTER], a + ld [wMusicChannelPointer], a .asm_23e3 xor a ld [$c0ee], a @@ -5949,11 +5949,11 @@ PlaySound: ; 23b1 (0:23b1) .asm_2414 ld a, b ld [$cfca], a - ld a, [W_CURCHANNELPOINTER] + ld a, [wMusicChannelPointer] ld [$cfc8], a ld [$cfc9], a ld a, b - ld [W_CURCHANNELPOINTER], a + ld [wMusicChannelPointer], a .asm_2425 pop bc pop de @@ -6698,7 +6698,7 @@ ResetPlayerSpriteData_ClearSpriteData: ; 28c4 (0:28c4) jp FillMemory Func_28cb: ; 28cb (0:28cb) - ld a, [W_CURCHANNELPOINTER] + ld a, [wMusicChannelPointer] and a jr nz, .asm_28dc ld a, [$d72c] @@ -6733,10 +6733,10 @@ Func_28cb: ; 28cb (0:28cb) ld [$FF00+$24], a ret .asm_2903 - ld a, [W_CURCHANNELPOINTER] + ld a, [wMusicChannelPointer] ld b, a xor a - ld [W_CURCHANNELPOINTER], a + ld [wMusicChannelPointer], a ld a, $ff ld [$c0ee], a call PlaySound @@ -7119,7 +7119,7 @@ SubtractAmountPaidFromMoney: ; 2b96 (0:2b96) ; adds the amount the player sold to their money AddAmountSoldToMoney: ; 2b9e (0:2b9e) - ld de,W_PLAYERMONEY1 + ld de,wPlayerMoney + 2 ld hl,$ffa1 ; total price of items ld c,3 ; length of money in bytes ld a,$0b @@ -7133,7 +7133,7 @@ AddAmountSoldToMoney: ; 2b9e (0:2b9e) ; function to remove an item (in varying quantities) from the player's bag or PC box ; INPUT: -; HL = address of inventory (either W_NUMBAGITEMS or W_NUMBOXITEMS) +; HL = address of inventory (either wNumBagItems or wNumBoxItems) ; [$CF92] = index (within the inventory) of the item to remove ; [$CF96] = quantity to remove RemoveItemFromInventory: ; 2bbb (0:2bbb) @@ -7150,7 +7150,7 @@ RemoveItemFromInventory: ; 2bbb (0:2bbb) ; function to add an item (in varying quantities) to the player's bag or PC box ; INPUT: -; HL = address of inventory (either W_NUMBAGITEMS or W_NUMBOXITEMS) +; HL = address of inventory (either wNumBagItems or wNumBoxItems) ; [$CF91] = item ID ; [$CF96] = item quantity ; sets carry flag if successful, unsets carry flag if unsuccessful @@ -7909,7 +7909,7 @@ UseItem: ; 30bc (0:30bc) ; confirms the item toss and then tosses the item ; INPUT: -; hl = address of inventory (either W_NUMBAGITEMS or W_NUMBOXITEMS) +; hl = address of inventory (either wNumBagItems or wNumBoxItems) ; [$cf91] = item ID ; [$cf92] = index of item within inventory ; [$cf96] = quantity to toss @@ -8427,7 +8427,7 @@ PlayTrainerMusic: ; 33e8 (0:33e8) and a ret nz xor a - ld [W_CURCHANNELPOINTER], a + ld [wMusicChannelPointer], a ld a, $ff call PlaySound ; stop music ld a, BANK(Music_MeetEvilTrainer) @@ -8767,7 +8767,7 @@ Func_359e: ; 359e (0:359e) ; sets carry flag if not enough money ; sets zero flag if amounts match exactly HasEnoughMoney: ; 35a6 (0:35a6) - ld de, W_PLAYERMONEY3 ; $d347 + ld de, wPlayerMoney ; $d347 ld hl, $ff9f ld c, $3 jp StringCmp @@ -8776,7 +8776,7 @@ HasEnoughMoney: ; 35a6 (0:35a6) ; sets carry flag if not enough coins ; sets zero flag if amounts match exactly HasEnoughCoins: ; 35b1 (0:35b1) - ld de, W_PLAYERCOINS1 + ld de, wPlayerCoins ld hl, $ffa0 ld c, $2 jp StringCmp @@ -10406,7 +10406,7 @@ GiveItem: ; 3e2e (0:3e2e) ld [$cf91], a ld a, c ld [$cf96], a - ld hl,W_NUMBAGITEMS + ld hl,wNumBagItems call AddItemToInventory ret nc call GetItemName ; $2fcf @@ -10698,11 +10698,11 @@ Func_40b0: ; 40b0 (1:40b0) ld [$FF00+$a1], a call HasEnoughMoney jr c, .asm_40ff - ld a, [W_PLAYERMONEY3] ; $d347 + ld a, [wPlayerMoney] ; $d347 ld [$FF00+$9f], a - ld a, [W_PLAYERMONEY2] ; $d348 + ld a, [wPlayerMoney + 1] ; $d348 ld [$FF00+$a0], a - ld a, [W_PLAYERMONEY1] ; $d349 + ld a, [wPlayerMoney + 2] ; $d349 ld [$FF00+$a1], a xor a ld [$FF00+$a2], a @@ -10712,11 +10712,11 @@ Func_40b0: ; 40b0 (1:40b0) ld a, $d call Predef ; indirect jump to Func_f71e (f71e (3:771e)) ld a, [$FF00+$a2] - ld [W_PLAYERMONEY3], a ; $d347 + ld [wPlayerMoney], a ; $d347 ld a, [$FF00+$a3] - ld [W_PLAYERMONEY2], a ; $d348 + ld [wPlayerMoney + 1], a ; $d348 ld a, [$FF00+$a4] - ld [W_PLAYERMONEY1], a ; $d349 + ld [wPlayerMoney + 2], a ; $d349 .asm_40ff ld hl, $d732 set 2, [hl] @@ -12073,7 +12073,7 @@ UpdatePlayerSprite: ; 4e31 (1:4e31) .asm_4e50 call Func_4c70 ld h, $c1 - ld a, [W_WALKCOUNTER] ; $cfc5 + ld a, [wWalkCounter] ; $cfc5 and a jr nz, .asm_4e90 ld a, [$d528] @@ -12189,7 +12189,7 @@ Func_4ed1: ; 4ed1 (1:4ed1) jp z, UpdateSpriteMovementDelay ; c1x1 == 2 cp $3 jp z, UpdateSpriteInWalkingAnimation ; c1x1 == 3 - ld a, [W_WALKCOUNTER] ; $cfc5 + ld a, [wWalkCounter] ; $cfc5 and a ret nz ; don't do anything yet if player is currently moving (redundant, already tested in CheckSpriteAvailability) call InitializeSpriteScreenPosition @@ -12571,7 +12571,7 @@ CheckSpriteAvailability: ; 50dc (1:50dc) jr .done .spriteVisible ld c, a - ld a, [W_WALKCOUNTER] ; $cfc5 + ld a, [wWalkCounter] ; $cfc5 and a jr nz, .done ; if player is currently walking, we're done call UpdateSpriteImage @@ -13126,7 +13126,7 @@ Func_5317: ; 5317 (1:5317) pop hl jr .asm_546a .asm_5489 - ld hl, W_PARTYMON6_MOVE4PP ; $d267 + ld hl, W_PARTYMON6DATA + W_PARTYMON1_MOVE4PP - W_PARTYMON1DATA ; $d267 dec c jr nz, .asm_546a ld de, $c5d0 @@ -13728,7 +13728,7 @@ Func_5849: ld a, [hl] ld [$cd3e], a ld a, $a - ld [W_CURCHANNELPOINTER], a + ld [wMusicChannelPointer], a ld a, $2 ld [$c0f0], a ld a, $e5 @@ -13825,7 +13825,7 @@ Func_5a5f: ; 5a5f (1:5a5f) ld [W_ISLINKBATTLE], a ; $d12b ld [$FF00+$b5], a ld a, $a - ld [W_CURCHANNELPOINTER], a + ld [wMusicChannelPointer], a ld a, BANK(Music_Celadon) ld [$c0f0], a ld a, (Music_Celadon - $4000) / 3 @@ -14741,7 +14741,7 @@ Function61BC: ; 61bc (1:61bc) ld [$C0EF],a ld [$C0F0],a ld a,$A - ld [W_CURCHANNELPOINTER],a + ld [wMusicChannelPointer],a ld a,$FF ld [$C0EE],a call PlaySound ; stop music @@ -15889,12 +15889,12 @@ TextTerminator_6b20: ; 6b20 (1:6b20) ; subtracts the amount the player paid from their money ; sets carry flag if there is enough money and unsets carry flag if not SubtractAmountPaidFromMoney_: ; 6b21 (1:6b21) - ld de,W_PLAYERMONEY3 + ld de,wPlayerMoney ld hl,$ff9f ; total price of items ld c,3 ; length of money in bytes call StringCmp ret c - ld de,W_PLAYERMONEY1 + ld de,wPlayerMoney + 2 ld hl,$ffa1 ; total price of items ld c,3 ; length of money in bytes ld a,$0c @@ -16096,7 +16096,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) ld hl, Func_39bd5 ld b, BANK(Func_39bd5) call Bankswitch - ld a,[W_NUMBAGITEMS] + ld a,[wNumBagItems] and a jp z,.bagEmpty ld hl,PokemonSellingGreetingText @@ -16107,7 +16107,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) ld a,$13 ld [$d125],a call DisplayTextBoxID ; draw money text box - ld hl,W_NUMBAGITEMS + ld hl,wNumBagItems ld a,l ld [$cf8b],a ld a,h @@ -16156,7 +16156,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) ld [$cf0a],a .skipSettingFlag1 call AddAmountSoldToMoney - ld hl,W_NUMBAGITEMS + ld hl,wNumBagItems call RemoveItemFromInventory jp .sellMenuLoop .unsellableItem @@ -16225,7 +16225,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) .buyItem call .isThereEnoughMoney jr c,.notEnoughMoney - ld hl,W_NUMBAGITEMS + ld hl,wNumBagItems call AddItemToInventory jr nc,.bagFull call SubtractAmountPaidFromMoney @@ -16250,7 +16250,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) call PrintText jp .loop .isThereEnoughMoney - ld de,W_PLAYERMONEY3 + ld de,wPlayerMoney ld hl,$ff9f ; item price ld c,3 ; length of money in bytes jp StringCmp @@ -16575,7 +16575,7 @@ DisplayPokemonCenterDialogue_: ; 6fe6 (1:6fe6) ld hl, Func_70433 call Bankswitch ; do the healing machine animation xor a - ld [W_CURCHANNELPOINTER], a + ld [wMusicChannelPointer], a ld a, [$c0f0] ld [$c0ef], a ld a, [$d35b] @@ -17268,7 +17268,7 @@ JapanesePokedexMenu: ; 74a1 (1:74a1) call ClearScreenArea FuncCoord 12, 1 ; $c3c0 ld hl, Coord - ld de, W_PLAYERMONEY3 ; $d347 + ld de, wPlayerMoney ; $d347 ld c, $a3 call PrintBCDNumber ld hl, $d730 @@ -17901,7 +17901,7 @@ Func_7995: ; 7995 (1:7995) xor a ld [wCurrentMenuItem], a ; $cc26 ld [wListScrollOffset], a ; $cc36 - ld a, [W_NUMBAGITEMS] ; $d31d + ld a, [wNumBagItems] ; $d31d and a jr nz, Func_79ab ld hl, UnnamedText_7b3b ; $7b3b @@ -17911,7 +17911,7 @@ Func_7995: ; 7995 (1:7995) Func_79ab: ; 79ab (1:79ab) ld hl, UnnamedText_7b2c ; $7b2c call PrintText - ld hl, W_NUMBAGITEMS ; $d31d + ld hl, wNumBagItems ; $d31d ld a, l ld [$cf8b], a ld a, h @@ -17934,14 +17934,14 @@ Func_79ab: ; 79ab (1:79ab) cp $ff jp z, Func_79ab .asm_79e7 - ld hl, W_NUMBOXITEMS ; $d53a + ld hl, wNumBoxItems ; $d53a call AddItemToInventory jr c, .asm_79f8 ld hl, UnnamedText_7b40 ; $7b40 call PrintText jp Func_79ab .asm_79f8 - ld hl, W_NUMBAGITEMS ; $d31d + ld hl, wNumBagItems ; $d31d call RemoveItemFromInventory call WaitForSoundToFinish ld a, $ab @@ -17955,7 +17955,7 @@ Func_7a12: ; 7a12 (1:7a12) xor a ld [wCurrentMenuItem], a ; $cc26 ld [wListScrollOffset], a ; $cc36 - ld a, [W_NUMBOXITEMS] ; $d53a + ld a, [wNumBoxItems] ; $d53a and a jr nz, Func_7a28 ld hl, UnnamedText_7b54 ; $7b54 @@ -17965,7 +17965,7 @@ Func_7a12: ; 7a12 (1:7a12) Func_7a28: ; 7a28 (1:7a28) ld hl, UnnamedText_7b45 ; $7b45 call PrintText - ld hl, W_NUMBOXITEMS ; $d53a + ld hl, wNumBoxItems ; $d53a ld a, l ld [$cf8b], a ld a, h @@ -17988,14 +17988,14 @@ Func_7a28: ; 7a28 (1:7a28) cp $ff jp z, Func_7a28 .asm_7a64 - ld hl, W_NUMBAGITEMS ; $d31d + ld hl, wNumBagItems ; $d31d call AddItemToInventory jr c, .asm_7a75 ld hl, UnnamedText_7b59 ; $7b59 call PrintText jp Func_7a28 .asm_7a75 - ld hl, W_NUMBOXITEMS ; $d53a + ld hl, wNumBoxItems ; $d53a call RemoveItemFromInventory call WaitForSoundToFinish ld a, $ab @@ -18009,7 +18009,7 @@ Func_7a8f: ; 7a8f (1:7a8f) xor a ld [wCurrentMenuItem], a ; $cc26 ld [wListScrollOffset], a ; $cc36 - ld a, [W_NUMBOXITEMS] ; $d53a + ld a, [wNumBoxItems] ; $d53a and a jr nz, Func_7aa5 ld hl, UnnamedText_7b54 ; $7b54 @@ -18019,7 +18019,7 @@ Func_7a8f: ; 7a8f (1:7a8f) Func_7aa5: ; 7aa5 (1:7aa5) ld hl, UnnamedText_7b5e ; $7b5e call PrintText - ld hl, W_NUMBOXITEMS ; $d53a + ld hl, wNumBoxItems ; $d53a ld a, l ld [$cf8b], a ld a, h @@ -18362,7 +18362,7 @@ INCLUDE "music/sfx/sfx_02_36.asm" PlayBattleMusic: ; 0x90c6 xor a - ld [W_CURCHANNELPOINTER], a + ld [wMusicChannelPointer], a ld [$d083], a dec a ld [$c0ee], a @@ -20115,7 +20115,7 @@ Music_Cities1AlternateTempo: ; 0x9b81 ld [$cfc8], a ld [$cfc9], a ld a, $ff - ld [W_CURCHANNELPOINTER], a + ld [wMusicChannelPointer], a ld c, $64 call DelayFrames ld c, BANK(Music_Cities1) @@ -22282,7 +22282,7 @@ UnnamedText_cdff: ; cdff (3:4dff) ; function to add an item (in varying quantities) to the player's bag or PC box ; INPUT: -; hl = address of inventory (either W_NUMBAGITEMS or W_NUMBOXITEMS) +; hl = address of inventory (either wNumBagItems or wNumBoxItems) ; [$CF91] = item ID ; [$CF96] = item quantity ; sets carry flag if successful, unsets carry flag if unsuccessful @@ -22294,10 +22294,10 @@ AddItemToInventory_: ; ce04 (3:4e04) push hl push hl ld d,50 ; PC box can hold 50 items - ld a,W_NUMBAGITEMS & $FF + ld a,wNumBagItems & $FF cp l jr nz,.checkIfInventoryFull - ld a,W_NUMBAGITEMS >> 8 + ld a,wNumBagItems >> 8 cp h jr nz,.checkIfInventoryFull ; if the destination is the bag @@ -22376,7 +22376,7 @@ AddItemToInventory_: ; ce04 (3:4e04) ; function to remove an item (in varying quantities) from the player's bag or PC box ; INPUT: -; hl = address of inventory (either W_NUMBAGITEMS or W_NUMBOXITEMS) +; hl = address of inventory (either wNumBagItems or wNumBoxItems) ; [$CF92] = index (within the inventory) of the item to remove ; [$CF96] = quantity to remove RemoveItemFromInventory_: ; ce74 (3:4e74) @@ -26943,7 +26943,7 @@ ItemUseEvoStone: ; da5b (3:5a5b) jr z,.noEffect pop af ld [$cf92],a - ld hl,W_NUMBAGITEMS + ld hl,wNumBagItems ld a,1 ; remove 1 stone ld [$cf96],a jp RemoveItemFromInventory @@ -28512,7 +28512,7 @@ PrintItemUseTextAndRemoveItem: ; e563 (3:6563) call WaitForTextScrollButtonPress ; wait for button press RemoveUsedItem: ; e571 (3:6571) - ld hl,W_NUMBAGITEMS + ld hl,wNumBagItems ld a,1 ; one item ld [$cf96],a ; store quantity jp RemoveItemFromInventory @@ -28784,7 +28784,7 @@ GetSelectedMoveOffset2: ; e6e9 (3:66e9) ; confirms the item toss and then tosses the item ; INPUT: -; hl = address of inventory (either W_NUMBAGITEMS or W_NUMBOXITEMS) +; hl = address of inventory (either wNumBagItems or wNumBoxItems) ; [$cf91] = item ID ; [$cf92] = index of item within inventory ; [$cf96] = quantity to toss @@ -29026,7 +29026,7 @@ Func_e7a4: ; e7a4 (3:67a4) ld de, W_BOXMON1DATA ld bc, $c call CopyData - ld hl, W_PLAYERIDHI ; $d359 + ld hl, wPlayerID ; $d359 ld a, [hli] ld [de], a inc de @@ -30290,10 +30290,10 @@ _AddPokemonToParty: ; f2e5 (3:72e5) ld a, $3e call Predef ; indirect jump to WriteMonMoves (3afb8 (e:6fb8)) pop de - ld a, [W_PLAYERIDHI] ; set trainer ID to player ID + ld a, [wPlayerID] ; set trainer ID to player ID inc de ld [de], a - ld a, [W_PLAYERIDLO] + ld a, [wPlayerID + 1] inc de ld [de], a push de @@ -30971,21 +30971,21 @@ Func_f839: ; f839 (3:7839) InitializePlayerData: ; f850 (3:7850) call GenRandom ld a, [H_RAND2] - ld [W_PLAYERIDHI], a ; set player trainer id + ld [wPlayerID], a ; set player trainer id call GenRandom ld a, [H_RAND1] - ld [W_PLAYERIDLO], a + ld [wPlayerID + 1], a ld a, $ff ld [$d71b], a ; XXX what's this? ld hl, W_NUMINPARTY ; $d163 call InitializeEmptyList ; no party mons ld hl, W_NUMINBOX ; $da80 call InitializeEmptyList ; no boxed mons - ld hl, W_NUMBAGITEMS ; $d31d + ld hl, wNumBagItems ; $d31d call InitializeEmptyList ; no items - ld hl, W_NUMBOXITEMS ; $d53a + ld hl, wNumBoxItems ; $d53a call InitializeEmptyList ; no boxed items - ld hl, W_PLAYERMONEY2 ; $d348 + ld hl, wPlayerMoney + 1 ; $d348 ld a, $30 ld [hld], a ; set money to 00 30 00 (3000) xor a @@ -30996,7 +30996,7 @@ InitializePlayerData: ; f850 (3:7850) ld hl, W_OBTAINEDBADGES ; $d356 ld [hli], a ; no badges obtained ld [hl], a ; XXX what's this? - ld hl, W_PLAYERCOINS1 ; $d5a4 + ld hl, wPlayerCoins ; $d5a4 ld [hli], a ; no coins ld [hl], a ld hl, W_GAMEPROGRESSFLAGS ; $d5f0 @@ -31014,7 +31014,7 @@ InitializeEmptyList: ; f8a0 (3:78a0) Func_f8a5: ; f8a5 (3:78a5) call Load16BitRegisters - ld hl, W_NUMBAGITEMS ; $d31d + ld hl, wNumBagItems ; $d31d .asm_f8ab inc hl ld a, [hli] @@ -32869,7 +32869,7 @@ StartMenu_Item: ; 13302 (4:7302) call PrintText jr .exitMenu .notInLinkBattle - ld bc,W_NUMBAGITEMS + ld bc,wNumBagItems ld hl,$cf8b ld a,c ld [hli],a @@ -32999,7 +32999,7 @@ StartMenu_Item: ; 13302 (4:7302) inc a jr z,.tossZeroItems .skipAskingQuantity - ld hl,W_NUMBAGITEMS + ld hl,wNumBagItems call TossItem .tossZeroItems jp ItemMenuLoop @@ -33175,7 +33175,7 @@ DrawTrainerInfo: ; 1349a (4:749a) call PlaceString FuncCoord 8,4 ld hl,Coord - ld de,W_PLAYERMONEY3 + ld de,wPlayerMoney ld c,$e3 call PrintBCDNumber FuncCoord 9,6 @@ -33563,7 +33563,7 @@ Func_137aa: ; 137aa (4:77aa) inc hl or [hl] jr z, .asm_1380a - ld de, W_PLAYERMONEY1 ; $d349 + ld de, wPlayerMoney + 2 ; $d349 ld c, $3 ld a, $b call Predef ; indirect jump to Func_f81d (f81d (3:781d)) @@ -35228,7 +35228,7 @@ UnnamedText_17f32: ; 17f32 (5:7f32) ; removes one of the specified item ID [$FFdb] from bag (if existent) RemoveItemByID: ; 17f37 (5:7f37) - ld hl, W_BAGITEM01 ; $d31e + ld hl, wBagItems ; $d31e ld a, [$FF00+$db] ld b, a xor a @@ -35249,7 +35249,7 @@ RemoveItemByID: ; 17f37 (5:7f37) ld [$cf96], a ld a, [$FF00+$dc] ld [wWhichPokemon], a ; $cf92 - ld hl, W_NUMBAGITEMS ; $d31d + ld hl, wNumBagItems ; $d31d jp RemoveItemFromInventory SECTION "bank6",ROMX,BANK[$6] @@ -40363,7 +40363,7 @@ OaksLabScript18: ; 1d009 (7:5009) ret Function1D00A: ; 1d00a (7:500a) - ld hl, W_BAGITEM01 + ld hl, wBagItems ld bc, $0000 .asm_1d010 ld a, [hli] @@ -43837,7 +43837,7 @@ asm_1e9ab: ; 1e9ab (7:69ab) asm_1e9b0: ; 1e9b0 (7:69b0) call EnableAutoTextBoxDrawing xor a - ld [W_CURCHANNELPOINTER], a + ld [wMusicChannelPointer], a dec a call PlaySound ld c, BANK(SFX_02_5f) @@ -54990,7 +54990,7 @@ Func_39bd5: ; 39bd5 (e:5bd5) .asm_39c02 cp $2 jr nz, .asm_39c10 - ld hl, W_NUMBAGITEMS ; $d31d + ld hl, wNumBagItems ; $d31d ld de, ItemNames ; $472b ld a, $4 jr .asm_39c18 @@ -60597,7 +60597,7 @@ TrainerBattleVictory: ; 3c696 (f:4696) call Func_3381 ld hl, MoneyForWinningText ; $46e4 call PrintText - ld de, W_PLAYERMONEY1 ; $d349 + ld de, wPlayerMoney + 2 ; $d349 ld hl, $d07b ld c, $3 ld a, $b @@ -61101,7 +61101,7 @@ AnyPokemonAliveCheck: ; 3ca83 (f:4a83) ld e, a xor a ld hl, W_PARTYMON1_HP ; $d16c - ld bc, W_PARTYMON2_HP - W_PARTYMON1_HP - 1 ; $2b + ld bc, W_PARTYMON2DATA - W_PARTYMON1DATA - 1 .partyMonsLoop or [hl] inc hl @@ -61445,7 +61445,7 @@ Func_3cd3a: ; 3cd3a (f:4d3a) ReadPlayerMonCurHPAndStatus: ; 3cd43 (f:4d43) ld a, [wPlayerMonNumber] ; $cc2f ld hl, W_PARTYMON1_HP ; $d16c - ld bc, W_PARTYMON2_HP - W_PARTYMON1_HP ; $2c + ld bc, W_PARTYMON2DATA - W_PARTYMON1DATA call AddNTimes ld d, h ld e, l @@ -61853,7 +61853,7 @@ asm_3d00e: ; 3d00e (f:500e) db $01, $04, $32, $ff .asm_3d031 - ld hl, W_NUMBAGITEMS ; $d31d + ld hl, wNumBagItems ; $d31d ld a, l ld [$cf8b], a ld a, h @@ -63545,11 +63545,11 @@ Func_3dc88: ; 3dc88 (f:5c88) ld bc, $2c ld a, [wPlayerMonNumber] ; $cc2f call AddNTimes - ld a, [W_PLAYERIDHI] ; $d359 + ld a, [wPlayerID] ; $d359 cp [hl] jr nz, .asm_3dcb1 inc hl - ld a, [W_PLAYERIDLO] ; $d35a + ld a, [wPlayerID + 1] ; $d35a cp [hl] jp z, Func_3ddb0 .asm_3dcb1 @@ -84902,7 +84902,7 @@ PrintPrizePrice: ; 5287a (14:687a) call PlaceString FuncCoord 13,1 ld hl,Coord - ld de,W_PLAYERCOINS1 + ld de,wPlayerCoins ld c,%10000010 call PrintBCDNumber ret @@ -84982,7 +84982,7 @@ HandlePrizeChoice: ; 528c6 (14:68c6) .SubtractCoins ; 14:692C call LoadCoinsToSubtract ld hl,$FFA1 - ld de,W_PLAYERCOINS2 + ld de,wPlayerCoins + 1 ld c,$02 ; how many bytes ld a,$0C call Predef ; subtract coins (BCD daa operations) @@ -85702,11 +85702,11 @@ Func_5525f: ; 5525f (15:525f) add hl, de ld b, [hl] inc hl - ld a, [W_PLAYERIDHI] ; $d359 + ld a, [wPlayerID] ; $d359 cp b jr nz, .asm_552d1 ld b, [hl] - ld a, [W_PLAYERIDLO] ; $d35a + ld a, [wPlayerID + 1] ; $d35a cp b ld a, $0 jr z, .asm_552d6 @@ -101536,7 +101536,7 @@ Func_70377: ; 70377 (1c:4377) call PlaceString FuncCoord 4, 10 ; $c46c ld hl, Coord - ld de, W_PLAYERMONEY3 ; $d347 + ld de, wPlayerMoney ; $d347 ld c, $a3 call PrintBCDNumber ld hl, UnnamedText_703fa ; $43fa @@ -101584,7 +101584,7 @@ Func_70423: ; 70423 (1c:4423) ld [$cfc8], a ld [$cfc9], a ld a, $ff - ld [W_CURCHANNELPOINTER], a + ld [wMusicChannelPointer], a jp GBFadeOut2 Func_70433: ; 70433 (1c:4433) @@ -101605,12 +101605,12 @@ Func_70433: ; 70433 (1c:4433) ld de, Unknown_704d7 ; $44d7 call Func_70503 ld a, $4 - ld [W_CURCHANNELPOINTER], a + ld [wMusicChannelPointer], a ld a, $ff ld [$c0ee], a call PlaySound .asm_70464 - ld a, [W_CURCHANNELPOINTER] + ld a, [wMusicChannelPointer] and a jr nz, .asm_70464 ld a, [W_NUMINPARTY] ; $d163 @@ -102112,7 +102112,7 @@ _HandleMidJump: ; 7087e (1c:487e) ld [$c104], a ret .asm_70895 - ld a, [W_WALKCOUNTER] ; $cfc5 + ld a, [wWalkCounter] ; $cfc5 cp $0 ret nz call UpdateSprites @@ -107577,7 +107577,7 @@ Func_74ee0: ; 74ee0 (1d:4ee0) ld hl, UnnamedText_74fd8 call PrintText ld hl, $ffde - ld de, W_PLAYERMONEY1 ; $d349 + ld de, wPlayerMoney + 2 ; $d349 ld c, $3 ld a, $c call Predef ; indirect jump to Func_f836 (f836 (3:7836)) @@ -110850,10 +110850,10 @@ HiddenCoins: ; 76799 (1d:6799) ld a, $10 call Predef call EnableAutoTextBoxDrawing - ld a, [W_PLAYERCOINS1] + ld a, [wPlayerCoins] cp $99 jr nz, .RoomInCoinCase - ld a, [W_PLAYERCOINS2] + ld a, [wPlayerCoins + 1] cp $99 jr nz, .RoomInCoinCase ld a, $2c diff --git a/wram.asm b/wram.asm index 8f4bbb5e..d3e9d034 100644 --- a/wram.asm +++ b/wram.asm @@ -313,106 +313,185 @@ wListMenuID: ; cf94 ; ID used by DisplayListMenuID ds 1 + ds 48 +wWalkCounter: ; cfc5 +; walk animation counter + ds 1 -W_WALKCOUNTER EQU $CFC5 ; walk animation counter - -W_CURCHANNELPOINTER EQU $CFC7 ; (the current music channel pointer - $4000) / 3 - -W_ENEMYMOVENUM EQU $CFCC -W_ENEMYMOVEEFFECT EQU $CFCD -W_ENEMYMOVEPOWER EQU $CFCE -W_ENEMYMOVETYPE EQU $CFCF -W_ENEMYMOVEACCURACY EQU $CFD0 -W_ENEMYMOVEMAXPP EQU $CFD1 - -W_PLAYERMOVENUM EQU $CFD2 -W_PLAYERMOVEEFFECT EQU $CFD3 -W_PLAYERMOVEPOWER EQU $CFD4 -W_PLAYERMOVETYPE EQU $CFD5 -W_PLAYERMOVEACCURACY EQU $CFD6 -W_PLAYERMOVEMAXPP EQU $CFD7 - -W_ENEMYMONID EQU $CFD8 - -W_ENEMYMONNAME EQU $CFDA - -W_ENEMYMONCURHP EQU $CFE6 ; active opponent's hp (16 bits) -W_ENEMYMONNUMBER EQU $CFE8 ; active opponent's position in team (0 to 5) -W_ENEMYMONSTATUS EQU $CFE9 ; active opponent's status condition - ; bit 0 slp - ; bit 1 slp - ; bit 2 slp - ; bit 3 psn - ; bit 4 brn - ; bit 5 frz - ; bit 6 par - ; unused? (XXX confirm) -W_ENEMYMONTYPES EQU $CFEA -W_ENEMYMONTYPE1 EQU $CFEA -W_ENEMYMONTYPE2 EQU $CFEB -W_ENEMYMONMOVES EQU $CFED -W_ENEMYMONATKDEFIV EQU $CFF1 -W_ENEMYMONSPDSPCIV EQU $CFF2 -W_ENEMYMONLEVEL EQU $CFF3 -W_ENEMYMONMAXHP EQU $CFF4 ; (16 bits) -W_ENEMYMONATTACK EQU $CFF6 -W_ENEMYMONDEFENSE EQU $CFF8 -W_ENEMYMONSPEED EQU $CFFA -W_ENEMYMONSPECIAL EQU $CFFC -W_ENEMYMONPP EQU $CFFE + ds 1 + +wMusicChannelPointer: ; cfc7 +; (the current music channel address - $4000) / 3 + ds 1 + + ds 4 + +W_ENEMYMOVENUM: ; cfcc + ds 1 +W_ENEMYMOVEEFFECT: ; cfcd + ds 1 +W_ENEMYMOVEPOWER: ; cfce + ds 1 +W_ENEMYMOVETYPE: ; cfcf + ds 1 +W_ENEMYMOVEACCURACY: ; cfd0 + ds 1 +W_ENEMYMOVEMAXPP: ; cfd1 + ds 1 +W_PLAYERMOVENUM: ; cfd2 + ds 1 +W_PLAYERMOVEEFFECT: ; cfd3 + ds 1 +W_PLAYERMOVEPOWER: ; cfd4 + ds 1 +W_PLAYERMOVETYPE: ; cfd5 + ds 1 +W_PLAYERMOVEACCURACY: ; cfd6 + ds 1 +W_PLAYERMOVEMAXPP: ; cfd7 + ds 1 + +W_ENEMYMONID: ; cfd8 + ds 1 + + ds 1 + +W_ENEMYMONNAME: ; cfda + ds 11 + + ds 1 + +W_ENEMYMONCURHP: ; cfe6 +; active opponent's hp (16 bits) + ds 2 +W_ENEMYMONNUMBER: ; cfe8 +; active opponent's position in team (0 to 5) + ds 1 +W_ENEMYMONSTATUS: ; cfe9 +; active opponent's status condition + ds 1 +W_ENEMYMONTYPES: ; cfea +W_ENEMYMONTYPE1: ; cfea + ds 1 +W_ENEMYMONTYPE2: ; cfeb + ds 1 + ds 1 +W_ENEMYMONMOVES: ; cfed + ds 4 +W_ENEMYMONATKDEFIV: ; cff1 + ds 1 +W_ENEMYMONSPDSPCIV: ; cff2 + ds 1 +W_ENEMYMONLEVEL: ; cff3 + ds 1 +W_ENEMYMONMAXHP: ; cff4 + ds 2 +W_ENEMYMONATTACK: ; cff6 + ds 2 +W_ENEMYMONDEFENSE: ; cff8 + ds 2 +W_ENEMYMONSPEED: ; cffa + ds 2 +W_ENEMYMONSPECIAL: ; cffc + ds 2 + +W_ENEMYMONPP: ; cffe +; four moves (extends past $cfff) + ds 2 SECTION "WRAM Bank 1", WRAMX, BANK[1] -W_PLAYERMONNAME EQU $D009 -W_PLAYERMONID EQU $D014 -W_PLAYERMONCURHP EQU $D015 ; active opponent's hp (16 bits) -W_PLAYERMONSTATUS EQU $D018 ; the status of the player’s current monster - ; bit 0 slp - ; bit 1 slp - ; bit 2 slp - ; bit 3 psn - ; bit 4 brn - ; bit 5 frz - ; bit 6 par - ; unused? (XXX confirm) -W_PLAYERMONTYPES EQU $D019 -W_PLAYERMONTYPE1 EQU $D019 -W_PLAYERMONTYPE2 EQU $D01A -W_PLAYERMONMOVES EQU $D01C -W_PLAYERMONIVS EQU $D020 ; 4x 4 bit: atk, def, spd, spc -W_PLAYERMONLEVEL EQU $D022 -W_PLAYERMONMAXHP EQU $D023 ; (16 bits) -W_PLAYERMONATK EQU $D025 -W_PLAYERMONDEF EQU $D027 -W_PLAYERMONSPEED EQU $D029 -W_PLAYERMONSPECIAL EQU $D02B -W_PLAYERMONPP EQU $D02D - -W_TRAINERCLASS EQU $D031 - -W_ISINBATTLE EQU $D057 ; no battle, this is 0 - ; wild battle, this is 1 - ; trainer battle, this is 2 - -W_PLAYERMONSALIVEFLAGS EQU $D058 ; 6 bit array, 1 if player mon is alive - -W_CUROPPONENT EQU $D059 ; in a wild battle, this is the species of pokemon - ; in a trainer battle, this is the trainer class + $C8 - -W_BATTLETYPE EQU $D05A ; in normal battle, this is 0 - ; in old man battle, this is 1 - ; in safari battle, this is 2 - -W_LONEATTACKNO EQU $D05C ; which entry in LoneAttacks to use -W_GYMLEADERNO EQU $D05C ; it's actually the same thing as ^ -W_TRAINERNO EQU $D05D ; which instance of [youngster, lass, etc] is this? - -W_MOVEMISSED EQU $D05F - -; not entirely sure that all these bits are 100% correct -; Battle Status Byte 1 + ds 2 ; W_ENEMYMONPP + + ds 7 + +W_PLAYERMONNAME: ; d009 + ds 11 + +W_PLAYERMONID: ; d014 + ds 1 + +W_PLAYERMONCURHP: ; d015 + ds 2 + ds 1 +W_PLAYERMONSTATUS: ; d018 +; the status of the player’s current monster + ds 1 +W_PLAYERMONTYPES: ; d019 +W_PLAYERMONTYPE1: ; d019 + ds 1 +W_PLAYERMONTYPE2: ; d01a + ds 1 + ds 1 +W_PLAYERMONMOVES: ; d01c + ds 4 +W_PLAYERMONIVS: ; d020 +; 4x 4 bit: atk, def, spd, spc + ds 2 +W_PLAYERMONLEVEL: ; d022 + ds 1 +W_PLAYERMONMAXHP: ; d023 + ds 2 +W_PLAYERMONATK: ; d025 + ds 2 +W_PLAYERMONDEF: ; d027 + ds 2 +W_PLAYERMONSPEED: ; d029 + ds 2 +W_PLAYERMONSPECIAL: ; d02b + ds 2 +W_PLAYERMONPP: ; d02d + ds 4 + + + +W_TRAINERCLASS: ; d031 + ds 1 + + ds 37 + +W_ISINBATTLE: ; d057 +; no battle, this is 0 +; wild battle, this is 1 +; trainer battle, this is 2 + ds 1 + +W_PLAYERMONSALIVEFLAGS: ; d058 +; 6 bit array, 1 if player mon is alive + ds 1 + +W_CUROPPONENT: ; d059 +; in a wild battle, this is the species of pokemon +; in a trainer battle, this is the trainer class + $C8 + ds 1 + +W_BATTLETYPE: ; d05a +; in normal battle, this is 0 +; in old man battle, this is 1 +; in safari battle, this is 2 + ds 1 + + ds 1 + +W_LONEATTACKNO: ; d05c +; which entry in LoneAttacks to use +W_GYMLEADERNO: ; d05c +; it's actually the same thing as ^ + ds 1 +W_TRAINERNO: ; d05d +; which instance of [youngster, lass, etc] is this? + ds 1 + + ds 1 + +W_MOVEMISSED: ; d05f + ds 1 + + ds 2 + +W_PLAYERBATTSTATUS1: ; d062 ; bit 0 - bide ; bit 1 - thrash / petal dance ; bit 2 - attacking multiple times (e.g. double kick) @@ -421,8 +500,9 @@ W_MOVEMISSED EQU $D05F ; bit 5 - using multi-turn move (e.g. wrap) ; bit 6 - invulnerable to normal attack (using fly/dig) ; bit 7 - confusion + ds 1 -; Battle Status Byte 2 +W_PLAYERBATTSTATUS2: ; d063 ; bit 0 - X Accuracy effect ; bit 1 - protected by "mist" ; bit 2 - focus energy effect @@ -430,355 +510,387 @@ W_MOVEMISSED EQU $D05F ; bit 5 - need to recharge ; bit 6 - rage ; bit 7 - leech seeded + ds 1 -; Battle Status Byte 3 +W_PLAYERBATTSTATUS3: ; d064 ; bit 0 - toxic ; bit 1 - light screen ; bit 2 - reflect ; bit 3 - tranformed + ds 1 + + ds 2 + +W_ENEMYBATTSTATUS1: ; d067 + ds 1 +W_ENEMYBATTSTATUS2: ; d068 + ds 1 +W_ENEMYBATTSTATUS3: ; d069 + ds 1 + + ds 2 + +W_PLAYERTOXICCOUNTER: ; d06c + ds 1 +W_PLAYERDISABLEDMOVE: ; d06d + ds 1 -W_PLAYERBATTSTATUS1 EQU $D062 -W_PLAYERBATTSTATUS2 EQU $D063 -W_PLAYERBATTSTATUS3 EQU $D064 + ds 3 -W_ENEMYBATTSTATUS1 EQU $D067 -W_ENEMYBATTSTATUS2 EQU $D068 -W_ENEMYBATTSTATUS3 EQU $D069 +W_ENEMYTOXICCOUNTER: ; d071 + ds 1 +W_ENEMYDISABLEDMOVE: ; d072 + ds 1 -W_PLAYERTOXICCOUNTER EQU $D06C -W_PLAYERDISABLEDMOVE EQU $D06D + ds 1 -W_ENEMYTOXICCOUNTER EQU $D071 -W_ENEMYDISABLEDMOVE EQU $D072 +W_NUMHITS: ; d074 +; number of hits in attacks like Doubleslap, etc. + ds 1 -W_NUMHITS EQU $D074 ; number of hits in attacks like Doubleslap, etc. + ds 7 -W_ANIMATIONID EQU $D07C ; ID number of the current battle animation +W_ANIMATIONID: ; d07c +; ID number of the current battle animation + ds 1 + + ds 4 ; base coordinates of frame block -W_BASECOORDX EQU $D081 -W_BASECOORDY EQU $D082 +W_BASECOORDX: ; d081 + ds 1 +W_BASECOORDY: ; d082 + ds 1 + + ds 1 + +W_FBTILECOUNTER: ; d084 +; counts how many tiles of the current frame block have been drawn + ds 1 + + ds 1 + +W_SUBANIMFRAMEDELAY: ; d086 +; duration of each frame of the current subanimation in terms of screen refreshes + ds 1 +W_SUBANIMCOUNTER: ; d087 +; counts the number of subentries left in the current subanimation + ds 1 -W_FBTILECOUNTER EQU $D084 ; counts how many tiles of the current frame block have been drawn + ds 1 -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: ; d089 +; number of tiles in current battle animation frame block + ds 1 -W_NUMFBTILES EQU $D089 ; number of tiles in current battle animation frame block + ds 1 -W_SUBANIMTRANSFORM EQU $D08B ; controls what transformations are applied to the subanimation +W_SUBANIMTRANSFORM: ; 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 + ds 1 -W_PBSTOREDREGISTERH EQU $D08C -W_PBSTOREDREGISTERL EQU $D08D -W_PBSTOREDREGISTERD EQU $D08E -W_PBSTOREDREGISTERE EQU $D08F -W_PBSTOREDROMBANK EQU $D092 +W_PBSTOREDREGISTERH: ; d08c + ds 1 +W_PBSTOREDREGISTERL: ; d08d + ds 1 +W_PBSTOREDREGISTERD: ; d08e + ds 1 +W_PBSTOREDREGISTERE: ; d08f + ds 1 + + ds 2 + +W_PBSTOREDROMBANK: ; d092 + ds 1 + + ds 1 -W_SUBANIMADDRPTR EQU $D094 ; the address _of the address_ of the current subanimation entry (2 bytes) +W_SUBANIMADDRPTR: ; d094 +; the address _of the address_ of the current subanimation entry + ds 2 +W_SUBANIMSUBENTRYADDR: ; d096 +; the address of the current subentry of the current subanimation + ds 2 -W_SUBANIMSUBENTRYADDR EQU $D096 ; the address of the current subentry of the current subanimation (2 bytes) + ds 4 -W_FBDESTADDR EQU $D09C ; current destination address in OAM for frame blocks (2 bytes, big endian) +W_FBDESTADDR: ; d09c +; current destination address in OAM for frame blocks (big endian) + ds 2 -W_FBMODE EQU $D09E ; controls how the frame blocks are put together to form frames +W_FBMODE: ; 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) + ds 1 + + +SECTION "Sprite Buffers", SRAM + +SPRITEBUFFERSIZE EQU 7*7 * 8 ; 7 * 7 (tiles) * 8 (bytes per tile) + +S_SPRITEBUFFER0: ; a000 + ds SPRITEBUFFERSIZE +S_SPRITEBUFFER1: ; a188 + ds SPRITEBUFFERSIZE +S_SPRITEBUFFER2: ; a310 + ds SPRITEBUFFERSIZE + + +SECTION "Sprites", WRAMX[$d0a1], BANK[1] + +W_SPRITECURPOSX: ; d0a1 + ds 1 +W_SPRITECURPOSY: ; d0a2 + ds 1 +W_SPRITEWITDH: ; d0a3 + ds 1 +W_SPRITEHEIGHT: ; d0a4 + ds 1 +W_SPRITEINPUTCURBYTE: ; d0a5 +; current input byte + ds 1 +W_SPRITEINPUTBITCOUNTER: ; d0a6 +; bit offset of last read input bit + ds 1 + +W_SPRITEOUTPUTBITOFFSET: ; d0a7; 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 + ds 1 +W_SPRITELOADFLAGS: ; d0a8 ; bit 0 determines used buffer (0 -> $a188, 1 -> $a310) ; bit 1 loading last sprite chunk? (there are at most 2 chunks per load operation) -W_SPRITELOADFLAGS EQU $D0A8 -W_SPRITEUNPACKMODE EQU $D0A9 -W_SPRITEFLIPPED EQU $D0AA - -W_SPRITEINPUTPTR EQU $D0AB ; pointer to next input byte -W_SPRITEOUTPUTPTR EQU $D0AD ; pointer to current output byte -W_SPRITEOUTPUTPTRCACHED EQU $D0AF ; used to revert pointer for different bit offsets -W_SPRITEDECODETABLE0PTR EQU $D0B1 ; pointer to differential decoding table (assuming initial value 0) -W_SPRITEDECODETABLE1PTR EQU $D0B3 ; pointer to differential decoding table (assuming initial value 1) - - -; List type -; used in $D0B6 -W_LISTTYPE EQU $D0B6 - -W_MONHEADER EQU $d0b8 -W_MONHDEXNUM EQU $d0b8 -W_MONHBASESTATS EQU $d0b9 -;W_MONHBASEHP EQU $d0b9 -;W_MONHBASEATTACK EQU $d0ba -;W_MONHBASEDEFENSE EQU $d0bb -W_MONHBASESPEED EQU $d0bc -;W_MONHBASESPECIAL EQU $d0bd -W_MONHTYPES EQU $d0be -W_MONHTYPE1 EQU $d0be -W_MONHTYPE2 EQU $d0bf -W_MONHCATCHRATE EQU $d0c0 -;W_MONHBASEXP EQU $d0c1 -W_MONHSPRITEDIM EQU $d0c2 -W_MONHFRONTSPRITE EQU $d0c3 -W_MONHBACKSPRITE EQU $d0c5 -W_MONHMOVES EQU $d0c7 -;W_MONHMOVE1 EQU $d0c7 -;W_MONHMOVE2 EQU $d0c8 -;W_MONHMOVE3 EQU $d0c9 -;W_MONHMOVE4 EQU $d0ca -W_MONHGROWTHRATE EQU $d0cb -W_MONHLEARNSET EQU $d0cc ; bit field, 7 bytes -;W_MONHPADDING EQU $d0d7 - - - -W_DAMAGE EQU $D0D7 - - -W_CURENEMYLVL EQU $D127 - -W_ISLINKBATTLE EQU $D12B - -W_PRIZE1 EQU $D13D -W_PRIZE2 EQU $D13E -W_PRIZE3 EQU $D13F - -W_PLAYERNAME EQU $D158 ; 11 characters, including null - -W_NUMINPARTY EQU $D163 - -W_PARTYMON1 EQU $D164 -W_PARTYMON2 EQU $D165 -W_PARTYMON3 EQU $D166 -W_PARTYMON4 EQU $D167 -W_PARTYMON5 EQU $D168 -W_PARTYMON6 EQU $D169 -W_PARTYMONEND EQU $D16A - -W_PARTYMON1DATA EQU $D16B -W_PARTYMON1_NUM EQU $D16B -W_PARTYMON1_HP EQU $D16C -W_PARTYMON1_BOXLEVEL EQU $D16E -W_PARTYMON1_STATUS EQU $D16F -W_PARTYMON1_TYPE1 EQU $D170 -W_PARTYMON1_TYPE2 EQU $D171 -W_PARTYMON1_CRATE EQU $D172 -W_PARTYMON1_MOVE1 EQU $D173 -W_PARTYMON1_MOVE2 EQU $D174 -W_PARTYMON1_MOVE3 EQU $D175 -W_PARTYMON1_MOVE4 EQU $D176 -W_PARTYMON1_OTID EQU $D177 -W_PARTYMON1_EXP EQU $D179 -W_PARTYMON1_EVHP EQU $D17C -W_PARTYMON1_EVATTACK EQU $D17E -W_PARTYMON1_EVDEFENSE EQU $D180 -W_PARTYMON1_EVSPEED EQU $D182 -W_PARTYMON1_EVSECIAL EQU $D184 -W_PARTYMON1_IV EQU $D186 -W_PARTYMON1_MOVE1PP EQU $D188 -W_PARTYMON1_MOVE2PP EQU $D189 -W_PARTYMON1_MOVE3PP EQU $D18A -W_PARTYMON1_MOVE4PP EQU $D18B -W_PARTYMON1_LEVEL EQU $D18C -W_PARTYMON1_MAXHP EQU $D18D -W_PARTYMON1_ATACK EQU $D18F -W_PARTYMON1_DEFENSE EQU $D191 -W_PARTYMON1_SPEED EQU $D193 -W_PARTYMON1_SPECIAL EQU $D195 - -W_PARTYMON2DATA EQU $D197 -W_PARTYMON2_NUM EQU $D197 -W_PARTYMON2_HP EQU $D198 -W_PARTYMON2_BOXLEVEL EQU $D19A -W_PARTYMON2_STATUS EQU $D19B -W_PARTYMON2_TYPE1 EQU $D19C -W_PARTYMON2_TYPE2 EQU $D19D -W_PARTYMON2_CRATE EQU $D19E -W_PARTYMON2_MOVE1 EQU $D19F -W_PARTYMON2_MOVE2 EQU $D1A0 -W_PARTYMON2_MOVE3 EQU $D1A1 -W_PARTYMON2_MOVE4 EQU $D1A2 -W_PARTYMON2_OTID EQU $D1A3 -W_PARTYMON2_EXP EQU $D1A5 -W_PARTYMON2_EVHP EQU $D1A8 -W_PARTYMON2_EVATTACK EQU $D1AA -W_PARTYMON2_EVDEFENSE EQU $D1AC -W_PARTYMON2_EVSPEED EQU $D1AE -W_PARTYMON2_EVSECIAL EQU $D1B0 -W_PARTYMON2_IV EQU $D1B2 -W_PARTYMON2_MOVE1PP EQU $D1B4 -W_PARTYMON2_MOVE2PP EQU $D1B5 -W_PARTYMON2_MOVE3PP EQU $D1B6 -W_PARTYMON2_MOVE4PP EQU $D1B7 -W_PARTYMON2_LEVEL EQU $D1B8 -W_PARTYMON2_MAXHP EQU $D1B9 -W_PARTYMON2_ATACK EQU $D1BB -W_PARTYMON2_DEFENSE EQU $D1BD -W_PARTYMON2_SPEED EQU $D1BF -W_PARTYMON2_SPECIAL EQU $D1C1 - -W_PARTYMON3DATA EQU $D1C3 -W_PARTYMON3_NUM EQU $D1C3 -W_PARTYMON3_HP EQU $D1C4 -W_PARTYMON3_BOXLEVEL EQU $D1C6 -W_PARTYMON3_STATUS EQU $D1C7 -W_PARTYMON3_TYPE1 EQU $D1C8 -W_PARTYMON3_TYPE2 EQU $D1C9 -W_PARTYMON3_CRATE EQU $D1CA -W_PARTYMON3_MOVE1 EQU $D1CB -W_PARTYMON3_MOVE2 EQU $D1CC -W_PARTYMON3_MOVE3 EQU $D1CD -W_PARTYMON3_MOVE4 EQU $D1CE -W_PARTYMON3_OTID EQU $D1CF -W_PARTYMON3_EXP EQU $D1D1 -W_PARTYMON3_EVHP EQU $D1D4 -W_PARTYMON3_EVATTACK EQU $D1D6 -W_PARTYMON3_EVDEFENSE EQU $D1D8 -W_PARTYMON3_EVSPEED EQU $D1DA -W_PARTYMON3_EVSECIAL EQU $D1DC -W_PARTYMON3_IV EQU $D1DE -W_PARTYMON3_MOVE1PP EQU $D1E0 -W_PARTYMON3_MOVE2PP EQU $D1E1 -W_PARTYMON3_MOVE3PP EQU $D1E2 -W_PARTYMON3_MOVE4PP EQU $D1E3 -W_PARTYMON3_LEVEL EQU $D1E4 -W_PARTYMON3_MAXHP EQU $D1E5 -W_PARTYMON3_ATACK EQU $D1E7 -W_PARTYMON3_DEFENSE EQU $D1E9 -W_PARTYMON3_SPEED EQU $D1EB -W_PARTYMON3_SPECIAL EQU $D1ED - -W_PARTYMON4DATA EQU $D1EF -W_PARTYMON4_NUM EQU $D1EF -W_PARTYMON4_HP EQU $D1F0 -W_PARTYMON4_BOXLEVEL EQU $D1F2 -W_PARTYMON4_STATUS EQU $D1F3 -W_PARTYMON4_TYPE1 EQU $D1F4 -W_PARTYMON4_TYPE2 EQU $D1F5 -W_PARTYMON4_CRATE EQU $D1F6 -W_PARTYMON4_MOVE1 EQU $D1F7 -W_PARTYMON4_MOVE2 EQU $D1F8 -W_PARTYMON4_MOVE3 EQU $D1F9 -W_PARTYMON4_MOVE4 EQU $D1FA -W_PARTYMON4_OTID EQU $D1FB -W_PARTYMON4_EXP EQU $D1FD -W_PARTYMON4_EVHP EQU $D200 -W_PARTYMON4_EVATTACK EQU $D202 -W_PARTYMON4_EVDEFENSE EQU $D204 -W_PARTYMON4_EVSPEED EQU $D206 -W_PARTYMON4_EVSECIAL EQU $D208 -W_PARTYMON4_IV EQU $D20A -W_PARTYMON4_MOVE1PP EQU $D20C -W_PARTYMON4_MOVE2PP EQU $D20D -W_PARTYMON4_MOVE3PP EQU $D20E -W_PARTYMON4_MOVE4PP EQU $D20F -W_PARTYMON4_LEVEL EQU $D210 -W_PARTYMON4_MAXHP EQU $D211 -W_PARTYMON4_ATACK EQU $D213 -W_PARTYMON4_DEFENSE EQU $D215 -W_PARTYMON4_SPEED EQU $D217 -W_PARTYMON4_SPECIAL EQU $D219 - -W_PARTYMON5DATA EQU $D21B -W_PARTYMON5_NUM EQU $D21B -W_PARTYMON5_HP EQU $D21C -W_PARTYMON5_BOXLEVEL EQU $D21E -W_PARTYMON5_STATUS EQU $D21F -W_PARTYMON5_TYPE1 EQU $D220 -W_PARTYMON5_TYPE2 EQU $D221 -W_PARTYMON5_CRATE EQU $D222 -W_PARTYMON5_MOVE1 EQU $D223 -W_PARTYMON5_MOVE2 EQU $D224 -W_PARTYMON5_MOVE3 EQU $D225 -W_PARTYMON5_MOVE4 EQU $D226 -W_PARTYMON5_OTID EQU $D227 -W_PARTYMON5_EXP EQU $D229 -W_PARTYMON5_EVHP EQU $D22C -W_PARTYMON5_EVATTACK EQU $D22E -W_PARTYMON5_EVDEFENSE EQU $D230 -W_PARTYMON5_EVSPEED EQU $D232 -W_PARTYMON5_EVSECIAL EQU $D234 -W_PARTYMON5_IV EQU $D236 -W_PARTYMON5_MOVE1PP EQU $D238 -W_PARTYMON5_MOVE2PP EQU $D239 -W_PARTYMON5_MOVE3PP EQU $D23A -W_PARTYMON5_MOVE4PP EQU $D23B -W_PARTYMON5_LEVEL EQU $D23C -W_PARTYMON5_MAXHP EQU $D23D -W_PARTYMON5_ATACK EQU $D23F -W_PARTYMON5_DEFENSE EQU $D241 -W_PARTYMON5_SPEED EQU $D243 -W_PARTYMON5_SPECIAL EQU $D245 - -W_PARTYMON6DATA EQU $D247 -W_PARTYMON6_NUM EQU $D247 -W_PARTYMON6_HP EQU $D248 -W_PARTYMON6_BOXLEVEL EQU $D24A -W_PARTYMON6_STATUS EQU $D24B -W_PARTYMON6_TYPE1 EQU $D24C -W_PARTYMON6_TYPE2 EQU $D24D -W_PARTYMON6_CRATE EQU $D24E -W_PARTYMON6_MOVE1 EQU $D24F -W_PARTYMON6_MOVE2 EQU $D250 -W_PARTYMON6_MOVE3 EQU $D251 -W_PARTYMON6_MOVE4 EQU $D252 -W_PARTYMON6_OTID EQU $D253 -W_PARTYMON6_EXP EQU $D255 -W_PARTYMON6_EVHP EQU $D258 -W_PARTYMON6_EVATTACK EQU $D25A -W_PARTYMON6_EVDEFENSE EQU $D25C -W_PARTYMON6_EVSPEED EQU $D25E -W_PARTYMON6_EVSECIAL EQU $D260 -W_PARTYMON6_IV EQU $D262 -W_PARTYMON6_MOVE1PP EQU $D264 -W_PARTYMON6_MOVE2PP EQU $D265 -W_PARTYMON6_MOVE3PP EQU $D266 -W_PARTYMON6_MOVE4PP EQU $D267 -W_PARTYMON6_LEVEL EQU $D268 -W_PARTYMON6_MAXHP EQU $D269 -W_PARTYMON6_ATACK EQU $D26B -W_PARTYMON6_DEFENSE EQU $D26D -W_PARTYMON6_SPEED EQU $D26F -W_PARTYMON6_SPECIAL EQU $D271 - -W_PARTYMON1OT EQU $D273 -W_PARTYMON2OT EQU $D27E -W_PARTYMON3OT EQU $D289 -W_PARTYMON4OT EQU $D294 -W_PARTYMON5OT EQU $D29F -W_PARTYMON6OT EQU $D2AA - -W_PARTYMON1NAME EQU $D2B5 -W_PARTYMON2NAME EQU $D2C0 -W_PARTYMON3NAME EQU $D2CB -W_PARTYMON4NAME EQU $D2D6 -W_PARTYMON5NAME EQU $D2E1 -W_PARTYMON6NAME EQU $D2EC + ds 1 +W_SPRITEUNPACKMODE: ; d0a9 + ds 1 +W_SPRITEFLIPPED: ; d0aa + ds 1 + +W_SPRITEINPUTPTR: ; d0ab +; pointer to next input byte + ds 2 +W_SPRITEOUTPUTPTR: ; d0ad +; pointer to current output byte + ds 2 +W_SPRITEOUTPUTPTRCACHED: ; d0af +; used to revert pointer for different bit offsets + ds 2 +W_SPRITEDECODETABLE0PTR: ; d0b1 +; pointer to differential decoding table (assuming initial value 0) + ds 2 +W_SPRITEDECODETABLE1PTR: ; d0b3 +; pointer to differential decoding table (assuming initial value 1) + ds 2 + + ds 1 + +W_LISTTYPE: ; d0b6 + ds 1 + + ds 1 + +W_MONHEADER: ; d0b8 +W_MONHDEXNUM: ; d0b8 + ds 1 + +W_MONHBASESTATS: ; d0b9 +W_MONHBASEHP: ; d0b9 + ds 1 +W_MONHBASEATTACK: ; d0ba + ds 1 +W_MONHBASEDEFENSE: ; d0bb + ds 1 +W_MONHBASESPEED: ; d0bc + ds 1 +W_MONHBASESPECIAL: ; d0bd + ds 1 + +W_MONHTYPES: ; d0be +W_MONHTYPE1: ; d0be + ds 1 +W_MONHTYPE2: ; d0bf + ds 1 + +W_MONHCATCHRATE: ; d0c0 + ds 1 +W_MONHBASEXP: ; d0c1 + ds 1 +W_MONHSPRITEDIM: ; d0c2 + ds 1 +W_MONHFRONTSPRITE: ; d0c3 + ds 2 +W_MONHBACKSPRITE: ; d0c5 + ds 2 + +W_MONHMOVES: ; d0c7 + ds 4 + +W_MONHGROWTHRATE: ; d0cb + ds 1 + +W_MONHLEARNSET: ; d0cc +; bit field + ds 7 + + ds 4 + +W_MONHPADDING: ; d0d7 + + +W_DAMAGE: ; d0d7 + ds 1 + + ds 79 + +W_CURENEMYLVL: ; d127 + ds 1 + + ds 3 + +W_ISLINKBATTLE: ; d12b + ds 1 + + ds 17 + +W_PRIZE1: ; d13d + ds 1 +W_PRIZE2: ; d13e + ds 1 +W_PRIZE3: ; d13f + ds 1 + + ds 24 + +W_PLAYERNAME: ; d158 + ds 11 + +W_NUMINPARTY: ; d163 + ds 1 +W_PARTYMON1: ; d164 + ds 1 +W_PARTYMON2: ; d165 + ds 1 +W_PARTYMON3: ; d166 + ds 1 +W_PARTYMON4: ; d167 + ds 1 +W_PARTYMON5: ; d168 + ds 1 +W_PARTYMON6: ; d169 + ds 1 +W_PARTYMONEND: ; d16a + ds 1 + +W_PARTYMON1DATA: ; d16b +W_PARTYMON1_NUM: ; d16b + ds 1 +W_PARTYMON1_HP: ; d16c + ds 2 +W_PARTYMON1_BOXLEVEL: ; d16e + ds 1 +W_PARTYMON1_STATUS: ; d16f + ds 1 +W_PARTYMON1_TYPE1: ; d170 + ds 1 +W_PARTYMON1_TYPE2: ; d171 + ds 1 +W_PARTYMON1_CRATE: ; d172 + ds 1 +W_PARTYMON1_MOVE1: ; d173 + ds 1 +W_PARTYMON1_MOVE2: ; d174 + ds 1 +W_PARTYMON1_MOVE3: ; d175 + ds 1 +W_PARTYMON1_MOVE4: ; d176 + ds 1 +W_PARTYMON1_OTID: ; d177 + ds 2 +W_PARTYMON1_EXP: ; d179 + ds 3 +W_PARTYMON1_EVHP: ; d17c + ds 2 +W_PARTYMON1_EVATTACK: ; d17e + ds 2 +W_PARTYMON1_EVDEFENSE: ; d180 + ds 2 +W_PARTYMON1_EVSPEED: ; d182 + ds 2 +W_PARTYMON1_EVSECIAL: ; d184 + ds 2 +W_PARTYMON1_IV: ; d186 + ds 2 +W_PARTYMON1_MOVE1PP: ; d188 + ds 1 +W_PARTYMON1_MOVE2PP: ; d189 + ds 1 +W_PARTYMON1_MOVE3PP: ; d18a + ds 1 +W_PARTYMON1_MOVE4PP: ; d18b + ds 1 +W_PARTYMON1_LEVEL: ; d18c + ds 1 +W_PARTYMON1_MAXHP: ; d18d + ds 2 +W_PARTYMON1_ATACK: ; d18f + ds 2 +W_PARTYMON1_DEFENSE: ; d191 + ds 2 +W_PARTYMON1_SPEED: ; d193 + ds 2 +W_PARTYMON1_SPECIAL: ; d195 + ds 2 + +W_PARTYMON2DATA: ; d197 + ds 44 +W_PARTYMON3DATA: ; d1c3 + ds 44 +W_PARTYMON4DATA: ; d1ef + ds 44 +W_PARTYMON5DATA: ; d21b + ds 44 +W_PARTYMON6DATA: ; d247 + ds 44 + +W_PARTYMON1OT: ; d273 + ds 11 +W_PARTYMON2OT: ; d27e + ds 11 +W_PARTYMON3OT: ; d289 + ds 11 +W_PARTYMON4OT: ; d294 + ds 11 +W_PARTYMON5OT: ; d29f + ds 11 +W_PARTYMON6OT: ; d2aa + ds 11 + +W_PARTYMON1NAME: ; d2b5 + ds 11 +W_PARTYMON2NAME: ; d2c0 + ds 11 +W_PARTYMON3NAME: ; d2cb + ds 11 +W_PARTYMON4NAME: ; d2d6 + ds 11 +W_PARTYMON5NAME: ; d2e1 + ds 11 +W_PARTYMON6NAME: ; d2ec + ds 11 SECTION "Pokedex", WRAMX[$d2f7], BANK[1] @@ -792,59 +904,21 @@ wPokedexSeen: ; d30a wPokedexSeenEnd: -;number of items in bag -W_NUMBAGITEMS EQU $D31D -; BAGITEM01 is an item id -; BAGCOUNT01 is how many of this item -W_BAGITEM01 EQU $D31E -W_BAGITEM01QTY EQU $D31F -W_BAGITEM02 EQU $D320 -W_BAGITEM02QTY EQU $D321 -W_BAGITEM03 EQU $D322 -W_BAGITEM03QTY EQU $D323 -W_BAGITEM04 EQU $D324 -W_BAGITEM04QTY EQU $D325 -W_BAGITEM05 EQU $D326 -W_BAGITEM05QTY EQU $D327 -W_BAGITEM06 EQU $D328 -W_BAGITEM06QTY EQU $D329 -W_BAGITEM07 EQU $D32A -W_BAGITEM07QTY EQU $D32B -W_BAGITEM08 EQU $D32C -W_BAGITEM08QTY EQU $D32D -W_BAGITEM09 EQU $D32E -W_BAGITEM09QTY EQU $D32F -W_BAGITEM10 EQU $D330 -W_BAGITEM10QTY EQU $D331 -W_BAGITEM11 EQU $D332 -W_BAGITEM11QTY EQU $D333 -W_BAGITEM12 EQU $D334 -W_BAGITEM12QTY EQU $D335 -W_BAGITEM13 EQU $D336 -W_BAGITEM13QTY EQU $D337 -W_BAGITEM14 EQU $D338 -W_BAGITEM14QTY EQU $D339 -W_BAGITEM15 EQU $D33A -W_BAGITEM15QTY EQU $D33B -W_BAGITEM16 EQU $D33C -W_BAGITEM16QTY EQU $D33D -W_BAGITEM17 EQU $D33E -W_BAGITEM17QTY EQU $D33F -W_BAGITEM18 EQU $D340 -W_BAGITEM18QTY EQU $D341 -W_BAGITEM19 EQU $D342 -W_BAGITEM19QTY EQU $D343 -W_BAGITEM20 EQU $D344 -W_BAGITEM20QTY EQU $D345 +wNumBagItems: ; d31d + ds 1 +wBagItems: ; d31e +; item, quantity + ds 20 * 2 + ds 1 ; end ; money is in decimal -W_PLAYERMONEY3 EQU $D347 -W_PLAYERMONEY2 EQU $D348 -W_PLAYERMONEY1 EQU $D349 +wPlayerMoney: ; d347 + ds 3 -W_RIVALNAME EQU $D34A ; 11 characters, including null +W_RIVALNAME: ; d34a + ds 11 -W_OPTIONS EQU $D355 +W_OPTIONS: ; d355 ; bit 7 = battle animation ; 0: On ; 1: Off @@ -855,13 +929,22 @@ W_OPTIONS EQU $D355 ; 1: Fast ; 3: Medium ; 5: Slow + ds 1 -W_OBTAINEDBADGES EQU $D356 +W_OBTAINEDBADGES: ; d356 + ds 1 -W_PLAYERIDHI EQU $D359 -W_PLAYERIDLO EQU $D35A + ds 2 -W_CURMAP EQU $D35E +wPlayerID: ; d359 + ds 2 + + ds 3 + +W_CURMAP: ; d35e + ds 1 + + ds 2 W_YCOORD EQU $D361 ; player’s position on the current map W_XCOORD EQU $D362 @@ -899,122 +982,32 @@ 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 + +SECTION "Items", WRAMX[$d53a], BANK[1] + +wNumBoxItems: ; d53a + ds 1 +wBoxItems: ; d53b +; item, quantity + ds 50 * 2 + ds 1 ; end + + ds 4 ; 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 +wPlayerCoins: ; d5a4 + ds 2 + +W_MISSABLEOBJECTFLAGS: ; d5a6 +; bit array of missable objects. set = removed + ds 40 +W_MISSABLEOBJECTLIST: ; d5ce ; 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 + ds 17 * 2 W_GAMEPROGRESSFLAGS EQU $D5F0 ; $c8 bytes W_OAKSLABCURSCRIPT EQU $D5F0 -- cgit v1.3.1-sl0p From 197efee45811e1416576c1c96093ba4a1bcf0319 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sun, 8 Dec 2013 14:25:19 -0500 Subject: even more wram labels --- wram.asm | 114 ++++++++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 87 insertions(+), 27 deletions(-) (limited to 'wram.asm') diff --git a/wram.asm b/wram.asm index d3e9d034..63b1cd88 100644 --- a/wram.asm +++ b/wram.asm @@ -946,41 +946,101 @@ W_CURMAP: ; d35e ds 2 -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_YCOORD: ; d361 +; player’s position on the current map + ds 1 + +W_XCOORD: ; d362 + ds 1 + +W_YBLOCKCOORD: ; d363 +; player's y position (by block) + ds 1 + +W_XBLOCKCOORD: ; d364 + ds 3 + +W_CURMAPTILESET: ; d367 + ds 1 + +W_CURMAPHEIGHT: ; d368 +; blocks + ds 1 + +W_CURMAPWIDTH: ; d369 +; blocks + ds 1 + +W_MAPDATAPTR: ; d36a + ds 2 + +W_MAPTEXTPTR: ; d36c + ds 2 + +W_MAPSCRIPTPTR: ; d36e + ds 2 + +W_MAPCONNECTIONS: ; d370 +; connection byte + ds 1 + +W_MAPCONN1PTR: ; d371 + ds 2 + ds 9 -W_CURMAPTILESET EQU $D367 -W_CURMAPHEIGHT EQU $D368 ; blocks -W_CURMAPWIDTH EQU $D369 ; blocks +W_MAPCONN2PTR: ; d37c + ds 2 + ds 9 + +W_MAPCONN3PTR: ; d387 + ds 2 + ds 9 + +W_MAPCONN4PTR: ; d392 + ds 2 + ds 9 -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: ; d39d +; sprite set for the current map (11 sprite picture ID's) + ds 11 -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_SPRITESETID: ; d3a8 +; sprite set ID for the current map + ds 1 -W_NUMSPRITES EQU $D4E1 ; number of sprites on the current map + ds 312 +W_NUMSPRITES: ; d4e1 +; number of sprites on the current map ; two bytes per sprite (movement byte 2 , text ID) -W_MAPSPRITEDATA EQU $D4e4 + ds 3 +W_MAPSPRITEDATA: ; 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 + ds 32 + +W_MAPSPRITEEXTRADATA: ; d504 + ds 39 + +W_TILESETBANK: ; d52b + ds 1 + +W_TILESETBLOCKSPTR: ; d52c +; maps blocks (4x4 tiles) to tiles + ds 2 + +W_TILESETGFXPTR: ; d52e + ds 2 + +W_TILESETCOLLISIONPTR: ; d530 +; list of all walkable tiles + ds 2 + +W_TILESETTALKINGOVERTILES: ; d532 + ds 3 + +W_GRASSTILE: ; d535 + ds 1 SECTION "Items", WRAMX[$d53a], BANK[1] -- cgit v1.3.1-sl0p From f671ebc14350eb3fb9c2c9ea23b837ec7aa5c790 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sun, 8 Dec 2013 14:48:17 -0500 Subject: wram labels and clarify safari zone step counter --- main.asm | 18 +-- wram.asm | 376 ++++++++++++++++++++++++++++++++++++++++++--------------------- 2 files changed, 258 insertions(+), 136 deletions(-) (limited to 'wram.asm') diff --git a/main.asm b/main.asm index 698d7d22..7a5f4df5 100755 --- a/main.asm +++ b/main.asm @@ -21210,7 +21210,7 @@ Func_c52f: ; c52f (3:452f) call TextBoxBorder FuncCoord 1, 1 ; $c3b5 ld hl, Coord - ld de, W_SAFARITIMER1 ; $d70d + ld de, wSafariSteps ; $d70d ld bc, $203 call PrintNumber FuncCoord 4, 1 ; $c3b8 @@ -43819,17 +43819,17 @@ Func_1e988: ; 1e988 (7:6988) jr asm_1e9ab Func_1e997: ; 1e997 (7:6997) - ld a, [W_SAFARITIMER1] ; $d70d + ld a, [wSafariSteps] ; $d70d ld b, a - ld a, [W_SAFARITIMER2] ; $d70e + ld a, [wSafariSteps + 1] ; $d70e ld c, a or b jr z, asm_1e9b0 dec bc ld a, b - ld [W_SAFARITIMER1], a ; $d70d + ld [wSafariSteps], a ; $d70d ld a, c - ld [W_SAFARITIMER2], a ; $d70e + ld [wSafariSteps + 1], a ; $d70e asm_1e9ab: ; 1e9ab (7:69ab) xor a ld [$da46], a @@ -108087,10 +108087,10 @@ SafariZoneEntranceText4: ; 752ca (1d:52ca) call PrintText ld a, $1e ld [$da47], a - ld a, $1 - ld [$d70d], a - ld a, $f6 - ld [$d70e], a + ld a, 502 / $100 + ld [wSafariSteps], a + ld a, 502 % $100 + ld [wSafariSteps + 1], a ld a, $40 ld c, $3 call Func_752a3 diff --git a/wram.asm b/wram.asm index 63b1cd88..18812de7 100644 --- a/wram.asm +++ b/wram.asm @@ -1069,133 +1069,255 @@ W_MISSABLEOBJECTLIST: ; d5ce ; terminated with $FF ds 17 * 2 -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 +W_GAMEPROGRESSFLAGS: ; d5f0 +; $c8 bytes + ds 0 + +W_OAKSLABCURSCRIPT: ; d5f0 + ds 1 +W_PALLETTOWNCURSCRIPT: ; d5f1 + ds 1 + ds 1 +W_BLUESHOUSECURSCRIPT: ; d5f3 + ds 1 +W_VIRIDIANCITYCURSCRIPT: ; d5f4 + ds 1 + ds 2 +W_PEWTERCITYCURSCRIPT: ; d5f7 + ds 1 +W_ROUTE3CURSCRIPT: ; d5f8 + ds 1 +W_ROUTE4CURSCRIPT: ; d5f9 + ds 1 + ds 1 +W_VIRIDIANGYMCURSCRIPT: ; d5fb + ds 1 +W_PEWTERGYMCURSCRIPT: ; d5fc + ds 1 +W_CERULEANGYMCURSCRIPT: ; d5fd + ds 1 +W_VERMILIONGYMCURSCRIPT: ; d5fe + ds 1 +W_CELADONGYMCURSCRIPT: ; d5ff + ds 1 +W_ROUTE6CURSCRIPT: ; d600 + ds 1 +W_ROUTE8CURSCRIPT: ; d601 + ds 1 +W_ROUTE24CURSCRIPT: ; d602 + ds 1 +W_ROUTE25CURSCRIPT: ; d603 + ds 1 +W_ROUTE9CURSCRIPT: ; d604 + ds 1 +W_ROUTE10CURSCRIPT: ; d605 + ds 1 +W_MTMOON1CURSCRIPT: ; d606 + ds 1 +W_MTMOON3CURSCRIPT: ; d607 + ds 1 +W_SSANNE8CURSCRIPT: ; d608 + ds 1 +W_SSANNE9CURSCRIPT: ; d609 + ds 1 +W_ROUTE22CURSCRIPT: ; d60a + ds 1 + ds 1 +W_REDSHOUSE2CURSCRIPT: ; d60c + ds 1 +W_VIRIDIANMARKETCURSCRIPT: ; d60d + ds 1 +W_ROUTE22GATECURSCRIPT: ; d60e + ds 1 +W_CERULEANCITYCURSCRIPT: ; d60f + ds 1 + ds 7 +W_SSANNE5CURSCRIPT: ; d617 + ds 1 +W_VIRIDIANFORESTCURSCRIPT: ; d618 + ds 1 +W_MUSEUMF1CURSCRIPT: ; d619 + ds 1 +W_ROUTE13CURSCRIPT: ; d61a + ds 1 +W_ROUTE14CURSCRIPT: ; d61b + ds 1 +W_ROUTE17CURSCRIPT: ; d61c + ds 1 +W_ROUTE19CURSCRIPT: ; d61d + ds 1 +W_ROUTE21CURSCRIPT: ; d61e + ds 1 +W_SAFARIZONEENTRANCECURSCRIPT: ; d61f + ds 1 +W_ROCKTUNNEL2CURSCRIPT: ; d620 + ds 1 +W_ROCKTUNNEL1CURSCRIPT: ; d621 + ds 1 + ds 1 +W_ROUTE11CURSCRIPT: ; d623 + ds 1 +W_ROUTE12CURSCRIPT: ; d624 + ds 1 +W_ROUTE15CURSCRIPT: ; d625 + ds 1 +W_ROUTE16CURSCRIPT: ; d626 + ds 1 +W_ROUTE18CURSCRIPT: ; d627 + ds 1 +W_ROUTE20CURSCRIPT: ; d628 + ds 1 +W_SSANNE10CURSCRIPT: ; d629 + ds 1 +W_VERMILIONCITYCURSCRIPT: ; d62a + ds 1 +W_POKEMONTOWER2CURSCRIPT: ; d62b + ds 1 +W_POKEMONTOWER3CURSCRIPT: ; d62c + ds 1 +W_POKEMONTOWER4CURSCRIPT: ; d62d + ds 1 +W_POKEMONTOWER5CURSCRIPT: ; d62e + ds 1 +W_POKEMONTOWER6CURSCRIPT: ; d62f + ds 1 +W_POKEMONTOWER7CURSCRIPT: ; d630 + ds 1 +W_ROCKETHIDEOUT1CURSCRIPT: ; d631 + ds 1 +W_ROCKETHIDEOUT2CURSCRIPT: ; d632 + ds 1 +W_ROCKETHIDEOUT3CURSCRIPT: ; d633 + ds 1 +W_ROCKETHIDEOUT4CURSCRIPT: ; d634 + ds 2 +W_ROUTE6GATECURSCRIPT: ; d636 + ds 1 +W_ROUTE8GATECURSCRIPT: ; d637 + ds 2 +W_CINNABARISLANDCURSCRIPT: ; d639 + ds 1 +W_MANSION1CURSCRIPT: ; d63a + ds 2 +W_MANSION2CURSCRIPT: ; d63c + ds 1 +W_MANSION3CURSCRIPT: ; d63d + ds 1 +W_MANSION4CURSCRIPT: ; d63e + ds 1 +W_VICTORYROAD2CURSCRIPT: ; d63f + ds 1 +W_VICTORYROAD3CURSCRIPT: ; d640 + ds 2 +W_FIGHTINGDOJOCURSCRIPT: ; d642 + ds 1 +W_SILPHCO2CURSCRIPT: ; d643 + ds 1 +W_SILPHCO3CURSCRIPT: ; d644 + ds 1 +W_SILPHCO4CURSCRIPT: ; d645 + ds 1 +W_SILPHCO5CURSCRIPT: ; d646 + ds 1 +W_SILPHCO6CURSCRIPT: ; d647 + ds 1 +W_SILPHCO7CURSCRIPT: ; d648 + ds 1 +W_SILPHCO8CURSCRIPT: ; d649 + ds 1 +W_SILPHCO9CURSCRIPT: ; d64a + ds 1 +W_HALLOFFAMEROOMCURSCRIPT: ; d64b + ds 1 +W_GARYCURSCRIPT: ; d64c + ds 1 +W_LORELEICURSCRIPT: ; d64d + ds 1 +W_BRUNOCURSCRIPT: ; d64e + ds 1 +W_AGATHACURSCRIPT: ; d64f + ds 1 +W_UNKNOWNDUNGEON3CURSCRIPT: ; d650 + ds 1 +W_VICTORYROAD1CURSCRIPT: ; d651 + ds 1 + ds 1 +W_LANCECURSCRIPT: ; d653 + ds 1 + ds 4 +W_SILPHCO10CURSCRIPT: ; d658 + ds 1 +W_SILPHCO11CURSCRIPT: ; d659 + ds 1 + ds 1 +W_FUCHSIAGYMCURSCRIPT: ; d65b + ds 1 +W_SAFFRONGYMCURSCRIPT: ; d65c + ds 1 + ds 1 +W_CINNABARGYMCURSCRIPT: ; d65e + ds 1 +W_CELADONGAMECORNERCURSCRIPT: ; d65f + ds 1 +W_ROUTE16GATECURSCRIPT: ; d660 + ds 1 +W_BILLSHOUSECURSCRIPT: ; d661 + ds 1 +W_ROUTE5GATECURSCRIPT: ; d662 + ds 1 +W_POWERPLANTCURSCRIPT: ; d663 +; overload + ds 0 +W_ROUTE7GATECURSCRIPT: ; d663 +; overload + ds 1 + ds 1 +W_SSANNE2CURSCRIPT: ; d665 + ds 1 +W_SEAFOAMISLANDS4CURSCRIPT: ; d666 + ds 1 +W_ROUTE23CURSCRIPT: ; d667 + ds 1 +W_SEAFOAMISLANDS5CURSCRIPT: ; d668 + ds 1 +W_ROUTE18GATECURSCRIPT: ; d669 + ds 1 + + ds 161 + +W_TOWNVISITEDFLAG: ; d70b +; 2 bytes bit array, 1 means visited + ds 2 + +wSafariSteps: ; d70d +; starts at 502 + ds 2 + +W_FOSSILITEM: ; d70f +; item given to cinnabar lab + ds 1 + +W_FOSSILMON: ; d710 +; mon that will result from the item + ds 1 + + ds 2 + +W_ENEMYMONORTRAINERCLASS: ; d713 +; trainer classes start at $c8 + ds 1 + + ds 1 + +W_RIVALSTARTER: ; d715 + ds 1 + + ds 1 + +W_PLAYERSTARTER: ; d717 + ds 1 + + ds 27 ; 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 -- cgit v1.3.1-sl0p From dee494304392bdb9504560438dc5374f0db5b906 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sun, 8 Dec 2013 14:58:05 -0500 Subject: finish off wram labels and fix up mistaken label overloads --- main.asm | 38 ++++++++++---------- wram.asm | 123 +++++++++++++++++++++++++++++++++++++++++++++------------------ 2 files changed, 107 insertions(+), 54 deletions(-) (limited to 'wram.asm') diff --git a/main.asm b/main.asm index 7a5f4df5..677e6b03 100755 --- a/main.asm +++ b/main.asm @@ -11282,7 +11282,7 @@ LoadMonData_: ; 45b6 (1:45b6) ld a,[$cc49] cp a,$01 jr c,.getMonEntry - ld hl,$d8a4 ; enemy pokemon 1 data + ld hl,wEnemyMons ; enemy pokemon 1 data jr z,.getMonEntry cp a,$02 ld hl,W_BOXMON1DATA ; box pokemon 1 data @@ -13088,7 +13088,7 @@ Func_5317: ; 5317 (1:5317) inc de dec c jr nz, .asm_5446 - ld de, W_ENEMYMONCOUNT ; $d89c + ld de, wEnemyPartyCount ; $d89c ld bc, $194 .asm_5456 ld a, [hli] @@ -13266,7 +13266,7 @@ Func_5530 ld hl, Func_39bd5 ld b, $e call Bankswitch - ld hl, $d8a4 + ld hl, wEnemyMons call Func_57d6 jp .asm_565b .asm_55b0 @@ -13677,7 +13677,7 @@ Func_5849: ld de, $cd4e ld bc, $000b call CopyData - ld hl, $d8a4 + ld hl, wEnemyMons ld a, [$cd3e] ld bc, $002c call AddNTimes @@ -13707,7 +13707,7 @@ Func_5849: add hl, de ld a, [hl] ld [$cf91], a - ld hl, $d8a4 + ld hl, wEnemyMons ld a, c ld bc, $002c call AddNTimes @@ -30109,7 +30109,7 @@ _AddPokemonToParty: ; f2e5 (3:72e5) ld a, [$cc49] and $f jr z, .asm_f2f2 - ld de, W_ENEMYMONCOUNT ; $d89c + ld de, wEnemyPartyCount ; $d89c .asm_f2f2 ld a, [de] inc a @@ -30158,7 +30158,7 @@ _AddPokemonToParty: ; f2e5 (3:72e5) ld a, [$cc49] and $f jr z, .asm_f34c - ld hl, W_WATERRATE ; $d8a4 + ld hl, wEnemyMons ; $d8a4 .asm_f34c ld a, [$FF00+$e4] dec a @@ -54969,7 +54969,7 @@ Func_39bd5: ; 39bd5 (e:5bd5) ld a, [$d11b] cp $1 jr nz, .asm_39be6 - ld hl, W_ENEMYMONCOUNT ; $d89c + ld hl, wEnemyPartyCount ; $d89c ld de, $d9ac ld a, $6 jr .asm_39c18 @@ -55040,10 +55040,10 @@ ReadTrainer: ; 39c53 (e:5c53) and a ret nz -; set [W_ENEMYMONCOUNT] to 0, [$D89D] to FF +; set [wEnemyPartyCount] to 0, [$D89D] to FF ; XXX first is total enemy pokemon? ; XXX second is species of first pokemon? - ld hl,W_ENEMYMONCOUNT + ld hl,wEnemyPartyCount xor a ld [hli],a dec a @@ -56303,7 +56303,7 @@ Function6718: ; 3a718 (e:6718) jp DecrementAICount Function672A: ; 3a72a (e:672a) - ld a,[W_ENEMYMONCOUNT] + ld a,[wEnemyPartyCount] ld c,a ld hl,W_ENEMYMON1HP @@ -56527,8 +56527,8 @@ SetupOwnPartyPokeballs: ; 3a869 (e:6869) SetupEnemyPartyPokeballs: ; 3a887 (e:6887) call Func_3a919 - ld hl, $d8a4 - ld de, W_ENEMYMONCOUNT ; $d89c + ld hl, wEnemyMons + ld de, wEnemyPartyCount ; $d89c call SetupPokeballs ld hl, W_BASECOORDX ; $d081 ld a, $48 @@ -56666,8 +56666,8 @@ Func_3a948: ; 3a948 (e:6948) ld [$cd3e], a ld hl, wOAMBuffer call Func_3a8e1 - ld hl, W_WATERRATE ; $d8a4 - ld de, W_ENEMYMONCOUNT ; $d89c + ld hl, wEnemyMons ; $d8a4 + ld de, wEnemyPartyCount ; $d89c call SetupPokeballs ld hl, W_BASECOORDX ; $d081 ld a, $50 @@ -59813,7 +59813,7 @@ Func_3c11e: ; 3c11e (f:411e) ld [$cd6a], a inc a ld [$d11d], a - ld hl, W_WATERMONS ; $d8a5 (aliases: W_ENEMYMON1HP) + ld hl, W_ENEMYMON1HP ; $d8a5 ld bc, $2b ld d, $3 .asm_3c134 @@ -60527,10 +60527,10 @@ Func_3c643: ; 3c643 (f:4643) ret Func_3c64f: ; 3c64f (f:464f) - ld a, [W_ENEMYMONCOUNT] ; $d89c + ld a, [wEnemyPartyCount] ; $d89c ld b, a xor a - ld hl, W_WATERMONS ; $d8a5 (aliases: W_ENEMYMON1HP) + ld hl, W_ENEMYMON1HP ; $d8a5 ld de, $2c .asm_3c65a or [hl] @@ -61303,7 +61303,7 @@ Func_3cba6: ; 3cba6 (f:4ba6) Func_3cc13: ; 3cc13 (f:4c13) ld a, [wWhichPokemon] ; $cf92 ld bc, $2c - ld hl, W_WATERRATE ; $d8a4 + ld hl, wEnemyMons ; $d8a4 call AddNTimes ld de, $cfe5 ld bc, $c diff --git a/wram.asm b/wram.asm index 18812de7..1605a6f0 100644 --- a/wram.asm +++ b/wram.asm @@ -1319,59 +1319,112 @@ W_PLAYERSTARTER: ; d717 ds 27 + +W_FLAGS_D733: ; d733 ; 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 + ds 340 +W_GRASSRATE: ; d887 + ds 1 -W_GRASSRATE EQU $D887 -W_GRASSMONS EQU $D888 -W_WATERRATE EQU $D8A4 ; OVERLOADED -W_WATERMONS EQU $D8A5 ; OVERLOADED +W_GRASSMONS: ; d888 + ds 20 -W_ENEMYMONCOUNT EQU $D89C +wEnemyPartyCount: ; d89c + ds 1 +wEnemyPartyMons: ; d89d + ds 6 + ds 1 ; end -W_ENEMYMON1HP EQU $D8A5 ; 16 bits +; Overload enemy party data +W_WATERRATE EQU $d8a4 +W_WATERMONS EQU $d8a5 -W_ENEMYMON1MOVE3 EQU $D8AE +wEnemyMons: -W_ENEMYMON2MOVE3 EQU $D8DA +wEnemyMon1: ; d8a4 +wEnemyMon1Species: ; d8a4 + ds 1 +W_ENEMYMON1HP: ; d8a5 + ds 2 -W_ENEMYMON3MOVE3 EQU $D906 + ds 7 -W_ENEMYMON4MOVE3 EQU $D932 +W_ENEMYMON1MOVE3: ; d8ae + ds 44 +W_ENEMYMON2MOVE3: ; d8da + ds 44 +W_ENEMYMON3MOVE3: ; d906 + ds 44 +W_ENEMYMON4MOVE3: ; d932 + ds 44 +W_ENEMYMON5MOVE3: ; d95e + ds 44 +W_ENEMYMON6MOVE3: ; d98a + ds 34 -W_ENEMYMON5MOVE3 EQU $D95E +W_ENEMYMON1OT: ; d9ac + ds 11 +W_ENEMYMON2OT: ; d9b7 + ds 11 +W_ENEMYMON3OT: ; d9c2 + ds 11 +W_ENEMYMON4OT: ; d9cd + ds 11 +W_ENEMYMON5OT: ; d9d8 + ds 11 +W_ENEMYMON6OT: ; d9e3 + ds 11 -W_ENEMYMON6MOVE3 EQU $D98A +W_ENEMYMON1NAME: ; d9ee + ds 11 +W_ENEMYMON2NAME: ; d9f9 + ds 11 +W_ENEMYMON3NAME: ; da04 + ds 11 +W_ENEMYMON4NAME: ; da0f + ds 11 +W_ENEMYMON5NAME: ; da1a + ds 11 +W_ENEMYMON6NAME: ; da25 + ds 11 -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_TRAINERHEADERPTR: ; da30 + ds 2 -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 + ds 7 +W_CURMAPSCRIPT: ; da39 ; 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 + ds 1 -W_PLAYTIMEHOURS EQU $DA40 ; two bytes -W_PLAYTIMEMINUTES EQU $DA42 ; two bytes -W_PLAYTIMESECONDS EQU $DA44 ; one byte -W_PLAYTIMEFRAMES EQU $DA45 ; one byte + ds 6 -W_NUMSAFARIBALLS EQU $DA47 +W_PLAYTIMEHOURS: ; da40 + ds 2 +W_PLAYTIMEMINUTES: ; da42 + ds 2 +W_PLAYTIMESECONDS: ; da44 + ds 1 +W_PLAYTIMEFRAMES: ; da45 + ds 1 + ds 1 + +W_NUMSAFARIBALLS: ; da47 + ds 1 + + ds 56 + +W_NUMINBOX: ; da80 ; number of mons in current box -W_NUMINBOX EQU $DA80 -W_BOXMON1DATA EQU $DA96 -W_BOXMON2DATA EQU $DAB7 + ds 22 + +W_BOXMON1DATA: ; da96 + ds 33 +W_BOXMON2DATA: ; dab7 + ds 33 * 19 + +; dd2a -- cgit v1.3.1-sl0p From 323a1a638fb2b35a93506f1c3ca13f87e9357467 Mon Sep 17 00:00:00 2001 From: "U-Fish-PC\\Daniel" Date: Sun, 15 Dec 2013 13:50:05 -0500 Subject: incbin killing part 2 --- main.asm | 1549 ++++++++++++++++++++++++++++++++------------ maps/unusedblocks58d7d.blk | 2 + maps/unusedblocks601f8.blk | 1 + maps/unusedblocks60cef.blk | 1 + wram.asm | 2 +- 5 files changed, 1130 insertions(+), 425 deletions(-) create mode 100755 maps/unusedblocks58d7d.blk create mode 100755 maps/unusedblocks601f8.blk create mode 100755 maps/unusedblocks60cef.blk (limited to 'wram.asm') diff --git a/main.asm b/main.asm index 692c0245..caa5fbbf 100755 --- a/main.asm +++ b/main.asm @@ -1214,12 +1214,12 @@ HandleBlackOut: ; 0931 (0:0931) jp Func_5d5f StopMusic: ; 0951 (0:0951) - ld [wMusicChannelPointer],a + ld [wMusicHeaderPointer],a ld a,$ff ld [$c0ee],a call PlaySound .waitLoop - ld a,[wMusicChannelPointer] + ld a,[wMusicHeaderPointer] and a jr nz,.waitLoop jp StopAllSounds @@ -5271,7 +5271,7 @@ StopAllSounds: ; 200e (0:200e) ld [$c0ef], a ld [$c0f0], a xor a - ld [wMusicChannelPointer], a + ld [wMusicHeaderPointer], a ld [$c0ee], a ld [$cfca], a dec a @@ -5825,7 +5825,7 @@ asm_2324: ; 2324 (0:2324) ret z .asm_2351 ld a, c - ld [wMusicChannelPointer], a + ld [wMusicHeaderPointer], a ld a, b ld [$cfca], a ld [$c0ee], a @@ -5883,7 +5883,7 @@ PlayMusic: ; 23a1 (0:23a1) ld b, a ld [$c0ee], a xor a - ld [wMusicChannelPointer], a + ld [wMusicHeaderPointer], a ld a, c ld [$c0ef], a ld [$c0f0], a @@ -5904,7 +5904,7 @@ PlaySound: ; 23b1 (0:23b1) ld [$c02c], a ld [$c02d], a .asm_23c8 - ld a, [wMusicChannelPointer] + ld a, [wMusicHeaderPointer] and a jr z, .asm_23e3 ld a, [$c0ee] @@ -5916,7 +5916,7 @@ PlaySound: ; 23b1 (0:23b1) cp $ff jr nz, .asm_2414 xor a - ld [wMusicChannelPointer], a + ld [wMusicHeaderPointer], a .asm_23e3 xor a ld [$c0ee], a @@ -5949,11 +5949,11 @@ PlaySound: ; 23b1 (0:23b1) .asm_2414 ld a, b ld [$cfca], a - ld a, [wMusicChannelPointer] + ld a, [wMusicHeaderPointer] ld [$cfc8], a ld [$cfc9], a ld a, b - ld [wMusicChannelPointer], a + ld [wMusicHeaderPointer], a .asm_2425 pop bc pop de @@ -6698,7 +6698,7 @@ ResetPlayerSpriteData_ClearSpriteData: ; 28c4 (0:28c4) jp FillMemory Func_28cb: ; 28cb (0:28cb) - ld a, [wMusicChannelPointer] + ld a, [wMusicHeaderPointer] and a jr nz, .asm_28dc ld a, [$d72c] @@ -6733,10 +6733,10 @@ Func_28cb: ; 28cb (0:28cb) ld [$FF00+$24], a ret .asm_2903 - ld a, [wMusicChannelPointer] + ld a, [wMusicHeaderPointer] ld b, a xor a - ld [wMusicChannelPointer], a + ld [wMusicHeaderPointer], a ld a, $ff ld [$c0ee], a call PlaySound @@ -8427,7 +8427,7 @@ PlayTrainerMusic: ; 33e8 (0:33e8) and a ret nz xor a - ld [wMusicChannelPointer], a + ld [wMusicHeaderPointer], a ld a, $ff call PlaySound ; stop music ld a, BANK(Music_MeetEvilTrainer) @@ -10531,7 +10531,7 @@ Func_3eb5: ; 3eb5 (0:3eb5) Func_3ef5: ; 3ef5 (0:3ef5) ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c - ld hl, $3f22 + ld hl, PointerTable_3f22 call Func_3f0f ld hl, $cf11 set 0, [hl] @@ -10555,7 +10555,8 @@ Func_3f0f: ; 3f0f (0:3f0f) ld a, h ld [$d36d], a ret -; 3f22 (0:3f22) + +PointerTable_3f22: ; 3f22 (0:3f22) dw $66ee dw $66f8 dw $5b8e @@ -13728,7 +13729,7 @@ Func_5849: ld a, [hl] ld [$cd3e], a ld a, $a - ld [wMusicChannelPointer], a + ld [wMusicHeaderPointer], a ld a, $2 ld [$c0f0], a ld a, $e5 @@ -13825,7 +13826,7 @@ Func_5a5f: ; 5a5f (1:5a5f) ld [W_ISLINKBATTLE], a ; $d12b ld [$FF00+$b5], a ld a, $a - ld [wMusicChannelPointer], a + ld [wMusicHeaderPointer], a ld a, BANK(Music_Celadon) ld [$c0f0], a ld a, (Music_Celadon - $4000) / 3 @@ -14742,7 +14743,7 @@ Func_61bc: ; 61bc (1:61bc) ld [$C0EF],a ld [$C0F0],a ld a,$A - ld [wMusicChannelPointer],a + ld [wMusicHeaderPointer],a ld a,$FF ld [$C0EE],a call PlaySound ; stop music @@ -16576,7 +16577,7 @@ DisplayPokemonCenterDialogue_: ; 6fe6 (1:6fe6) ld hl, Func_70433 call Bankswitch ; do the healing machine animation xor a - ld [wMusicChannelPointer], a + ld [wMusicHeaderPointer], a ld a, [$c0f0] ld [$c0ef], a ld a, [$d35b] @@ -18363,7 +18364,7 @@ INCLUDE "music/sfx/sfx_02_36.asm" PlayBattleMusic: ; 0x90c6 xor a - ld [wMusicChannelPointer], a + ld [wMusicHeaderPointer], a ld [$d083], a dec a ld [$c0ee], a @@ -20116,7 +20117,7 @@ Music_Cities1AlternateTempo: ; 0x9b81 ld [$cfc8], a ld [$cfc9], a ld a, $ff - ld [wMusicChannelPointer], a + ld [wMusicHeaderPointer], a ld c, $64 call DelayFrames ld c, BANK(Music_Cities1) @@ -21142,13 +21143,13 @@ Func_c44e: ; c44e (3:444e) push bc call Func_c589 ld a, [W_CURMAP] ; $d35e - cp $63 - jr z, .asm_c490 + cp SS_ANNE_5 + jr z, .ssAnne5 ld a, [$c109] srl a ld c, a ld b, $0 - ld hl, .unknown_c477 ; $4477 + ld hl, .pointerTable_c477 ; $4477 add hl, bc ld a, [hli] ld h, [hl] @@ -21162,10 +21163,25 @@ Func_c44e: ; c44e (3:444e) pop hl ret -.unknown_c477: ; c477 (3:4477) -INCBIN "baserom.gbc",$c477,$c490 - $c477 +.pointerTable_c477: ; c477 (3:4477) + dw .arrayData_c47f + dw .arrayData_c487 + dw .arrayData_c48a + dw .arrayData_c48d + +.arrayData_c47f + db $01,$12,$17,$3D,$04,$18,$33,$FF + +.arrayData_c487 + db $01,$5C,$FF -.asm_c490 +.arrayData_c48a + db $1A,$4B,$FF + +.arrayData_c48d + db $0F,$4E,$FF + +.ssAnne5 ld a, [$cfc6] cp $15 jr nz, .asm_c49a @@ -21187,7 +21203,7 @@ Func_c49d: ; c49d (3:449d) add a ld c, a ld b, $0 - ld hl, Unknown_c4cc ; $44cc + ld hl, WarpTileIDPointers ; $44cc add hl, bc ld a, [hli] ld h, [hl] @@ -21205,14 +21221,97 @@ Func_c49d: ; c49d (3:449d) pop hl ret -Unknown_c4cc: ; c4cc (3:44cc) -INCBIN "baserom.gbc",$c4cc,$c52f - $c4cc +WarpTileIDPointers: ; c4cc (3:44cc) + dw Tileset00WarpTileIDs + dw Tileset01WarpTileIDs + dw Tileset02WarpTileIDs + dw Tileset03WarpTileIDs + dw Tileset04WarpTileIDs + dw Tileset05WarpTileIDs + dw Tileset06WarpTileIDs + dw Tileset07WarpTileIDs + dw Tileset08WarpTileIDs + dw Tileset09WarpTileIDs + dw Tileset0AWarpTileIDs + dw Tileset0BWarpTileIDs + dw Tileset0CWarpTileIDs + dw Tileset0DWarpTileIDs + dw Tileset0EWarpTileIDs + dw Tileset0FWarpTileIDs + dw Tileset10WarpTileIDs + dw Tileset11WarpTileIDs + dw Tileset12WarpTileIDs + dw Tileset13WarpTileIDs + dw Tileset14WarpTileIDs + dw Tileset15WarpTileIDs + dw Tileset16WarpTileIDs + dw Tileset17WarpTileIDs + +Tileset00WarpTileIDs: ; c4fc (3:44fc) + db $1B,$58,$FF + +Tileset09WarpTileIDs: ; c4ff (3:44ff) +Tileset0AWarpTileIDs: ; c4ff (3:44ff) +Tileset0CWarpTileIDs: ; c4ff (3:44ff) + db $3B + +Tileset01WarpTileIDs: ; c500 (3:4500) +Tileset04WarpTileIDs: ; c500 (3:4500) + db $1A,$1C,$FF + +Tileset02WarpTileIDs: ; c503 (3:4503) +Tileset06WarpTileIDs: ; c503 (3:4503) + db $5E,$FF + +Tileset03WarpTileIDs: ; c505 (3:4505) + db $5A,$5C,$3A,$FF + +Tileset05WarpTileIDs: ; c509 (3:4509) +Tileset07WarpTileIDs: ; c509 (3:4509) + db $4A,$FF + +Tileset08WarpTileIDs: ; c50b (3:450b) + db $54,$5C,$32,$FF + +Tileset0DWarpTileIDs: ; c50f (3:450f) + db $37,$39,$1E,$4A,$FF + +Tileset10WarpTileIDs: ; c514 (3:4514) + db $15,$55,$04,$FF + +Tileset11WarpTileIDs: ; c518 (3:4518) + db $18,$1A,$22,$FF + +Tileset12WarpTileIDs: ; c51c (3:451c) + db $1A,$1C,$38,$FF + +Tileset13WarpTileIDs: ; c520 (3:4520) + db $1A,$1C,$53,$FF + +Tileset14WarpTileIDs: ; c524 (3:4524) + db $34,$FF + +Tileset16WarpTileIDs: ; c526 (3:4526) + db $43,$58,$20 + +Tileset0FWarpTileIDs: ; c529 (3:4529) + db $1B + +Tileset0BWarpTileIDs: ; c52a (3:452a) + db $13,$FF + +Tileset17WarpTileIDs: ; c52c (3:452c) + db $1B,$3B + +Tileset0EWarpTileIDs: ; c52e (3:452e) +Tileset15WarpTileIDs: ; c52e (3:452e) + db $FF Func_c52f: ; c52f (3:452f) ld a, [W_CURMAP] ; $d35e - cp $d9 + cp SAFARI_ZONE_EAST ret c - cp $e2 + cp UNKNOWN_DUNGEON_2 ret nc ld hl, wTileMap ld b, $3 @@ -21583,7 +21682,7 @@ Func_c754: ; c754 (3:4754) ld a, [W_CURMAPTILESET] ; $d367 push hl push de - ld hl, Unknown_c7b2 ; $47b2 + ld hl, DungeonTilesetIDs ; $47b2 ld de, $1 call IsInArray pop de @@ -21608,8 +21707,8 @@ Func_c754: ; c754 (3:4754) .asm_c7b1 ret -Unknown_c7b2: ; c7b2 (3:47b2) -INCBIN "baserom.gbc",$c7b2,$c7be - $c7b2 +DungeonTilesetIDs: ; c7b2 (3:47b2) + db $03,$0A,$0D,$11,$12,$13,$0C,$14,$16,$0F,$07,$FF TilesetsHeadPtr: ; c7be (3:47be) TSETHEAD Tset00_Block,Tset00_GFX,Tset00_Coll,$FF,$FF,$FF,$52,2 @@ -28164,8 +28263,8 @@ ItemUseItemfinder: ; e2e1 (3:62e1) and a jp nz,ItemUseNotTime call ItemUseReloadOverworldData - ld b,BANK(Unknown_7481f) - ld hl,Unknown_7481f + ld b,BANK(Func_7481f) + ld hl,Func_7481f call Bankswitch ; check for hidden items ld hl,ItemfinderFoundNothingText jr nc,.printText ; if no hidden items @@ -31214,7 +31313,7 @@ Func_f9a0: ; f9a0 (3:79a0) Func_f9bf: ; f9bf (3:79bf) push hl ld b, a - ld hl, Unknown_f9d2 + ld hl, DataTable_f9d2 .asm_f9c4 ld a, [hli] cp $ff @@ -31229,9 +31328,11 @@ Func_f9bf: ; f9bf (3:79bf) pop hl ret -Unknown_f9d2: ; f9d2 (3:79d2) - ;db $40, $40, $00, $80, $80, $20, $c0, $10, $ff, $c9 -INCBIN "baserom.gbc",$f9d2,$f9dc - $f9d2 +DataTable_f9d2: ; f9d2 (3:79d2) + db $40, $40, $00, $80, $80, $20, $c0, $10, $ff + +Func_f9db: ; f9db (3:79db) + ret Func_f9dc: ; f9dc (3:79dc) call Load16BitRegisters @@ -31501,6 +31602,7 @@ UpdateHPBar_CalcOldNewHPBarPixels: ; fb30 (3:7b30) pop hl ret +; prints text for bookshelves in buildings without sign events Func_fb50: ; fb50 (3:7b50) ld a, [$c109] cp $4 @@ -31510,7 +31612,7 @@ Func_fb50: ; fb50 (3:7b50) FuncCoord 8, 7 ; $c434 ld a, [Coord] ld c, a - ld hl, Unknown_fb8b ; $7b8b + ld hl, BookshelfTileIDs ; $7b8b .asm_fb62 ld a, [hli] cp $ff @@ -31540,8 +31642,39 @@ Func_fb50: ; fb50 (3:7b50) ld hl, Func_52673 jp Bankswitch ; indirect jump to Func_52673 (52673 (14:6673)) -Unknown_fb8b: ; fb8b (3:7b8b) -INCBIN "baserom.gbc",$fb8b,$fbd9 - $fb8b +; format: db tileset id, bookshelf tile id, unknown +BookshelfTileIDs: ; fb8b (3:7b8b) + db $17,$30,$3A + db $08,$3D,$3F + db $08,$1E,$40 + db $13,$32,$40 + db $01,$32,$40 + db $14,$28,$40 + db $12,$16,$41 + db $07,$1D,$40 + db $05,$1D,$40 + db $0C,$22,$40 + db $02,$54,$42 + db $02,$55,$42 + db $06,$54,$42 + db $06,$55,$42 + db $12,$50,$42 + db $12,$52,$42 + db $0D,$36,$40 + db $FF + +UnnamedText_fbbf: ; fbbf (3:7bbf) + db $08 ; asm + ld hl, UnnamedText_fbd9 + call PrintText + ld a, [W_XCOORD] + bit 0, a + ld hl, UnnamedText_fbde + jr nz, .asm_fbd3 + ld hl, UnnamedText_fbe3 +.asm_fbd3 + call PrintText + jp TextScriptEnd UnnamedText_fbd9: ; fbd9 (3:7bd9) TX_FAR _UnnamedText_fbd9 @@ -31559,13 +31692,12 @@ UnnamedText_fbe8: ; fbe8 (3:7be8) db $08 ; asm ld hl, UnnamedText_fc03 ld a, [W_CURMAPTILESET] - cp $13 + cp $13 ; Celadon Mansion tileset jr nz, .asm_fbfd ld a, [$c420] cp $38 jr nz, .asm_fbfd ld hl, UnnamedText_fc08 - .asm_fbfd call PrintText jp TextScriptEnd @@ -33711,10 +33843,10 @@ Func_13870: ; 13870 (4:7870) ld a, [W_WATERRATE] ; $d8a4 jr z, .asm_138c4 ld a, [W_CURMAP] ; $d35e - cp $25 + cp REDS_HOUSE_1F jr c, .asm_13912 ld a, [W_CURMAPTILESET] ; $d367 - cp $3 + cp $3 ; Viridian Forest/Safari Zone jr z, .asm_13912 ld a, [W_GRASSRATE] ; $d887 .asm_138c4 @@ -39214,7 +39346,7 @@ RivalIDs: ; 1a605 (6:6605) Func_1a609: ; 1a609 (6:6609) push de - ld hl, TilesetArray_1a62c ; $662c + ld hl, DoorTileIDPointers ; $662c ld a, [W_CURMAPTILESET] ; $d367 ld de, $3 call IsInArray @@ -39239,63 +39371,63 @@ Func_1a609: ; 1a609 (6:6609) and a ret -TilesetArray_1a62c: ; 1a62c (6:662c) +DoorTileIDPointers: ; 1a62c (6:662c) db $00 - dw UnknownTilesetData1a654 + dw Tileset00DoorTileIDs db $03 - dw UnknownTilesetData1a657 + dw Tileset03DoorTileIDs db $02 - dw UnknownTilesetData1a659 + dw Tileset02DoorTileIDs db $08 - dw UnknownTilesetData1a65b + dw Tileset08DoorTileIDs db $09 - dw UnknownTilesetData1a65d + dw TilesetMuseumDoorTileIDs db $0a - dw UnknownTilesetData1a65d + dw TilesetMuseumDoorTileIDs db $0c - dw UnknownTilesetData1a65d + dw TilesetMuseumDoorTileIDs db $0d - dw UnknownTilesetData1a65f + dw Tileset0DDoorTileIDs db $12 - dw UnknownTilesetData1a661 + dw Tileset12DoorTileIDs db $13 - dw UnknownTilesetData1a665 + dw Tileset13DoorTileIDs db $14 - dw UnknownTilesetData1a669 + dw Tileset14DoorTileIDs db $16 - dw UnknownTilesetData1a66b + dw Tileset16DoorTileIDs db $17 dw UnknownTilesetData1a66f db $ff -UnknownTilesetData1a654: ; 1a654 (6:6654) +Tileset00DoorTileIDs: ; 1a654 (6:6654) db $1B,$58,$00 -UnknownTilesetData1a657: ; 1a657 (6:6657) +Tileset03DoorTileIDs: ; 1a657 (6:6657) db $3a,$00 -UnknownTilesetData1a659: ; 1a659 (6:6659) +Tileset02DoorTileIDs: ; 1a659 (6:6659) db $5e,$00 -UnknownTilesetData1a65b: ; 1a65b (6:665b) +Tileset08DoorTileIDs: ; 1a65b (6:665b) db $54,$00 -UnknownTilesetData1a65d: ; 1a65d (6:665d) +TilesetMuseumDoorTileIDs: ; 1a65d (6:665d) db $3b,$00 -UnknownTilesetData1a65f: ; 1a65f (6:665f) +Tileset0DDoorTileIDs: ; 1a65f (6:665f) db $1e,$00 -UnknownTilesetData1a661: ; 1a661 (6:6661) +Tileset12DoorTileIDs: ; 1a661 (6:6661) db $1c,$38,$1a,$00 -UnknownTilesetData1a665: ; 1a665 (6:6665) +Tileset13DoorTileIDs: ; 1a665 (6:6665) db $1a,$1c,$53,$00 -UnknownTilesetData1a669: ; 1a669 (6:6669) +Tileset14DoorTileIDs: ; 1a669 (6:6669) db $34,$00 -UnknownTilesetData1a66b: ; 1a66b (6:666b) +Tileset16DoorTileIDs: ; 1a66b (6:666b) db $43,$58,$1b,$00 UnknownTilesetData1a66f: ; 1a66f (6:666f) @@ -44060,7 +44192,7 @@ asm_1e9ab: ; 1e9ab (7:69ab) asm_1e9b0: ; 1e9b0 (7:69b0) call EnableAutoTextBoxDrawing xor a - ld [wMusicChannelPointer], a + ld [wMusicHeaderPointer], a dec a call PlaySound ld c, BANK(SFX_02_5f) @@ -44448,7 +44580,7 @@ UnnamedText_1ecaa: ; 1ecaa (7:6caa) TX_FAR _UnnamedText_1ecaa db "@" -Unknown_1ecaf +Func_1ecaf: ; 1ecaf (7:6caf) ld a, [$c109] cp $4 ret nz @@ -57767,7 +57899,7 @@ Func_3a902: ; 3a902 (e:6902) FuncCoord 18, 10 ; $c47a ld hl, Coord ld de, rIE ; $ffff - jr asm_3a930 + jr Func_3a930 Unknown_3a916: ; 3a916 (e:6916) INCBIN "baserom.gbc",$3a916,$3a919 - $3a916 @@ -57780,11 +57912,12 @@ Func_3a919: ; 3a919 (e:6919) FuncCoord 1, 2 ; $c3c9 ld hl, Coord ld de, $1 - jr asm_3a930 + jr Func_3a930 Unknown_3a92d: ; 3a92d (e:692d) INCBIN "baserom.gbc",$3a92d,$3a930 - $3a92d -asm_3a930: ; 3a930 (e:6930) + +Func_3a930: ; 3a930 (e:6930) ld [hl], $73 ld bc, $14 add hl, bc @@ -64463,11 +64596,12 @@ Func_3daad: ; 3daad (f:5aad) jp ApplyDamageToPlayerPokemon Func_3daf5: ; 3daf5 (f:5af5) - ld hl, Unknown_3dafb ; $5afb + ld hl, UnnamedText_3dafb ; $5afb jp PrintText -Unknown_3dafb: ; 3dafb (f:5afb) -INCBIN "baserom.gbc",$3dafb,$3db00 - $3dafb +UnnamedText_3dafb: ; 3dafb (f:5afb) + TX_FAR _UnnamedText_3dafb + db $08 ; asm ld a, [H_WHOSETURN] ; $FF00+$f3 and a ld a, [W_PLAYERMOVENUM] ; $cfd2 @@ -64481,38 +64615,42 @@ INCBIN "baserom.gbc",$3dafb,$3db00 - $3dafb call Func_3db85 ld a, [$cced] and a - ld hl, Unknown_3db34 ; $5b34 + ld hl, UnnamedText_3db34 ; $5b34 ret nz ld a, [$d11e] cp $3 - ld hl, Unknown_3db34 ; $5b34 + ld hl, UnnamedText_3db34 ; $5b34 ret c - ld hl, Unknown_3db2d ; $5b2d + ld hl, UnnamedText_3db2d ; $5b2d ret -Unknown_3db2d: ; 3db2d (f:5b2d) -INCBIN "baserom.gbc",$3db2d,$3db32 - $3db2d - jr asm_3db39 +UnnamedText_3db2d: ; 3db2d (f:5b2d) + TX_FAR _UnnamedText_3db2d + db $08 ; asm + jr Func_3db39 -Unknown_3db34: ; 3db34 (f:5b34) -INCBIN "baserom.gbc",$3db34,$3db39 - $3db34 +UnnamedText_3db34: ; 3db34 (f:5b34) + TX_FAR _UnnamedText_3db34 + db $08 ; asm -asm_3db39 +Func_3db39: ; 3db39 (f:5b39) ld a, [$cced] and a - jr z, .asm_3db48 - ld hl, .unknown_3db43 ; $5b43 + jr z, Func_3db48 + ld hl, UnnamedText_3db43 ; $5b43 ret -.unknown_3db43: ; 3db43 (f:5b43) -INCBIN "baserom.gbc",$3db43,$3db48 - $3db43 +UnnamedText_3db43: ; 3db43 (f:5b43) + TX_FAR _UnnamedText_3db43 + db $08 ; asm -.asm_3db48 - ld hl, Unknown_3db4c ; $5b4c +Func_3db48: ; 3db48 (f:5b48) + ld hl, UnnamedText_3db4c ; $5b4c ret -Unknown_3db4c: ; 3db4c (f:5b4c) -INCBIN "baserom.gbc",$3db4c,$3db51 - $3db4c +UnnamedText_3db4c: ; 3db4c (f:5b4c) + TX_FAR _UnnamedText_3db4c + db $08 ; asm ld hl, TextPointerTable_3db62 ld a, [$d11e] add a @@ -67375,11 +67513,11 @@ Func_3ee5b: ; 3ee5b (f:6e5b) jp CopyVideoDataDouble Func_3ee94: ; 3ee94 (f:6e94) - ld hl, Unknown_3ee9a ; $6e9a + ld hl, TerminatorText_3ee9a ; $6e9a jp PrintText -Unknown_3ee9a: ; 3ee9a (f:6e9a) -INCBIN "baserom.gbc",$3ee9a,$3ee9b - $3ee9a +TerminatorText_3ee9a: ; 3ee9a (f:6e9a) + db "@" ; generates a random number unless in link battle ; stores random number in A @@ -67633,7 +67771,11 @@ Func_3f04b: ; 3f04b (f:704b) ld c, a jp LoadUncompressedSpriteData -INCBIN "baserom.gbc",$3f069,$3f073 - $3f069 +Func_3f069: ; 3f069 (f:7069) + xor a + ld [$c0f1], a + ld [$c0f2], a + jp PlaySound Func_3f073: ; 3f073 (f:7073) ld a, [$cc4f] @@ -68328,7 +68470,7 @@ asm_3f4ca: ; 3f4ca (f:74ca) ld a, [H_WHOSETURN] ; $FF00+$f3 and a call z, Func_3ee19 - ld hl, Unknown_3f528 ; $7528 + ld hl, UnnamedText_3f528 ; $7528 call PrintText call Func_3ed27 jp Func_3ed64 @@ -68341,8 +68483,9 @@ Func_3f522: ; 3f522 (f:7522) ld hl, UnnamedText_3fb3e ; $7b3e jp PrintText -Unknown_3f528: ; 3f528 (f:7528) -INCBIN "baserom.gbc",$3f528,$3f52d - $3f528 +UnnamedText_3f528: ; 3f528 (f:7528) + TX_FAR _UnnamedText_3f528 + db $08 ; asm ld hl, UnnamedText_3f542 ; $7542 ld a, [H_WHOSETURN] ; $FF00+$f3 and a @@ -68356,7 +68499,8 @@ INCBIN "baserom.gbc",$3f528,$3f52d - $3f528 ret UnnamedText_3f542: ; 3f542 (f:7542) -INCBIN "baserom.gbc",$3f542,$3f547 - $3f542 + db $0a + TX_FAR _UnnamedText_3f542 UnnamedText_3f547: ; 3f547 (f:7547) TX_FAR _UnnamedText_3f547 @@ -68535,7 +68679,8 @@ Func_3f65a: ; 3f65a (f:765a) jp Func_3fb4e UnnamedText_3f661: ; 3f661 (f:7661) -INCBIN "baserom.gbc",$3f661,$3f666 - $3f661 + TX_FAR _UnnamedText_3f661 + db $08 ; asm ld hl, UnnamedText_3f683 ; $7683 ld a, [H_WHOSETURN] ; $FF00+$f3 and a @@ -68547,11 +68692,12 @@ INCBIN "baserom.gbc",$3f661,$3f666 - $3f661 ret c cp $44 ret nc - ld hl, Unknown_3f67e ; $767e + ld hl, UnnamedText_3f67e ; $767e ret -Unknown_3f67e: ; 3f67e (f:767e) -INCBIN "baserom.gbc",$3f67e,$3f683 - $3f67e +UnnamedText_3f67e: ; 3f67e (f:767e) + db $0a + TX_FAR _UnnamedText_3f67e UnnamedText_3f683: ; 3f683 (f:7683) TX_FAR _UnnamedText_3f683 @@ -68849,11 +68995,12 @@ Func_3f88c: ; 3f88c (f:788c) call Func_3fbb9 ld a, [de] ld [wWhichTrade], a ; $cd3d - ld hl, Unknown_3f8c8 ; $78c8 + ld hl, UnnamedText_3f8c8 ; $78c8 jp PrintText -Unknown_3f8c8: ; 3f8c8 (f:78c8) -INCBIN "baserom.gbc",$3f8c8,$3f8cd - $3f8c8 +UnnamedText_3f8c8: ; 3f8c8 (f:78c8) + TX_FAR _UnnamedText_3f8c8 + db $08 ; asm ld a, [wWhichTrade] ; $cd3d cp $d ld hl, UnnamedText_3f8f9 ; $78f9 @@ -71470,7 +71617,7 @@ Func_410e2: ; 410e2 (10:50e2) ld [$cd5e], a ld a, [wTrainerEngageDistance] ld [$cd5f], a - ld de, Unknown_41138 ; $5138 + ld de, PointerIDs_41138 ; $5138 jr Func_41102 Func_410f3: ; 410f3 (10:50f3) @@ -71478,7 +71625,7 @@ Func_410f3: ; 410f3 (10:50f3) ld [$cd5e], a ld a, [wTrainerSpriteOffset] ld [$cd5f], a - ld de, Unknown_41149 + ld de, PointerIDs_41149 Func_41102: ; 41102 (10:5102) ld a, [W_OPTIONS] ; $d355 @@ -71519,11 +71666,12 @@ Func_41102: ; 41102 (10:5102) ld [W_OPTIONS], a ; $d355 ret -Unknown_41138: ; 41138 (10:5138) -INCBIN "baserom.gbc",$41138,$41149 - $41138 +; these bytes refer to the $00th through $10th pointer of PointerTable_4115f +PointerIDs_41138: ; 41138 (10:5138) + db $00,$01,$02,$03,$05,$07,$08,$09,$0A,$0B,$06,$08,$02,$04,$07,$0E,$FF -Unknown_41149: ; 41149 (10:5149) -INCBIN "baserom.gbc",$41149,$4115f - $41149 +PointerIDs_41149: ; 41149 (10:5149) + db $00,$08,$0D,$0B,$10,$05,$10,$08,$02,$04,$0F,$01,$02,$03,$10,$06,$10,$07,$08,$09,$0E,$FF PointerTable_4115f: ; 4115f (10:515f) dw Func_411a1 @@ -73571,7 +73719,9 @@ SeafoamIslands1Object: ; 0x4484f (size=72) EVENT_DISP $f, $3, $19 ; SEAFOAM_ISLANDS_2 EVENT_DISP $f, $f, $17 ; SEAFOAM_ISLANDS_2 -INCBIN "baserom.gbc",$44897,$4489f - $44897 + ; holes + EVENT_DISP $f, $6, $11 + EVENT_DISP $f, $6, $18 SeafoamIslands1Blocks: ; 4489f (11:489f) INCBIN "maps/seafoamislands1.blk" @@ -74431,9 +74581,9 @@ Func_44fd7: ; 44fd7 (11:4fd7) ld [$c102], a ld a, [W_CURMAPTILESET] ; $d367 cp $16 - ld hl, Unknown_45023 ; $5023 + ld hl, SpinnerArrowTilePointers1 ; $5023 jr z, .asm_44ff6 - ld hl, Unknown_45053 ; $5053 + ld hl, SpinnerArrowTilePointers2 ; $5053 .asm_44ff6 ld a, [$cd38] bit 0, a @@ -74470,12 +74620,11 @@ Func_44fd7: ; 44fd7 (11:4fd7) jr nz, .asm_45006 ret -Unknown_45023: ; 45023 (11:5023) -; XXX: it looks to me this is probably data for copying tiles into memory, maybe to mix and match a few tilesets, but I don't really know for sure +SpinnerArrowTilePointers1: ; 45023 (11:5023) dw SpinnerArrowAnimTiles ;address from within tileset graphics - db 1 ;number of tiles to copy? + db 1 ;number of tiles to copy? db BANK(SpinnerArrowAnimTiles) ;bank of tileset graphics - dw $9200 ;where to load in VRAM + dw $9200 ;where to load in VRAM dw SpinnerArrowAnimTiles + $10 db 1 @@ -74494,25 +74643,25 @@ Unknown_45023: ; 45023 (11:5023) dw Tset16_GFX + $200 db 1 - db $1A + db BANK(Tset16_GFX) dw $9200 dw Tset16_GFX + $210 db 1 - db $1A + db BANK(Tset16_GFX) dw $9210 dw Tset16_GFX + $300 db 1 - db $1A + db BANK(Tset16_GFX) dw $9300 dw Tset16_GFX + $310 db 1 - db $1A + db BANK(Tset16_GFX) dw $9310 -Unknown_45053: ; 45053 (11:5053) +SpinnerArrowTilePointers2: ; 45053 (11:5053) dw SpinnerArrowAnimTiles + $10 db 1 db BANK(SpinnerArrowAnimTiles) @@ -74535,22 +74684,22 @@ Unknown_45053: ; 45053 (11:5053) dw Tset05_GFX + $3C0 db 1 - db $1A + db BANK(Tset16_GFX) dw $93C0 dw Tset05_GFX + $3D0 db 1 - db $1A + db BANK(Tset16_GFX) dw $93D0 dw Tset05_GFX + $4C0 db 1 - db $1A + db BANK(Tset16_GFX) dw $94C0 dw Tset05_GFX + $4D0 db 1 - db $1A + db BANK(Tset16_GFX) dw $94D0 Unknown_45083: ; 45083 (11:5083) @@ -75172,23 +75321,23 @@ RocketHideoutElevatorScript: ; 45710 (11:5710) ret RocketHideoutElevatorScript_4572c: ; 4572c (11:572c) - ld hl, $d3af - ld a, [$d73b] - ld b, a - ld a, [$d73c] - ld c, a - call RocketHideoutElevatorScript_4573a + ld hl, $d3af + ld a, [$d73b] + ld b, a + ld a, [$d73c] + ld c, a + call RocketHideoutElevatorScript_4573a RocketHideoutElevatorScript_4573a: ; 4573a (11:573a) - inc hl - inc hl - ld a, b - ld [hli], a - ld a, c - ld [hli], a - ret - -Func_45741: ; 45741 (11:5741) + inc hl + inc hl + ld a, b + ld [hli], a + ld a, c + ld [hli], a + ret + +RocketHideoutElevatorScript_45741: ; 45741 (11:5741) ld hl, Unknown_45754 ; $5754 call LoadItemList ld hl, Unknown_45759 ; $5759 @@ -75218,7 +75367,7 @@ RocketHideoutElevatorText1: ; 4576d (11:576d) ld b, LIFT_KEY call IsItemInBag jr z, .asm_8d8f0 ; 0x45773 - call Func_45741 + call RocketHideoutElevatorScript_45741 ld hl, Unknown_45759 ; $5759 ld a, $61 call Predef @@ -75282,9 +75431,9 @@ SilphCoElevatorScript_457dc: ; 457dc (11:57dc) ld b, a ld a, [$d73c] ld c, a - call Func_457ea + call SilphCoElevatorScript_457ea -Func_457ea: ; 457ea (11:57ea) +SilphCoElevatorScript_457ea: ; 457ea (11:57ea) inc hl inc hl ld a, b @@ -75293,7 +75442,7 @@ Func_457ea: ; 457ea (11:57ea) ld [hli], a ret -Func_457f1: ; 457f1 (11:57f1) +SilphCoElevatorScript_457f1: ; 457f1 (11:57f1) ld hl, Unknown_45804 ; $5804 call LoadItemList ld hl, Unknown_45811 ; $5811 @@ -75320,7 +75469,7 @@ SilphCoElevatorTextPointers: ; 45833 (11:5833) SilphCoElevatorText1: ; 45835 (11:5835) db $08 ; asm - call Func_457f1 + call SilphCoElevatorScript_457f1 ld hl, Unknown_45811 ; $5811 ld a, $61 call Predef @@ -78082,11 +78231,11 @@ CeladonMartRoof_h: ; 0x483c9 to 0x483d5 (12 bytes) (bank=12) (id=126) CeladonMartRoofScript: ; 483d5 (12:43d5) jp EnableAutoTextBoxDrawing -Func_483d8: ; 483d8 (12:43d8) +CeladonMartRoofScript_483d8: ; 483d8 (12:43d8) xor a ld [$cd37], a ld de, $cc5b - ld hl, Unknown_48408 ; $4408 + ld hl, CeladonMartRoofDrinkList ; $4408 .asm_483e2 ld a, [hli] and a @@ -78115,10 +78264,13 @@ Func_483d8: ; 483d8 (12:43d8) ld [de], a ret -Unknown_48408: ; 48408 (12:4408) -INCBIN "baserom.gbc",$48408,$4840c - $48408 +CeladonMartRoofDrinkList: ; 48408 (12:4408) + db FRESH_WATER + db SODA_POP + db LEMONADE + db $00 -Func_4840c: ; 4840c (12:440c) +CeladonMartRoofScript_4840c: ; 4840c (12:440c) ld hl, $d730 set 6, [hl] ld hl, UnnamedText_484ee ; $44ee @@ -78145,7 +78297,7 @@ Func_4840c: ; 4840c (12:440c) ld hl, wTileMap call TextBoxBorder call UpdateSprites - call Func_48532 + call CeladonMartRoofScript_48532 ld hl, $d730 res 6, [hl] call HandleMenuInput @@ -78165,13 +78317,13 @@ Func_4840c: ; 4840c (12:440c) ld a, [$d778] bit 6, a jr nz, .asm_484e0 - ld hl, Unknown_48515 ; $4515 + ld hl, UnnamedText_48515 ; $4515 call PrintText call RemoveItemByIDBank12 ld bc, (TM_49 << 8) | 1 call GiveItem jr nc, .BagFull - ld hl, Unknown_4851b ; $451b + ld hl, ReceivedTM49Text ; $451b call PrintText ld hl, $d778 set 6, [hl] @@ -78180,13 +78332,13 @@ Func_4840c: ; 4840c (12:440c) ld a, [$d778] bit 5, a jr nz, .asm_484e0 - ld hl, Unknown_48504 ; $4504 + ld hl, UnnamedText_48504 ; $4504 call PrintText call RemoveItemByIDBank12 ld bc, (TM_48 << 8) | 1 call GiveItem jr nc, .BagFull - ld hl, Unknown_4850a ; $450a + ld hl, UnnamedText_4850a ; $450a call PrintText ld hl, $d778 set 5, [hl] @@ -78195,22 +78347,22 @@ Func_4840c: ; 4840c (12:440c) ld a, [$d778] bit 4, a jr nz, .asm_484e0 - ld hl, Unknown_484f3 ; $44f3 + ld hl, UnnamedText_484f3 ; $44f3 call PrintText call RemoveItemByIDBank12 ld bc, (TM_13 << 8) | 1 call GiveItem jr nc, .BagFull - ld hl, Unknown_484f9 ; $44f9 + ld hl, UnnamedText_484f9 ; $44f9 call PrintText ld hl, $d778 set 4, [hl] ret .BagFull - ld hl, Unknown_48526 ; $4526 + ld hl, UnnamedText_48526 ; $4526 jp PrintText .asm_484e0 - ld hl, Unknown_4852c ; $452c + ld hl, UnnamedText_4852c ; $452c jp PrintText RemoveItemByIDBank12: ; 484e6 (12:44e6) @@ -78222,31 +78374,53 @@ UnnamedText_484ee: ; 484ee (12:44ee) TX_FAR _UnnamedText_484ee db "@" -Unknown_484f3: ; 484f3 (12:44f3) -INCBIN "baserom.gbc",$484f3,$484f9 - $484f3 +UnnamedText_484f3: ; 484f3 (12:44f3) + TX_FAR _UnnamedText_484f3 + db $0d + db "@" -Unknown_484f9: ; 484f9 (12:44f9) -INCBIN "baserom.gbc",$484f9,$48504 - $484f9 +UnnamedText_484f9: ; 484f9 (12:44f9) + TX_FAR _UnnamedText_484f9 + db $0b + TX_FAR _UnnamedText_484fe + db $0d + db "@" -Unknown_48504: ; 48504 (12:4504) -INCBIN "baserom.gbc",$48504,$4850a - $48504 +UnnamedText_48504: ; 48504 (12:4504) + TX_FAR _UnnamedText_48504 + db $0d + db "@" -Unknown_4850a: ; 4850a (12:450a) -INCBIN "baserom.gbc",$4850a,$48515 - $4850a +UnnamedText_4850a: ; 4850a (12:450a) + TX_FAR _UnnamedText_4850a + db $0b + TX_FAR _UnnamedText_4850f + db $0d + db "@" -Unknown_48515: ; 48515 (12:4515) -INCBIN "baserom.gbc",$48515,$4851b - $48515 +UnnamedText_48515: ; 48515 (12:4515) + TX_FAR _UnnamedText_48515 + db $0d + db "@" -Unknown_4851b: ; 4851b (12:451b) -INCBIN "baserom.gbc",$4851b,$48526 - $4851b +ReceivedTM49Text: ; 4851b (12:451b) + TX_FAR _ReceivedTM49Text + db $0b + TX_FAR _UnnamedText_48520 + db $0d + db "@" -Unknown_48526: ; 48526 (12:4526) -INCBIN "baserom.gbc",$48526,$4852c - $48526 +UnnamedText_48526: ; 48526 (12:4526) + TX_FAR _UnnamedText_48526 + db $0d + db "@" -Unknown_4852c: ; 4852c (12:452c) -INCBIN "baserom.gbc",$4852c,$48532 - $4852c +UnnamedText_4852c: ; 4852c (12:452c) + TX_FAR _UnnamedText_4852c + db $0d + db "@" -Func_48532: ; 48532 (12:4532) +CeladonMartRoofScript_48532: ; 48532 (12:4532) ld hl, $cc5b xor a ld [$FF00+$db], a @@ -78283,7 +78457,7 @@ CeladonMartRoofText1: ; 48567 (12:4567) CeladonMartRoofText2: ; 4856c (12:456c) db $08 ; asm - call Func_483d8 + call CeladonMartRoofScript_483d8 ld a, [$cd37] and a jr z, .asm_914b9 ; 0x48574 @@ -78295,7 +78469,7 @@ CeladonMartRoofText2: ; 4856c (12:456c) ld a, [$cc26] and a jr nz, .asm_05aa4 ; 0x48588 - call Func_4840c + call CeladonMartRoofScript_4840c jr .asm_05aa4 ; 0x4858d .asm_914b9 ; 0x4858f ld hl, CeladonMartRoofText3 @@ -78308,8 +78482,7 @@ CeladonMartRoofText3: ; 48598 (12:4598) db "@" CeladonMartRoofText4: ; 4859d (12:459d) -UnnamedText_4859d: ; 4859d (12:459d) - TX_FAR _UnnamedText_4859d + TX_FAR _CeladonMartRoofText4 db "@" CeladonMartRoofText5: ; 485a2 (12:45a2) @@ -78382,7 +78555,7 @@ CeladonMartElevatorScript_4862a: ; 4862a (12:462a) ld [hli], a ret -Func_48631: ; 48631 (12:4631) +CeladonMartElevatorScript_48631: ; 48631 (12:4631) ld hl, Unknown_48643 ; $4643 call LoadItemList ld hl, Unknown_4864a ; $464a @@ -78406,7 +78579,7 @@ CeladonMartElevatorTextPointers: ; 4865c (12:465c) CeladonMartElevatorText1: ; 4865e (12:465e) db $08 ; asm - call Func_48631 + call CeladonMartElevatorScript_48631 ld hl, Unknown_4864a ; $464a ld a, $61 call Predef @@ -82160,11 +82333,13 @@ Func_4fe11: ; 4fe11 (13:7e11) pop af ld [$d11e], a call GetMonName - ld hl, Unknown_4fe39 ; $7e39 + ld hl, UnnamedText_4fe39 ; $7e39 jp PrintText -Unknown_4fe39: ; 4fe39 (13:7e39) -INCBIN "baserom.gbc",$4fe39,$4fe3f - $4fe39 +UnnamedText_4fe39: ; 4fe39 (13:7e39) + TX_FAR _UnnamedText_4fe39 + db $0b + db "@" UnnamedText_4fe3f: ; 4fe3f (13:7e3f) TX_FAR _UnnamedText_4fe3f @@ -84912,7 +85087,7 @@ SilphCo7Script_51b77: ; 51b77 (14:5b77) bit 5, [hl] res 5, [hl] ret z - ld hl, Unknown_51bc1 ; $5bc1 + ld hl, DataTable_51bc1 ; $5bc1 call Func_51bc8 call Func_51bf4 ld a, [$d830] @@ -84944,8 +85119,8 @@ SilphCo7Script_51b77: ; 51b77 (14:5b77) ld a, $17 jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) -Unknown_51bc1: ; 51bc1 (14:5bc1) -INCBIN "baserom.gbc",$51bc1,$51bc8 - $51bc1 +DataTable_51bc1: ; 51bc1 (14:5bc1) + db $03,$05,$02,$0A,$06,$0A,$FF Func_51bc8: ; 51bc8 (14:5bc8) push hl @@ -86602,13 +86777,55 @@ IF _BLUE db PORYGON,18 ENDC -INCBIN "baserom.gbc",$52996,$529e9 - $52996 +Func_52996: ; 52996 (14:6996) + call EnableAutoTextBoxDrawing + ld a, $1 + ld [$cc3c], a + ld a, [wTrainerSpriteOffset] + jp Func_3ef5 + +UnnamedText_529a4: ; 529a4 (14:69a4) + TX_FAR UnnamedText_88bfd + db $0d + db "@" + +UnnamedText_529aa: ; 529aa (14:69aa) + db $08 ; asm + ld hl, UnnamedText_529f4 + call PrintText + call Func_529db + jr nz, .asm_529d8 + ld hl, UnnamedText_529f9 + call PrintText + call Func_529db + jr nz, .asm_529d8 + ld hl, UnnamedText_529fe + call PrintText + call Func_529db + jr nz, .asm_529d8 + ld hl, UnnamedText_52a03 + call PrintText + ld hl, UnnamedText_529ee + call PrintText +.asm_529d8 + jp TextScriptEnd + +Func_529db: ; 529db (14:69db) + ld hl, UnnamedText_529e9 + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + ret UnnamedText_529e9: ; 529e9 (14:69e9) TX_FAR _UnnamedText_529e9 db "@" -INCBIN "baserom.gbc",$529ee,$529f4 - $529ee +UnnamedText_529ee: ; 529ee (14:69ee) + TX_FAR _UnnamedText_529ee + db $0d + db "@" UnnamedText_529f4: ; 529f4 (14:69f4) TX_FAR _UnnamedText_529f4 @@ -86626,25 +86843,40 @@ UnnamedText_52a03: ; 52a03 (14:6a03) TX_FAR _UnnamedText_52a03 db "@" -INCBIN "baserom.gbc",$52a08,$52a10 - $52a08 +Func_52a08: ; 52a08 (14:6a08) + call EnableAutoTextBoxDrawing + ld a, $37 + jp Func_3ef5 UnnamedText_52a10: ; 52a10 (14:6a10) TX_FAR _UnnamedText_52a10 db "@" -INCBIN "baserom.gbc",$52a15,$52a1d - $52a15 +Func_52a15: ; 52a15 (14:6a15) + call EnableAutoTextBoxDrawing + ld a, $38 + jp Func_3ef5 UnnamedText_52a1d: ; 52a1d (14:6a1d) TX_FAR _UnnamedText_52a1d db "@" -INCBIN "baserom.gbc",$52a22,$52a2a - $52a22 +Func_52a22: ; 52a22 (14:6a22) + call EnableAutoTextBoxDrawing + ld a, $36 + jp Func_3ef5 UnnamedText_52a2a: ; 52a2a (14:6a2a) TX_FAR _UnnamedText_52a2a db "@" -INCBIN "baserom.gbc",$52a2f,$52a3d - $52a2f +Func_52a2f: ; 52a2f (14:6a2f) + ld a, [$c109] + cp $4 + ret nz + call EnableAutoTextBoxDrawing + ld a, $27 + jp Func_3ef5 UnnamedText_52a3d: ; 52a3d (14:6a3d) TX_FAR _UnnamedText_52a3d @@ -86708,7 +86940,12 @@ Route2Object: ; 0x54022 (size=72) EVENT_DISP $a, $27, $f ; ROUTE_2_GATE EVENT_DISP $a, $2b, $3 ; VIRIDIAN_FOREST_ENTRANCE -INCBIN "baserom.gbc",$5406a,$5407e - $5406a + ; unused + EVENT_DISP $4, $7, $2 + db $12, $c7, $9, $7 + EVENT_DISP $4, $7, $2 + EVENT_DISP $4, $7, $2 + EVENT_DISP $4, $7, $2 Route2Blocks: ; 5407e (15:407e) INCBIN "maps/route2.blk" @@ -87318,7 +87555,7 @@ Func_5525f: ; 5525f (15:525f) ld a, [wWhichPokemon] ; $cf92 ld hl, W_PARTYMON1NAME ; $d2b5 call GetPartyMonName - ld hl, Unknown_554b2 ; $54b2 + ld hl, UnnamedText_554b2 ; $54b2 call PrintText xor a ld [$cc49], a @@ -87419,7 +87656,7 @@ Func_5525f: ; 5525f (15:525f) call Bankswitch ; indirect jump to Func_3ee94 (3ee94 (f:6e94)) call SaveScreenTilesToBuffer1 .asm_553f7 - ld hl, Unknown_554dd ; $54dd + ld hl, UnnamedText_554dd ; $54dd call PrintText xor a ld [$cc49], a @@ -87522,31 +87759,37 @@ Func_5549f: ; 5549f (15:549f) ld [$FF00+$97], a ret -Unknown_554b2: ; 554b2 (15:54b2) -INCBIN "baserom.gbc",$554b2,$554b7 - $554b2 +UnnamedText_554b2: ; 554b2 (15:54b2) + TX_FAR _UnnamedText_554b2 + db $08 ; asm ld a, [$cc5b] - ld hl, Unknown_554cb ; $54cb + ld hl, UnnamedText_554cb and a ret nz - ld hl, UnnamedText_554d8 ; $54d8 + ld hl, UnnamedText_554d8 ld a, [$cf4d] and a ret z - ld hl, Unknown_554d4 ; $54d4 + ld hl, UnnamedText_554d4 ret -Unknown_554cb: ; 554cb (15:54cb) -INCBIN "baserom.gbc",$554cb,$554d4 - $554cb +UnnamedText_554cb: ; 554cb (15:54cb) + TX_FAR _UnnamedText_554cb + db $08 ; asm + ld hl, UnnamedText_554d8 + ret -Unknown_554d4: ; 554d4 (15:54d4) -INCBIN "baserom.gbc",$554d4,$554d8 - $554d4 +UnnamedText_554d4: ; 554d4 (15:54d4) + TX_FAR _UnnamedText_554d4 UnnamedText_554d8: ; 554d8 (15:54d8) - TX_FAR _UnnamedText_554d8 ; 0x89bee + TX_FAR _UnnamedText_554d8 db "@" -Unknown_554dd: ; 554dd (15:54dd) -INCBIN "baserom.gbc",$554dd,$554e3 - $554dd +UnnamedText_554dd: ; 554dd (15:54dd) + TX_FAR UnnamedText_89c01 + db $0b + db "@" Route2Script: ; 554e3 (15:54e3) jp EnableAutoTextBoxDrawing @@ -90295,7 +90538,7 @@ SilphCo8_h: ; 0x564f8 to 0x56504 (12 bytes) (id=213) dw SilphCo8Object ; objects SilphCo8Script: ; 56504 (15:6504) - call SilphCo8_Unknown5651a + call SilphCo8Script_5651a call EnableAutoTextBoxDrawing ld hl, SilphCo8TrainerHeader0 ld de, SilphCo8ScriptPointers @@ -90304,12 +90547,12 @@ SilphCo8Script: ; 56504 (15:6504) ld [W_SILPHCO8CURSCRIPT], a ret -SilphCo8_Unknown5651a: ; 5651a (15:651a) +SilphCo8Script_5651a: ; 5651a (15:651a) ld hl, $d126 bit 5, [hl] res 5, [hl] ret z - ld hl, Unknown_5653e ; $653e + ld hl, DataTable_5653e ; $653e call Func_56541 call Func_5656d ld a, [$d832] @@ -90321,8 +90564,8 @@ SilphCo8_Unknown5651a: ; 5651a (15:651a) ld a, $17 jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) -Unknown_5653e: ; 5653e (15:653e) -INCBIN "baserom.gbc",$5653e,$56541 - $5653e +DataTable_5653e: ; 5653e (15:653e) + db $04,$03,$FF Func_56541: ; 56541 (15:6541) push hl @@ -91455,7 +91698,7 @@ Route18Object: ; 0x58c5a (size=66) Route18Blocks: ; 58c9c (16:4c9c) INCBIN "maps/route18.blk" -INCBIN "baserom.gbc",$58d7d,$58d99 - $58d7d + INCBIN "maps/unusedblocks58d7d.blk" Func_58d99: ; 58d99 (16:4d99) ld a, [W_ISINBATTLE] ; $d057 @@ -91565,7 +91808,7 @@ Func_58e59: ; 58e59 (16:4e59) ld hl, W_ENEMYMONCURHP ; $cfe6 ld a, [hli] or [hl] - ld hl, .unknown_58eae ; $4eae + ld hl, UnnamedText_58eae ; $4eae jr z, .asm_58eab xor a ld [H_NUMTOPRINT], a ; $FF00+$96 (aliases: H_MULTIPLICAND) @@ -91591,36 +91834,39 @@ Func_58e59: ; 58e59 (16:4e59) ld [H_REMAINDER], a ; $FF00+$99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN) call Divide ld a, [$FF00+$98] - ld hl, .unknown_58eae ; $4eae + ld hl, UnnamedText_58eae ; $4eae cp $46 jr nc, .asm_58eab - ld hl, .unknown_58eb5 ; $4eb5 + ld hl, UnnamedText_58eb5 ; $4eb5 cp $28 jr nc, .asm_58eab - ld hl, .unknown_58ebc ; $4ebc + ld hl, UnnamedText_58ebc ; $4ebc cp $a jr nc, .asm_58eab - ld hl, .unknown_58ec3 ; $4ec3 + ld hl, UnnamedText_58ec3 ; $4ec3 .asm_58eab jp PrintText -.unknown_58eae: ; 58eae (16:4eae) -INCBIN "baserom.gbc",$58eae,$58eb3 - $58eae - - jr .asm_58ec8 - -.unknown_58eb5: ; 58eb5 (16:4eb5) -INCBIN "baserom.gbc",$58eb5,$58eba - $58eb5 +UnnamedText_58eae: ; 58eae (16:4eae) + TX_FAR _UnnamedText_58eae + db $08 ; asm + jr Func_58ec8 - jr .asm_58ec8 +UnnamedText_58eb5: ; 58eb5 (16:4eb5) + TX_FAR _UnnamedText_58eb5 + db $08 ; asm + jr Func_58ec8 -.unknown_58ebc: ; 58ebc (16:4ebc) -INCBIN "baserom.gbc",$58ebc,$58ec3 - $58ebc +UnnamedText_58ebc: ; 58ebc (16:4ebc) + TX_FAR _UnnamedText_58ebc + db $08 ; asm + jr Func_58ec8 -.unknown_58ec3: ; 58ec3 (16:4ec3) -INCBIN "baserom.gbc",$58ec3,$58ec8 - $58ec3 +UnnamedText_58ec3: ; 58ec3 (16:4ec3) + TX_FAR _UnnamedText_58ec3 + db $08 ; asm -.asm_58ec8 +Func_58ec8 ld hl, UnnamedText_58ecc ; $4ecc ret @@ -91629,11 +91875,73 @@ UnnamedText_58ecc: ; 58ecc (16:4ecc) db "@" Func_58ed1: ; 58ed1 (16:4ed1) - ld hl, Unknown_58ed7 ; $4ed7 + ld hl, UnnamedText_58ed7 ; $4ed7 jp PrintText -Unknown_58ed7: ; 58ed7 (16:4ed7) -INCBIN "baserom.gbc",$58ed7,$58f3e - $58ed7 +UnnamedText_58ed7: ; 58ed7 (16:4ed7) + TX_FAR _UnnamedText_58ed7 + db $08 ; asm + push de + push bc + ld hl, $cfe7 + ld de, $cce4 + ld b, [hl] + dec hl + ld a, [de] + sub b + ld [$ff98], a + dec de + ld b, [hl] + ld a, [de] + sbc b + ld [$ff97], a + ld a, $19 + ld [H_POWEROFTEN], a + call Multiply + ld hl, W_ENEMYMONMAXHP + ld a, [hli] + ld b, [hl] + srl a + rr b + srl a + rr b + ld a, b + ld b, $4 + ld [H_POWEROFTEN], a + call Divide + pop bc + pop de + ld a, [$ff98] + ld hl, UnnamedText_58f25 + and a + ret z + ld hl, UnnamedText_58f3e + cp $1e + ret c + ld hl, UnnamedText_58f2c + cp $46 + ret c + ld hl, UnnamedText_58f33 + ret + +UnnamedText_58f25: ; 58f25 (16:4f25) + TX_FAR _UnnamedText_58f25 + db $08 ; asm + jr Func_58f3a + +UnnamedText_58f2c: ; 58f2c (16:4f2c) + TX_FAR _UnnamedText_58f2c + db $08 ; asm + jr Func_58f3a + +UnnamedText_58f33: ; 58f33 (16:4f33) + TX_FAR _UnnamedText_58f33 + db $08 ; asm + jr Func_58f3a + +Func_58f3a: ; 58f3a (16:4f3a) + ld hl, UnnamedText_58f3e + ret UnnamedText_58f3e: ; 58f3e (16:4f3e) TX_FAR _UnnamedText_58f3e @@ -91819,7 +92127,7 @@ Func_59035 ; 0x59035 ld c, 1 call GiveItem jr nc, .BagFull - ld hl, Unknown_590a5 ; $50a5 + ld hl, UnnamedText_590a5 ; $50a5 call PrintText ld a, $1 jr .asm_5908e ; 0x59071 $1b @@ -91857,8 +92165,10 @@ UnnamedText_590a0: ; 590a0 (16:50a0) TX_FAR _UnnamedText_590a0 db "@" -Unknown_590a5: ; 590a5 (16:50a5) -INCBIN "baserom.gbc",$590a5,$590ab - $590a5 +UnnamedText_590a5: ; 590a5 (16:50a5) + TX_FAR _UnnamedText_590a5 + db $0b + db "@" UnnamedText_590ab: ; 590ab (16:50ab) TX_FAR _UnnamedText_590ab @@ -94031,7 +94341,7 @@ SilphCo2Script_59d07: ; 59d07 (16:5d07) bit 5, [hl] res 5, [hl] ret z - ld hl, Unknown_59d3e + ld hl, DataTable_59d3e call Func_59d43 call Func_59d6f ld a, [$d826] @@ -94053,8 +94363,8 @@ SilphCo2Script_59d07: ; 59d07 (16:5d07) ld a, $17 jp Predef -Unknown_59d3e: ; 59d3e (16:5d3e) -INCBIN "baserom.gbc",$59d3e,$59d43 - $59d3e +DataTable_59d3e: ; 59d3e (16:5d3e) + db $02,$02,$05,$02,$FF Func_59d43: ; 59d43 (16:5d43) push hl @@ -94321,7 +94631,7 @@ SilphCo3Script_59f71: ; 59f71 (16:5f71) bit 5, [hl] res 5, [hl] ret z - ld hl, Unknown_59fa8 ; $5fa8 + ld hl, DataTable_59fa8 ; $5fa8 call Func_59d43 call Func_59fad ld a, [$d828] @@ -94343,8 +94653,8 @@ SilphCo3Script_59f71: ; 59f71 (16:5f71) ld a, $17 jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) -Unknown_59fa8: ; 59fa8 (16:5fa8) -INCBIN "baserom.gbc",$59fa8,$59fad - $59fa8 +DataTable_59fa8: ; 59fa8 (16:5fa8) + db $04,$04,$04,$08,$FF Func_59fad: ; 59fad (16:5fad) ld hl, $d828 @@ -94507,7 +94817,7 @@ SilphCo10Script_5a14f: ; 5a14f (16:614f) bit 5, [hl] res 5, [hl] ret z - ld hl, Unknown_5a173 ; $6173 + ld hl, DataTable_5a173 ; $6173 call Func_59d43 call Func_5a176 ld a, [$d836] @@ -94519,8 +94829,8 @@ SilphCo10Script_5a14f: ; 5a14f (16:614f) ld a, $17 jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) -Unknown_5a173: ; 5a173 (16:6173) -INCBIN "baserom.gbc",$5a173,$5a176 - $5a173 +DataTable_5a173: ; 5a173 (16:6173) + db $04,$05,$FF Func_5a176: ; 5a176 (16:6176) ld a, [$FF00+$e0] @@ -94861,7 +95171,11 @@ HallofFameRoomScript: ; 5a49e (16:649e) ld a, [W_HALLOFFAMEROOMCURSCRIPT] jp CallFunctionInTable -INCBIN "baserom.gbc",$5a4aa,$5a4b2 - $5a4aa +Func_5a4aa: ; 5a4aa (16:64aa) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_HALLOFFAMEROOMCURSCRIPT], a + ret HallofFameRoomScriptPointers: ; 5a4b2 (16:64b2) dw HallofFameRoomScript0 @@ -94870,7 +95184,7 @@ HallofFameRoomScriptPointers: ; 5a4b2 (16:64b2) dw HallofFameRoomScript3 HallofFameRoomScript3: ; 5a4ba (16:64ba) - db $c9 + ret HallofFameRoomScript2: ; 5a4bb (16:64bb) call Delay3 @@ -98144,7 +98458,7 @@ SilphCo9Script_5d7d1: ; 5d7d1 (17:57d1) bit 5, [hl] res 5, [hl] ret z - ld hl, Unknown_5d82e ; $582e + ld hl, DataTable_5d82e ; $582e call Func_5d837 call Func_5d863 ld a, [$d834] @@ -98186,8 +98500,8 @@ SilphCo9Script_5d7d1: ; 5d7d1 (17:57d1) ld a, $17 jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) -Unknown_5d82e: ; 5d82e (17:582e) -INCBIN "baserom.gbc",$5d82e,$5d837 - $5d82e +DataTable_5d82e: ; 5d82e (17:582e) + db $04,$01,$02,$09,$05,$09,$06,$05,$FF Func_5d837: ; 5d837 (17:5837) push hl @@ -98739,7 +99053,87 @@ UnnamedText_5dce8: ; 5dce8 (17:5ce8) TX_FAR _UnnamedText_5dce8 db "@" -INCBIN "baserom.gbc",$5dced,$5dda2 - $5dced +UnnamedText_5dced: ; 5dced (17:5ced) + db $08 ; asm + call SaveScreenTilesToBuffer1 + ld hl, UnnamedText_5dda2 + call PrintText + xor a + ld [W_ANIMATIONID], a + ld [wCurrentMenuItem], a + ld [wLastMenuItem], a + ld a, $33 + ld [wMenuWatchedKeys], a + ld a, $2 + ld [wMaxMenuItem], a + ld a, $2 + ld [wTopMenuItemY], a + ld a, $1 + ld [wTopMenuItemX], a +.asm_5dd15 + ld hl, $d730 + set 6, [hl] + ld hl, wTileMap + ld bc, $060a + call TextBoxBorder + ld hl, $c3c9 + ld de, StatusAilmentText1 + call PlaceString + ld hl, $c3ce + ld de, StatusAilmentText2 + call PlaceString + ld hl, UnnamedText_5dda7 + call PrintText + call HandleMenuInput + bit 1, a + jr nz, .asm_5dd97 + bit 4, a + jr z, .asm_5dd5c + ld a, $2 + ld [wMaxMenuItem], a + ld a, $2 + ld [wTopMenuItemY], a + ld a, $6 + ld [wTopMenuItemX], a + ld a, $3 + ld [W_ANIMATIONID], a + jr .asm_5dd15 +.asm_5dd5c + bit 5, a + jr z, .asm_5dd75 + ld a, $2 + ld [wMaxMenuItem], a + ld a, $2 + ld [wTopMenuItemY], a + ld a, $1 + ld [wTopMenuItemX], a + xor a + ld [W_ANIMATIONID], a + jr .asm_5dd15 +.asm_5dd75 + ld a, [wCurrentMenuItem] + ld b, a + ld a, [W_ANIMATIONID] + add b + cp $5 + jr z, .asm_5dd97 + ld hl, $d730 + res 6, [hl] + ld hl, PointerTable_5ddcc + add a + ld d, $0 + ld e, a + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call PrintText + jp .asm_5dd15 +.asm_5dd97 + ld hl, $d730 + res 6, [hl] + call LoadScreenTilesFromBuffer1 + jp TextScriptEnd UnnamedText_5dda2: ; 5dda2 (17:5da2) TX_FAR _UnnamedText_5dda2 @@ -98749,10 +99143,12 @@ UnnamedText_5dda7: ; 5dda7 (17:5da7) TX_FAR _UnnamedText_5dda7 db "@" -StatusAilmentText: +StatusAilmentText1: ; 5ddac (17:5dac) db " SLP",$4e db " PSN",$4e db " PAR@" + +StatusAilmentText2: ; 5ddbb (17:5dbb) db " BRN",$4e db " FRZ",$4e db " QUIT@@" @@ -98784,7 +99180,7 @@ UnnamedText_5ddea: ; 5ddea (17:5dea) TX_FAR _UnnamedText_5ddea db "@" -Unknown_5ddef: ; 5ddef (17:5def) +Func_5ddef: ; 5ddef (17:5def) call EnableAutoTextBoxDrawing ld a, $26 jp Func_3ef5 @@ -98864,7 +99260,11 @@ UnnamedText_5ddf7: ; 5ddf7 (17:5df7) jp Func_3ef5 Unknown_5de7d: ; 5de7d (17:5e7d) -INCBIN "baserom.gbc",$5de7d,$5decd - $5de7d +INCBIN "baserom.gbc",$5de7d,$5dec8 - $5de7d + +UnnamedText_5dec8: ; 5dec8 (17:5ec8) + TX_FAR _UnnamedText_5dec8 + db $08 ; asm call WaitForSoundToFinish ld a, $9d call PlaySound @@ -98875,14 +99275,26 @@ UnnamedText_5dedb: ; 5dedb (17:5edb) TX_FAR _UnnamedText_5dedb db "@" -INCBIN "baserom.gbc",$5dee0,$5def4 - $5dee0 +UnnamedText_5dee0: ; 5dee0 (17:5ee0) + db $08 ; asm + call WaitForSoundToFinish + ld a, $9d + call PlaySound + call WaitForSoundToFinish + jp TextScriptEnd + +UnnamedText_5deef: ; 5deef (17:5eef) + TX_FAR _UnnamedText_5deef + db $08 ; asm call WaitForSoundToFinish ld a, $ad call PlaySound call WaitForSoundToFinish jp TextScriptEnd -INCBIN "baserom.gbc",$5df02,$5df07 - $5df02 +UnnamedText_5df02: ; 5df02 (17:5f02) + TX_FAR _UnnamedText_5df02 + db $08 ; asm call WaitForSoundToFinish ld a, $a5 call PlaySound @@ -98897,7 +99309,7 @@ ViridianForestBlocks: ; 60000 (18:4000) UndergroundPathNSBlocks: ; 60198 (18:4198) INCBIN "maps/undergroundpathns.blk" -INCBIN "baserom.gbc",$601f8,$603c0 - $601f8 + INCBIN "maps/unusedblocks601f8.blk" SSAnne10Blocks: ; 603c0 (18:43c0) SSAnne9Blocks: ; 603c0 (18:43c0) @@ -99907,7 +100319,7 @@ PokemonTower6Object: ; 0x60c5b (size=58) PokemonTower6Blocks: ; 60c95 (18:4c95) INCBIN "maps/pokemontower6.blk" -INCBIN "baserom.gbc",$60cef,$60cf9 - $60cef + INCBIN "maps/unusedblocks60cef.blk" PokemonTower7_h: ; 0x60cf9 to 0x60d05 (12 bytes) (id=148) db $0f ; tileset @@ -102158,7 +102570,7 @@ SilphCo11Script_62110: ; 62110 (18:6110) bit 5, [hl] res 5, [hl] ret z - ld hl, Unknown_62134 ; $6134 + ld hl, DataTable_62134 ; $6134 call Func_62137 call Func_62163 ld a, [$d838] @@ -102170,8 +102582,8 @@ SilphCo11Script_62110: ; 62110 (18:6110) ld a, $17 jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) -Unknown_62134: ; 62134 (18:6134) -INCBIN "baserom.gbc",$62134,$62137 - $62134 +DataTable_62134: ; 62134 (18:6134) + db $06,$03,$FF Func_62137: ; 62137 (18:6137) push hl @@ -102218,7 +102630,7 @@ Func_62163: ; 62163 (18:6163) ret Func_6216d: ; 6216d (18:616d) - ld hl, Unknown_6219b ; $619b + ld hl, MissableObjectIDs_6219b ; $619b .asm_62170 ld a, [hli] cp $ff @@ -102230,7 +102642,7 @@ Func_6216d: ; 6216d (18:616d) pop hl jr .asm_62170 .asm_62181 - ld hl, Unknown_62194 ; $6194 + ld hl, MissableObjectIDs_62194 ; $6194 .asm_62184 ld a, [hli] cp $ff @@ -102242,17 +102654,22 @@ Func_6216d: ; 6216d (18:616d) pop hl jr .asm_62184 -Unknown_62194: ; 62194 (18:6194) -INCBIN "baserom.gbc",$62194,$6219b - $62194 +MissableObjectIDs_62194: ; 62194 (18:6194) + db $11,$12,$13,$14,$15,$16,$FF -Unknown_6219b: ; 6219b (18:619b) -INCBIN "baserom.gbc",$6219b,$621c4 - $6219b +MissableObjectIDs_6219b: ; 6219b (18:619b) + db $0A,$0B,$0C,$0D,$0E,$0F,$10,$17 + db $18,$8A,$8B,$8C,$8D,$8E,$8F,$91 + db $92,$93,$97,$98,$99,$9A,$9E,$9F + db $A0,$A3,$A4,$A5,$A6,$AB,$AC,$AD + db $AE,$AF,$B0,$B1,$B2,$B7,$B8,$B9 + db $FF -Func_621c4: ; 621c4 (18:61c4) +SilphCo11Script_621c4: ; 621c4 (18:61c4) xor a ld [wJoypadForbiddenButtonsMask], a -Func_621c8: ; 621c8 (18:61c8) +SilphCo11Script_621c8: ; 621c8 (18:61c8) ld [W_SILPHCO11CURSCRIPT], a ld [W_CURMAPSCRIPT], a ret @@ -102287,7 +102704,7 @@ SilphCo11Script0: ; 621db (18:61db) ld de, MovementData_62216 call MoveSprite ld a, $3 - jp Func_621c8 + jp SilphCo11Script_621c8 CoordsData_62211: ; 62211 (18:6211) db $0D,$06 @@ -102297,7 +102714,7 @@ CoordsData_62211: ; 62211 (18:6211) MovementData_62216: ; 62216 (18:6216) db $00,$00,$00,$FF -Func_6221a: ; 6221a (18:621a) +SilphCo11Script_6221a: ; 6221a (18:621a) ld [$d528], a ld a, $3 ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c @@ -102308,7 +102725,7 @@ Func_6221a: ; 6221a (18:621a) SilphCo11Script5: ; 62227 (18:6227) ld a, [W_ISINBATTLE] ; $d057 cp $ff - jp z, Func_621c4 + jp z, SilphCo11Script_621c4 ld a, [$cf0d] cp $1 jr z, .asm_6223c @@ -102319,7 +102736,7 @@ SilphCo11Script5: ; 62227 (18:6227) ld a, $8 ld b, $0 .asm_62240 - call Func_6221a + call SilphCo11Script_6221a ld a, $f0 ld [wJoypadForbiddenButtonsMask], a ld a, $6 @@ -102334,7 +102751,7 @@ SilphCo11Script5: ; 62227 (18:6227) set 7, [hl] xor a ld [wJoypadForbiddenButtonsMask], a - jp Func_621c8 + jp SilphCo11Script_621c8 SilphCo11Script3: ; 6226a (18:626a) ld a, [$d730] @@ -102353,10 +102770,10 @@ SilphCo11Script3: ; 6226a (18:626a) ld a, $8 ld b, $0 .asm_62288 - call Func_6221a + call SilphCo11Script_6221a call Delay3 ld a, $4 - jp Func_621c8 + jp SilphCo11Script_621c8 SilphCo11Script4: ; 62293 (18:6293) ld hl, $d72d @@ -102372,7 +102789,7 @@ SilphCo11Script4: ; 62293 (18:6293) xor a ld [wJoypadForbiddenButtonsMask], a ld a, $5 - jp Func_621c8 + jp SilphCo11Script_621c8 SilphCo11TextPointers: ; 622b7 (18:62b7) dw SilphCo11Text1 @@ -102496,7 +102913,7 @@ SilphCo11AfterBattleText2: ; 62367 (18:6367) TX_FAR _SilphCo11AfterBattleText2 db "@" -UnknownText_6236c: ; 6236c (18:636c) +UnnamedText_6236c: ; 6236c (18:636c) db $8 ld hl, UnnamedText_6237b call PrintText @@ -102584,7 +103001,44 @@ UnnamedText_62458: ; 62458 (18:6458) TX_FAR _UnnamedText_62458 db "@" -INCBIN "baserom.gbc",$6245d,$624a3 - $6245d +Func_6245d: ; 6245d (18:645d) + call EnableAutoTextBoxDrawing + ld hl, PokeCenterMapIDList + ld a, [W_CURMAP] + ld b, a +.asm_62467 + ld a, [hli] + cp $ff + ret z + cp b + jr z, .asm_62472 + inc hl + inc hl + jr .asm_62467 +.asm_62472 + ld a, [hli] + ld b, a + ld a, [$c109] + cp b + jr nz, .asm_62467 + ld a, [hl] + jp Func_3ef5 + +; format: db map id, 08, text id of PointerTable_3f22 +PokeCenterMapIDList: ; 6247e (18:647e) + db VIRIDIAN_POKECENTER,$08,$0F + db PEWTER_POKECENTER,$08,$10 + db CERULEAN_POKECENTER,$08,$11 + db LAVENDER_POKECENTER,$08,$12 + db VERMILION_POKECENTER,$08,$13 + db CELADON_POKECENTER,$08,$14 + db CELADON_HOTEL,$08,$15 + db FUCHSIA_POKECENTER,$08,$16 + db CINNABAR_POKECENTER,$08,$17 + db SAFFRON_POKECENTER,$08,$18 + db MT_MOON_POKECENTER,$08,$19 + db ROCK_TUNNEL_POKECENTER,$08,$1A + db $FF UnnamedText_624a3: ; 624a3 (18:64a3) TX_FAR _UnnamedText_624a3 @@ -102839,7 +103293,7 @@ Func_70000: ; 70000 (1c:4000) ld bc, (BANK(FallingStar) << 8) + $01 call CopyVideoData ld hl, GameFreakLogoOAMData ; $4140 - ld de, $c360 + ld de, wOAMBuffer + $60 ld bc, $40 call CopyData ld hl, GameFreakShootingStarOAMData ; $4180 @@ -102901,7 +103355,7 @@ Func_70044: ; 70044 (1c:4044) ld a, $18 .asm_70098 push af - ld hl, Unknown_700ee ; $40ee + ld hl, OAMData_700ee ; $40ee ld bc, $4 call CopyData pop af @@ -102909,7 +103363,7 @@ Func_70044: ; 70044 (1c:4044) jr nz, .asm_70098 xor a ld [wWhichTrade], a ; $cd3d - ld hl, Unknown_700f2 ; $40f2 + ld hl, PointerTable_700f2 ; $40f2 ld c, $6 .asm_700af ld a, [hli] @@ -102918,7 +103372,7 @@ Func_70044: ; 70044 (1c:4044) ld d, a push bc push hl - ld hl, $c350 + ld hl, wOAMBuffer + $50 ld c, $4 .asm_700ba ld a, [de] @@ -102954,11 +103408,44 @@ Func_70044: ; 70044 (1c:4044) and a ret -Unknown_700ee: ; 700ee (1c:40ee) -INCBIN "baserom.gbc",$700ee,$700f2 - $700ee - -Unknown_700f2: ; 700f2 (1c:40f2) -INCBIN "baserom.gbc",$700f2,$7011f - $700f2 +OAMData_700ee: ; 700ee (1c:40ee) + db $00,$00,$A2,$90 + +PointerTable_700f2: ; 700f2 (1c:40f2) + dw OAMData_700fe + dw OAMData_70106 + dw OAMData_7010e + dw OAMData_70116 + dw OAMData_7011e + dw OAMData_7011e + +; each entry is only half of an OAM tile +OAMData_700fe: ; 700fe (1c:40fe) + db $68,$30 + db $68,$40 + db $68,$58 + db $68,$78 + +OAMData_70106: ; 70106 (1c:4106) + db $68,$38 + db $68,$48 + db $68,$60 + db $68,$70 + +OAMData_7010e: ; 7010e (1c:410e) + db $68,$34 + db $68,$4C + db $68,$54 + db $68,$64 + +OAMData_70116: ; 70116 (1c:4116) + db $68,$3C + db $68,$5C + db $68,$6C + db $68,$74 + +OAMData_7011e: ; 7011e (1c:411e) + db $FF Func_7011f: ; 7011f (1c:411f) ld b, $8 @@ -103311,13 +103798,13 @@ Func_70423: ; 70423 (1c:4423) ld [$cfc8], a ld [$cfc9], a ld a, $ff - ld [wMusicChannelPointer], a + ld [wMusicHeaderPointer], a jp GBFadeOut2 Func_70433: ; 70433 (1c:4433) - ld de, PokeCenterHealBall ; $44b7 + ld de, PokeCenterFlashingMonitorAndHealBall ; $44b7 ld hl, $87c0 - ld bc, (BANK(PokeCenterHealBall) << 8) + $03 + ld bc, (BANK(PokeCenterFlashingMonitorAndHealBall) << 8) + $03 call CopyVideoData ld hl, $cfcb ld a, [hl] @@ -103329,15 +103816,15 @@ Func_70433: ; 70433 (1c:4433) ld a, $e0 ld [rOBP1], a ; $FF00+$49 ld hl, $c384 - ld de, Unknown_704d7 ; $44d7 + ld de, PokeCenterOAMData ; $44d7 call Func_70503 ld a, $4 - ld [wMusicChannelPointer], a + ld [wMusicHeaderPointer], a ld a, $ff ld [$c0ee], a call PlaySound .asm_70464 - ld a, [wMusicChannelPointer] + ld a, [wMusicHeaderPointer] and a jr nz, .asm_70464 ld a, [W_NUMINPARTY] ; $d163 @@ -103378,11 +103865,17 @@ Func_70433: ; 70433 (1c:4433) ld [hl], a jp UpdateSprites -PokeCenterHealBall: ; 704b7 (1c:44b7) +PokeCenterFlashingMonitorAndHealBall: ; 704b7 (1c:44b7) INCBIN "gfx/pokecenter_ball.2bpp" -Unknown_704d7: ; 704d7 (1c:44d7) -INCBIN "baserom.gbc",$704d7,$704f3 - $704d7 +PokeCenterOAMData: ; 704d7 (1c:44d7) + db $24,$34,$7C,$10 ; heal machine monitor + db $2B,$30,$7D,$10 ; pokeballs 1-6 + db $2B,$38,$7D,$30 + db $30,$30,$7D,$10 + db $30,$38,$7D,$30 + db $35,$30,$7D,$10 + db $35,$38,$7D,$30 Func_704f3: ; 704f3 (1c:44f3) ld b, $8 @@ -103709,7 +104202,7 @@ Func_7077f: ; 7077f (1c:477f) Func_70787: ; 70787 (1c:4787) ld b, $0 - ld hl, Unknown_707a9 ; $47a9 + ld hl, DataTable_707a9 ; $47a9 ld a, [W_CURMAPTILESET] ; $d367 ld c, a .asm_70790 @@ -103734,8 +104227,13 @@ Func_70787: ; 70787 (1c:4787) ld [$cd5b], a ret -Unknown_707a9: ; 707a9 (1c:47a9) -INCBIN "baserom.gbc",$707a9,$707b6 - $707a9 +; format: db tileset id, tile id, value to be put in $cd5b +DataTable_707a9: ; 707a9 (1c:47a9) + db $16,$20,$01 + db $16,$11,$02 + db $11,$22,$02 + db $10,$55,$01 + db $FF Func_707b6: ; 707b6 (1c:47b6) ld c, $a @@ -104058,7 +104556,7 @@ Func_709ef: ; 709ef (1c:49ef) Func_70a19: ; 70a19 (1c:4a19) ld a, [W_CURMAP] ; $d35e ld e, a - ld hl, Unknown_70a3f ; $4a3f + ld hl, MapIDList_70a3f ; $4a3f .asm_70a20 ld a, [hli] cp $ff @@ -104069,7 +104567,7 @@ Func_70a19: ; 70a19 (1c:4a19) set 2, c ret .asm_70a2b - ld hl, Unknown_70a44 ; $4a44 + ld hl, MapIDList_70a44 ; $4a44 .asm_70a2e ld a, [hli] cp $ff @@ -104085,11 +104583,33 @@ Func_70a19: ; 70a19 (1c:4a19) res 2, c ret -Unknown_70a3f: ; 70a3f (1c:4a3f) -INCBIN "baserom.gbc",$70a3f,$70a44 - $70a3f +; Func_70a19 checks if W_CURMAP is equal to one of these maps +MapIDList_70a3f: ; 70a3f (1c:4a3f) + db VIRIDIAN_FOREST + db ROCK_TUNNEL_1 + db SEAFOAM_ISLANDS_1 + db ROCK_TUNNEL_2 + db $FF -Unknown_70a44: ; 70a44 (1c:4a44) -INCBIN "baserom.gbc",$70a44,$70a4d - $70a44 +; Func_70a19 checks if W_CURMAP is in between or equal to each pair of maps +MapIDList_70a44: ; 70a44 (1c:4a44) + ; all MT_MOON maps + db MT_MOON_1 + db MT_MOON_3 + + ; all SS_ANNE maps, VICTORY_ROAD_1, LANCES_ROOM, and HALL_OF_FAME + db SS_ANNE_1 + db HALL_OF_FAME + + ; all POKEMONTOWER maps and Lavender Town buildings + db LAVENDER_POKECENTER + db LAVENDER_HOUSE_2 + + ; all SILPH_CO, MANSION, SAFARI_ZONE, and UNKNOWN_DUNGEON maps, + ; except for SILPH_CO_1F + db SILPH_CO_2F + db UNKNOWN_DUNGEON_1 + db $FF Func_70a4d: ; 70a4d (1c:4a4d) ld hl, $8ff0 @@ -104258,7 +104778,7 @@ Func_70af9: ; 70af9 (1c:4af9) jr .asm_70b1c Func_70b5d: ; 70b5d (1c:4b5d) - ld hl, Unknown_70b72 ; $4b72 + ld hl, DataTable_70b72 ; $4b72 .asm_70b60 ld a, [hli] cp $1 @@ -104272,8 +104792,9 @@ Func_70b5d: ; 70b5d (1c:4b5d) jr nz, Func_70b5d ret -Unknown_70b72: ; 70b72 (1c:4b72) -INCBIN "baserom.gbc",$70b72,$70b7f - $70b72 +DataTable_70b72: ; 70b72 (1c:4b72) + db $F9,$FE,$FF,$FE,$F9,$E4,$90,$40,$00,$40,$90,$E4 + db $01 ; terminator Func_70b7f: ; 70b7f (1c:4b7f) ld c, $9 @@ -104587,15 +105108,111 @@ Func_70d50: ; 70d50 (1c:4d50) ld a, [hli] ld h, [hl] ld l, a - jp asm_70dc5 + jp Func_70dc5 Unknown_70d61: ; 70d61 (1c:4d61) -INCBIN "baserom.gbc",$70d61,$70d93 - $70d61 + db $01 + dw Unknown_70dfe + FuncCoord 18, 6 + dw Coord + + db $01 + dw Unknown_70e04 + FuncCoord 19, 3 + dw Coord + + db $01 + dw Unknown_70e0e + FuncCoord 18, 0 + dw Coord + + db $01 + dw Unknown_70e20 + FuncCoord 14, 0 + dw Coord + + db $01 + dw Unknown_70e2e + FuncCoord 10, 0 + dw Coord + + db $00 + dw Unknown_70e2e + FuncCoord 9, 0 + dw Coord + + db $00 + dw Unknown_70e20 + FuncCoord 5, 0 + dw Coord + + db $00 + dw Unknown_70e0e + FuncCoord 1, 0 + dw Coord + + db $00 + dw Unknown_70e04 + FuncCoord 0, 3 + dw Coord + + db $00 + dw Unknown_70dfe + FuncCoord 1, 6 + dw Coord Unknown_70d93: ; 70d93 (1c:4d93) -INCBIN "baserom.gbc",$70d93,$70dc5 - $70d93 + db $00 + dw Unknown_70dfe + FuncCoord 1, 11 + dw Coord + + db $00 + dw Unknown_70e04 + FuncCoord 0, 14 + dw Coord + + db $00 + dw Unknown_70e0e + FuncCoord 1, 17 + dw Coord + + db $00 + dw Unknown_70e20 + FuncCoord 5, 17 + dw Coord + + db $00 + dw Unknown_70e2e + FuncCoord 9, 17 + dw Coord + + db $01 + dw Unknown_70e2e + FuncCoord 10, 17 + dw Coord + + db $01 + dw Unknown_70e20 + FuncCoord 14, 17 + dw Coord + + db $01 + dw Unknown_70e0e + FuncCoord 18, 17 + dw Coord + + db $01 + dw Unknown_70e04 + FuncCoord 19, 14 + dw Coord -asm_70dc5 + db $01 + dw Unknown_70dfe + FuncCoord 18, 11 + dw Coord + +Func_70dc5: ; 70dc5 (1c:4dc5) push hl ld a, [de] ld c, a @@ -104625,7 +105242,7 @@ asm_70dc5 cp $ff ret z and a - jr z, asm_70dc5 + jr z, Func_70dc5 ld c, a .asm_70def ld a, [$cd3e] @@ -104638,9 +105255,22 @@ asm_70dc5 .asm_70df9 dec c jr nz, .asm_70def - jr asm_70dc5 + jr Func_70dc5 + +Unknown_70dfe: ; 70dfe (1c:4dfe) + db $02,$03,$05,$04,$09,$FF + +Unknown_70e04: ; 70e04 (1c:4e04) + db $01,$01,$02,$02,$04,$02,$04,$02,$03,$FF + +Unknown_70e0e: ; 70e0e (1c:4e0e) + db $02,$01,$03,$01,$04,$01,$04,$01,$04,$01,$03,$01,$02,$01,$01,$01,$01,$FF + +Unknown_70e20: ; 70e20 (1c:4e20) + db $04,$01,$04,$00,$03,$01,$03,$00,$02,$01,$02,$00,$01,$FF -INCBIN "baserom.gbc",$70dfe,$70e3e - $70dfe +Unknown_70e2e: ; 70e2e (1c:4e2e) + db $04,$00,$03,$00,$03,$00,$02,$00,$02,$00,$01,$00,$01,$00,$01,$FF Func_70e3e: ; 70e3e (1c:4e3e) call Func_7109b @@ -104670,7 +105300,7 @@ Func_70e3e: ; 70e3e (1c:4e3e) xor a ld [wWhichTrade], a ; $cd3d pop af - jr asm_70e92 + jr Func_70e92 Func_70e7e: ; 70e7e (1c:4e7e) ld hl, wTileMap @@ -104682,7 +105312,8 @@ Func_70e7e: ; 70e7e (1c:4e7e) ld b, $0 add hl, bc ld a, [hl] -asm_70e92: ; 70e92 (1c:4e92) + +Func_70e92: ; 70e92 (1c:4e92) ld de, $cee9 call Func_712f1 ld a, [de] @@ -105240,7 +105871,7 @@ Func_712d9: ; 712d9 (1c:52d9) jr .asm_712e4 Func_712f1: ; 712f1 (1c:52f1) - cp $25 + cp REDS_HOUSE_1F jr c, .asm_71304 ld bc, $4 ld hl, InternalMapEntries ; $5382 @@ -105523,7 +106154,7 @@ Func_716ff: ; 716ff (1c:56ff) ld a, [hl] asm_7170a: ; 7170a (1c:570a) ld c, a - ld hl, Unknown_71769 ; $5769 + ld hl, DataTable_71769 ; $5769 add hl, bc ld a, [$cf1b] xor $1 @@ -105583,8 +106214,8 @@ asm_7170a: ; 7170a (1c:570a) ld a, c jr .asm_71721 -Unknown_71769: ; 71769 (1c:5769) -INCBIN "baserom.gbc",$71769,$7176c - $71769 +DataTable_71769: ; 71769 (1c:5769) + db $05,$10,$20 Func_7176c: ; 7176c (1c:576c) ld hl, MonOverworldSpritePointers ; $57c0 @@ -106004,7 +106635,7 @@ Predef54: ; 71ad9 (1c:5ad9) pop af ld l,a ld h,$0 - ld de,Unknown_71d64 ; $5d64 + ld de,InGameTradeTextPointers ; $5d64 add hl,hl add hl,de ld a,[hli] @@ -106230,8 +106861,31 @@ Func_71d4f: ; 71d4f (1c:5d4f) Unknown_71d59: ; 71d59 (1c:5d59) INCBIN "baserom.gbc",$71d59,$71d64 - $71d59 -Unknown_71d64: ; 71d64 (1c:5d64) -INCBIN "baserom.gbc",$71d64,$71d88 - $71d64 +InGameTradeTextPointers: ; 71d64 (1c:5d64) + dw TradeTextPointers1 + dw TradeTextPointers2 + dw TradeTextPointers3 + +TradeTextPointers1: ; 71d6a (1c:5d6a) + dw UnnamedText_71d94 + dw UnnamedText_71d99 + dw UnnamedText_71d9e + dw UnnamedText_71da3 + dw UnnamedText_71da8 + +TradeTextPointers2: ; 71d74 (1c:5d74) + dw UnnamedText_71dad + dw UnnamedText_71db2 + dw UnnamedText_71db7 + dw UnnamedText_71dbc + dw UnnamedText_71dc1 + +TradeTextPointers3: ; 71d7e (1c:5d7e) + dw UnnamedText_71dc6 + dw UnnamedText_71dcb + dw UnnamedText_71dd0 + dw UnnamedText_71dd5 + dw UnnamedText_71dda UnnamedText_71d88: ; 71d88 (1c:5d88) TX_FAR _UnnamedText_71d88 @@ -106502,7 +107156,7 @@ LoadTrainerCardBadgePalettes: ; 71f3b (1c:5f3b) ld de, $cc5b ld bc, $40 call CopyData - ld de, Unknown_71f8f + ld de, LoopCounts_71f8f ld hl, $cc5d ld a, [W_OBTAINEDBADGES] ld c, $8 @@ -106551,8 +107205,9 @@ PointerTable_71f73: ; 71f73 (1c:5f73) dw Func_71ebb dw LoadTrainerCardBadgePalettes -Unknown_71f8f: ; 71f8f (1c:5f8f) -INCBIN "baserom.gbc",$71f8f,$71f97 - $71f8f +; each byte is the number of loops to make in .asm_71f5b for each badge +LoopCounts_71f8f: ; 71f8f (1c:5f8f) + db $06,$06,$06,$12,$06,$06,$06,$06 DeterminePaletteID: ; 71f97 (1c:5f97) bit 3, a ; bit 3 of battle status 3, set if current Pokemon is transformed @@ -107352,10 +108007,11 @@ IF _BLUE INCBIN "gfx/blue/sgbborder.map" ENDC -INCBIN "baserom.gbc",$72e88,$72ede - $72e88 + ds $56 Unknown_72ede: ; 72ede (1c:6ede) -INCBIN "baserom.gbc",$72ede,$72f88 - $72ede + ds $AA + IF _RED RGB 30,29,29 ; PAL_SGB1 RGB 25,22,25 @@ -107369,7 +108025,7 @@ IF _BLUE RGB 16,20,27 ENDC -INCBIN "baserom.gbc",$72f90,$72fa8 - $72f90 + ds $18 IF _RED RGB 30,29,29 ; PAL_SGB2 @@ -107384,7 +108040,7 @@ IF _BLUE RGB 28,25,15 ENDC -INCBIN "baserom.gbc",$72fb0,$72fc8 - $72fb0 + ds $18 IF _RED RGB 30,29,29 ; PAL_SGB3 @@ -107399,7 +108055,7 @@ IF _BLUE RGB 14,22,17 ENDC -INCBIN "baserom.gbc",$72fd0,$72fe8 - $72fd0 + ds $18 SGBBorderGraphics: ; 72fe8 (1c:6fe8) IF _RED @@ -107585,7 +108241,7 @@ SaveSAV: ;$770a NowSavingString: db "Now saving...@" -SaveSAVConfirm: ; $7768 +SaveSAVConfirm: ; 73768 (1c:7768) call PrintText FuncCoord 0, 7 ld hl,Coord @@ -107724,7 +108380,7 @@ Func_73863: ; 73863 (1c:7863) ret Func_7387b: ; 7387b (1c:787b) - ld hl, Unknown_73895 ; $7895 + ld hl, PointerTable_73895 ; $7895 ld a, [$d5a0] and $7f cp $6 @@ -107742,8 +108398,13 @@ Func_7387b: ; 7387b (1c:787b) ld l, a ret -Unknown_73895: ; 73895 (1c:7895) -INCBIN "baserom.gbc",$73895,$738a1 - $73895 +PointerTable_73895: ; 73895 (1c:7895) + dw $A000 + dw $A462 + dw $A8C4 + dw $AD26 + dw $B188 + dw $B5EA Func_738a1: ; 738a1 (1c:78a1) ld hl, UnnamedText_73909 ; $7909 @@ -108163,7 +108824,7 @@ Func_7405c: ; 7405c (1d:405c) jp Func_7418e Func_740ba: ; 740ba (1d:40ba) - ld hl, Unknown_74160 ; $4160 + ld hl, DataTable_74160 ; $4160 ld b, $4 .asm_740bf ld a, [hli] @@ -108268,8 +108929,8 @@ Func_74152: ; 74152 (1d:4152) jr z, .asm_7415a ret -Unknown_74160: ; 74160 (1d:4160) -INCBIN "baserom.gbc",$74160,$74164 - $74160 +DataTable_74160: ; 74160 (1d:4160) + db $C0,$D0,$E0,$F0 Func_74164: ; 74164 (1d:4164) ld a, l @@ -108388,7 +109049,7 @@ Func_7418e: ; 7418e (1d:418e) call CopyVideoData FuncCoord 4, 8 ; $c444 ld hl, Coord - ld de, UnknownText_74229 ; $4229 + ld de, UnnamedText_74229 ; $4229 call PlaceString FuncCoord 4, 9 ; $c458 ld hl, Coord @@ -108396,7 +109057,7 @@ Func_7418e: ; 7418e (1d:418e) call PlaceString jp Func_740ba -UnknownText_74229: ; 74229 (1d:4229) +UnnamedText_74229: ; 74229 (1d:4229) db $60," ",$62," ",$64," ",$64," ",$66," ",$68,"@" db $61," ",$63," ",$65," ",$65," ",$67," ",$69,"@" @@ -108404,7 +109065,6 @@ Unknown_74243: ; 74243 (1d:4243) INCBIN "baserom.gbc",$74243,$742c3 - $74243 CreditsTextPointers: ; 742c3 (1d:42c3) - dw CredVersion dw CredTajiri dw CredTaOota @@ -108654,7 +109314,7 @@ PrintStatusAilment: ; 747de (1d:47de) ld [hl], "R" ret -Unknown_7481f: ; 7481f (1d:481f) +Func_7481f: ; 7481f (1d:481f) ld hl, HiddenItemCoords ld b, $0 .asm_74824 @@ -111408,7 +112068,7 @@ Func_75d38: ; 75d38 (1d:5d38) xor a ld [$cd37], a ld de, $cc5b - ld hl, Unknown_75d68 + ld hl, FossilsList .asm_75d42 ld a, [hli] and a @@ -111437,8 +112097,11 @@ Func_75d38: ; 75d38 (1d:5d38) ld [de], a ret -Unknown_75d68: ; 75d68 (1d:5d68) -INCBIN "baserom.gbc",$75d68,$75d6c - $75d68 +FossilsList: ; 75d68 (1d:5d68) + db DOME_FOSSIL + db HELIX_FOSSIL + db OLD_AMBER + db $00 Lab4Text1: ; 75d6c (1d:5d6c) db $8 @@ -114326,6 +114989,8 @@ Func_79329: ; 79329 (1e:5329) xor a ld [hli], a ret + +Func_79337: ; 79337 (1e:5337) ld l, e ld h, d @@ -114347,6 +115012,8 @@ Func_79339: ; 79339 (1e:5339) dec c jr nz, .asm_7933c ret + +Func_79350: ; 79350 (1e:5350) ld l, e ld h, d @@ -114574,7 +115241,7 @@ Func_794d4: ; 794d4 (1e:54d4) ld a, [$d09f] cp $0 jr nz, .asm_794e7 - call asm_7985b + call Func_7985b dec hl jr .asm_794eb .asm_794e7 @@ -115039,7 +115706,7 @@ Func_79820: ; 79820 (1e:5820) ret Func_79842: ; 79842 (1e:5842) - ld hl, Unknown_79aea ; $5aea + ld hl, PointerTable_79aea ; $5aea ld e, a ld d, $0 add hl, de @@ -115058,12 +115725,13 @@ Func_79842: ; 79842 (1e:5842) and $f ld b, a ret -asm_7985b: ; 7985b (1e:585b) + +Func_7985b: ; 7985b (1e:585b) ld a, [hld] ld [hli], a inc hl dec c - jr nz, asm_7985b + jr nz, Func_7985b ret Func_79862: ; 79862 (1e:5862) @@ -115348,8 +116016,23 @@ Func_79ace: ; 79ace (1e:5ace) pop hl ret -Unknown_79aea: ; 79aea (1e:5aea) -INCBIN "baserom.gbc",$79aea,$79b02 - $79aea +PointerTable_79aea: ; 79aea (1e:5aea) + dw $5b24 + db $77 + dw $5b55 + db $57 + dw $5b78 + db $37 + dw $5b8D + db $77 + dw $5bBE + db $77 + dw $5bEF + db $77 + dw $5c20 + db $86 + dw $5c50 + db $3C Unknown_79b02: ; 79b02 (1e:5b02) INCBIN "baserom.gbc",$79b02,$79b1b - $79b02 @@ -115599,7 +116282,7 @@ Func_79f54: ; 79f54 (1e:5f54) Func_79f92: ; 79f92 (1e:5f92) ld a, [$c109] - ld hl, Unknown_79fb0 ; $5fb0 + ld hl, PointerTable_79fb0 ; $5fb0 ld c, a ld b, $0 add hl, bc @@ -115619,8 +116302,18 @@ Func_79f92: ; 79f92 (1e:5f92) pop hl ret -Unknown_79fb0: ; 79fb0 (1e:5fb0) -INCBIN "baserom.gbc",$79fb0,$79fc0 - $79fb0 +PointerTable_79fb0: ; 79fb0 (1e:5fb0) + db $FF,$00 + dw Func_79350 + + db $01,$00 + dw Func_79350 + + db $01,$01 + dw Func_79337 + + db $FF,$01 + dw Func_79337 Func_79fc0: ; 79fc0 (1e:5fc0) ld hl, $8fc0 @@ -118045,7 +118738,7 @@ UnnamedText_802a5: ; 802a5 (20:42a5) db "Congratulations!", $51 db "Here you go!", $58 -UnnamedText_802d9: ; 802d9 (20:42d9) +_UnnamedText_590a5: ; 802d9 (20:42d9) db $0, $52, " got the", $4f db "@" TX_RAM $cc5b @@ -120928,7 +121621,7 @@ UnnamedText_88bfd: ; 88bfd (22:4bfd) _UnnamedText_529e9: ; 88c6f (22:4c6f) db $0, "Turn the page?", $57 -UnnamedText_88c7f: ; 88c7f (22:4c7f) +_UnnamedText_529ee: ; 88c7f (22:4c7f) db $0, "GIRL: Hey! Don't", $4f db "look at my notes!@@" @@ -121106,7 +121799,7 @@ _UnnamedText_5ddf7: ; 893a7 (22:53a7) db $0, "Nope, there's", $4f db "only trash here.", $57 -UnnamedText_893c6: ; 893c6 (22:53c6) +_UnnamedText_5dec8: ; 893c6 (22:53c6) db $0, "Hey! There's a", $4f db "switch under the", $55 db "trash!", $55 @@ -121120,13 +121813,13 @@ _UnnamedText_5dedb: ; 89418 (22:5418) db "under the trash!", $55 db "Turn it on!", $58 -UnnamedText_89451: ; 89451 (22:5451) +_UnnamedText_5deef: ; 89451 (22:5451) db $0, "The 2nd electric", $4f db "lock opened!", $51 db "The motorized door", $4f db "opened!@@" -UnnamedText_8948c: ; 8948c (22:548c) +_UnnamedText_5df02: ; 8948c (22:548c) db $0, "Nope! There's", $4f db "only trash here.", $55 db "Hey! The electric", $55 @@ -121403,22 +122096,22 @@ UnnamedText_89a2e: ; 89a2e (22:5a2e) db $0, " is", $55 db "disabled!", $58 -UnnamedText_89a40: ; 89a40 (22:5a40) +_UnnamedText_3dafb: ; 89a40 (22:5a40) db $0, $5a, "@@" -UnnamedText_89a44: ; 89a44 (22:5a44) +_UnnamedText_3db2d: ; 89a44 (22:5a44) db $0, $4f db "used @@" -UnnamedText_89a4d: ; 89a4d (22:5a4d) +_UnnamedText_3db34: ; 89a4d (22:5a4d) db $0, $4f db "used @@" -UnnamedText_89a56: ; 89a56 (22:5a56) +_UnnamedText_3db43: ; 89a56 (22:5a56) db $0, "instead,", $55 db "@@" -UnnamedText_89a62: ; 89a62 (22:5a62) +_UnnamedText_3db4c: ; 89a62 (22:5a62) TX_RAM $cf4b db $0, "@" @@ -121508,16 +122201,16 @@ UnnamedText_89bb5: ; 89bb5 (22:5bb5) TX_NUM $cd05, 1, 1 db $0, " times!", $58 -UnnamedText_89bc2: ; 89bc2 (22:5bc2) +_UnnamedText_554b2: ; 89bc2 (22:5bc2) TX_RAM $cd6d db $0, " gained", $4f db "@@" -UnnamedText_89bd0: ; 89bd0 (22:5bd0) +_UnnamedText_554cb: ; 89bd0 (22:5bd0) db $0, "with EXP.ALL,", $55 db "@@" -UnnamedText_89be1: ; 89be1 (22:5be1) +_UnnamedText_554d4: ; 89be1 (22:5be1) db $0, "a boosted", $55 db "@@" _UnnamedText_554d8: ; 89bee (22:5bee) @@ -121563,26 +122256,34 @@ _UnnamedText_58e54: ; 89c9e (22:5c9e) db $0, "Darn! The GHOST", $4f db "can't be ID'd!", $58 -UnknownText_89cbc: ; 89cbc (22:5cbc) +_UnnamedText_58eae: ; 89cbc (22:5cbc) db $0, "Go! @@" + +_UnnamedText_58eb5: ; 89cc3 (22:5cc3) db $0, "Do it! @@" + +_UnnamedText_58ebc: ; 89ccd (22:5ccd) db $0, "Get'm! @@" -UnknownText_89cd6: ; 89cd6 (22:5cd6) +_UnnamedText_58ec3: ; 89cd6 (22:5cd6) db $0, "The enemy's weak!", $4f db "Get'm! @@" _UnnamedText_58ecc: ; 89cf0 (22:5cf0) TX_RAM W_PLAYERMONNAME db $0, "!", $57 + +_UnnamedText_58ed7: ; 89cf6 (22:5cf6) TX_RAM W_PLAYERMONNAME db $0, " @@" + +_UnnamedText_58f25: ; 89cfd (22:5cfd) db $0, "enough!@@" -_UnnamedText_89d07: ; 89d07 (22:5d07) +_UnnamedText_58f2c: ; 89d07 (22:5d07) db $0, "OK!@@" -UnknownText_89d0d: ; 89d0d (22:5d0d) +_UnnamedText_58f33: ; 89d0d (22:5d0d) db $0, "good!@@" _UnnamedText_58f3e: ; 89d15 (22:5d15) @@ -121807,7 +122508,7 @@ _MonIsTakenOutText: ; 0x8a1b9 db $0, " is", $4f db "taken out.", $55 db "Got @" -UnknownText_8a1d1: ; 8a1d1 (22:61d1) +UnnamedText_8a1d1: ; 8a1d1 (22:61d1) TX_RAM $cf4b db $0, ".", $58 @@ -121910,7 +122611,7 @@ _DoYouWantToNicknameText: ; 0x8a605 db "give a nickname", $55 db "to @" -UnknownText_8a629: ; 8a629 (22:6629) +UnnamedText_8a629: ; 8a629 (22:6629) TX_RAM $cd6d db $0, "?", $57 @@ -121928,7 +122629,7 @@ _SSAnne8AfterBattleText2: ; 8a677 (22:6677) db $0, " and", $4f db "@" -UnknownText_8a681: ; 8a681 (22:6681) +UnnamedText_8a681: ; 8a681 (22:6681) TX_RAM $cd6d db $0, " will", $55 db "be traded.", $57 @@ -122079,7 +122780,7 @@ _UnnamedText_56419: ; 8abf0 (22:6bf0) db $0, "Fine, I'll look", $4f db "after @" -UnknownText_8ac07: ; 8ac07 (22:6c07) +UnnamedText_8ac07: ; 8ac07 (22:6c07) TX_RAM $cd6d db $0, $55 db "for a while.", $58 @@ -122091,14 +122792,14 @@ _UnnamedText_5641e: ; 8ac19 (22:6c19) _UnnamedText_56423: ; 8ac32 (22:6c32) db $0, "Your @" -UnknownText_8ac39: ; 8ac39 (22:6c39) +UnnamedText_8ac39: ; 8ac39 (22:6c39) TX_RAM $cd6d db $0, $4f db "has grown a lot!", $51 db "By level, it's", $4f db "grown by @" -UnknownText_8ac67: ; 8ac67 (22:6c67) +UnnamedText_8ac67: ; 8ac67 (22:6c67) TX_NUM $cd3e,$1,$3 db $0, "!", $51 db "Aren't I great?", $58 @@ -122109,7 +122810,7 @@ _UnnamedText_56428: ; 8ac7d (22:6c7d) ;XXX db $2, $3f, $cd, $c2 -UnknownText_8ac8f: ; 8ac8f (22:6c8f) +UnnamedText_8ac8f: ; 8ac8f (22:6c8f) db $0, $4f db "for the return", $55 db "of this #MON.", $57 @@ -122118,7 +122819,7 @@ _UnnamedText_5642d: ; 8acae (22:6cae) db $0, $52, " got", $4f db "@" -UnknownText_8acb6: ; 8acb6 (22:6cb6) +UnnamedText_8acb6: ; 8acb6 (22:6cb6) TX_RAM $da49 db $0, " back!", $57 @@ -122126,7 +122827,7 @@ _UnnamedText_56432: ; 8acc1 (22:6cc1) db $0, "Back already?", $4f db "Your @" -UnknownText_8acd6: ; 8acd6 (22:6cd6) +UnnamedText_8acd6: ; 8acd6 (22:6cd6) TX_RAM $cd6d db $0, $55 db "needs some more", $55 @@ -122423,7 +123124,7 @@ _UnnamedText_564c5: ; 8ca00 (23:4a00) db $52, " received", $4f db "a @" -UnknownText_8ca48: ; 8ca48 (23:4a48) +UnnamedText_8ca48: ; 8ca48 (23:4a48) TX_RAM $cf4b db $0, "!@@" @@ -122751,7 +123452,7 @@ _UnnamedText_1cae8: ; 8d643 (23:5643) db $0, $52, " got", $4f db "@" -UnknownText_8d64b: ; 8d64b (23:564b) +UnnamedText_8d64b: ; 8d64b (23:564b) TX_RAM $cf4b db $0, "!@@" @@ -124793,13 +125494,13 @@ _VictoryRoadGuardText1: ; 9261e (24:661e) db "only if you have", $55 db "the @" -UnknownText_92647: ; 92647 (24:6647) +UnnamedText_92647: ; 92647 (24:6647) TX_RAM $cd6d db $0, "!", $51 db "You don't have the", $4f db "@" -UnknownText_92660: ; 92660 (24:6660) +UnnamedText_92660: ; 92660 (24:6660) TX_RAM $cd6d db $0, " yet!", $51 db "You have to have", $4f @@ -124811,13 +125512,13 @@ _VictoryRoadGuardText2: ; 92696 (24:6696) db "only if you have", $55 db "the @" -UnknownText_926bf: ; 926bf (24:66bf) +UnnamedText_926bf: ; 926bf (24:66bf) TX_RAM $cd6d db $0, "!", $51 db "Oh! That is the", $4f db "@" -UnknownText_926d6: ; 926d6 (24:66d6) +UnnamedText_926d6: ; 926d6 (24:66d6) TX_RAM $cd6d db $0, "!@@" @@ -124844,7 +125545,7 @@ _UnnamedText_5151a: ; 92779 (24:6779) db $0, $52, " received", $4f db "a @" -UnknownText_92788: ; 92788 (24:6788) +UnnamedText_92788: ; 92788 (24:6788) TX_RAM $cf4b db $0, "!@@" @@ -125123,14 +125824,14 @@ _UnnamedText_3af43: ; 946cf (25:46cf) db $0, $4f db "into @" -UnknownText_946d7: ; 946d7 (25:46d7) +UnnamedText_946d7: ; 946d7 (25:46d7) TX_RAM $cd6d db $0, "!", $57 _UnnamedText_3af48: ; 946dd (25:46dd) db $0, "Huh? @" -UnknownText_946e4: ; 946e4 (25:46e4) +UnnamedText_946e4: ; 946e4 (25:46e4) TX_RAM $cf4b db $0, $4f db "stopped evolving!", $58 @@ -125138,7 +125839,7 @@ UnknownText_946e4: ; 946e4 (25:46e4) _UnnamedText_3af4d: ; 946fb (25:46fb) db $0, "What? @" -UnknownText_94703: ; 94703 (25:4703) +UnnamedText_94703: ; 94703 (25:4703) TX_RAM $cf4b db $0, $4f db "is evolving!", $57 @@ -125171,29 +125872,29 @@ _UnnamedText_3f423: ; 94782 (25:4782) db $0, "Fire defrosted", $4f db $59, "!", $58 -UnknownText_94795: ; 94795 (25:4795) +_UnnamedText_3f528: ; 94795 (25:4795) db $0, $5a, "'s", $4f db "@" -UnknownText_9479a: ; 9479a (25:479a) +UnnamedText_9479a: ; 9479a (25:479a) TX_RAM $cf4b db $0, "@@" -UnknownText_947a0: ; 947a0 (25:47a0) +_UnnamedText_3f542: ; 947a0 (25:47a0) db $0, $4c, "greatly@@" _UnnamedText_3f547: ; 947ab (25:47ab) db $0, " rose!", $58 -UnknownText_947b3: ; 947b3 (25:47b3) +_UnnamedText_3f661: ; 947b3 (25:47b3) db $0, $59, "'s", $4f db "@" -UnknownText_947b8: ; 947b8 (25:47b8) +UnnamedText_947b8: ; 947b8 (25:47b8) TX_RAM $cf4b db $0, "@@" -UnknownText_947be: ; 947be (25:47be) +_UnnamedText_3f67e: ; 947be (25:47be) db $0, $4c, "greatly@@" _UnnamedText_3f683: ; 947c9 (25:47c9) @@ -125211,7 +125912,7 @@ _UnnamedText_3f80c: ; 947f9 (25:47f9) db $0, $59, $4f db "was blown away!", $58 -UnnamedText_9480c: ; 9480c (25:480c) +_UnnamedText_3f8c8: ; 9480c (25:480c) db $0, $5a, "@@" _UnnamedText_3f8f9: ; 94810 (25:4810) @@ -127642,20 +128343,20 @@ _UnnamedText_484ee: ; 9cbb5 (27:4bb5) db $0, "Give her which", $4f db "drink?", $57 -UnnamedText_9cbcc: ; 9cbcc (27:4bcc) +_UnnamedText_484f3: ; 9cbcc (27:4bcc) db $0, "Yay!", $51 db "FRESH WATER!", $51 db "Thank you!", $51 db "You can have this", $4f db "from me!@@" -UnnamedText_9cc06: ; 9cc06 (27:4c06) +_UnnamedText_484f9: ; 9cc06 (27:4c06) db $0, $52, " received", $4f db "@" TX_RAM $cf4b db $0, "!@@" -UnnamedText_9cc1a: ; 9cc1a (27:4c1a) +_UnnamedText_484fe: ; 9cc1a (27:4c1a) db $0, $51 db "@" TX_RAM $cf4b @@ -127664,20 +128365,20 @@ UnnamedText_9cc1a: ; 9cc1a (27:4c1a) db "It can freeze the", $4f db "target sometimes!@@" -UnnamedText_9cc5a: ; 9cc5a (27:4c5a) +_UnnamedText_48504: ; 9cc5a (27:4c5a) db $0, "Yay!", $51 db "SODA POP!", $51 db "Thank you!", $51 db "You can have this", $4f db "from me!@@" -UnnamedText_9cc91: ; 9cc91 (27:4c91) +_UnnamedText_4850a: ; 9cc91 (27:4c91) db $0, $52, " received", $4f db "@" TX_RAM $cf4b db $0, "!@@" -UnnamedText_9cca5: ; 9cca5 (27:4ca5) +_UnnamedText_4850f: ; 9cca5 (27:4ca5) db $0, $51 db "@" TX_RAM $cf4b @@ -127686,27 +128387,27 @@ UnnamedText_9cca5: ; 9cca5 (27:4ca5) db "It can spook the", $4f db "target sometimes!@@" -UnnamedText_9cce6: ; 9cce6 (27:4ce6) +_UnnamedText_48515: ; 9cce6 (27:4ce6) db $0, "Yay!", $51 db "LEMONADE!", $51 db "Thank you!", $51 db "You can have this", $4f db "from me!@@" -ReceivedTM49Text: ; 9cd1d (27:4d1d) +_ReceivedTM49Text: ; 9cd1d (27:4d1d) db $0, $52, " received", $4f db "TM49!@@" -UnnamedText_9cd30: ; 9cd30 (27:4d30) +_UnnamedText_48520: ; 9cd30 (27:4d30) db $0, $51 db "TM49 contains", $4f db "TRI ATTACK!@@" -UnnamedText_9cd4d: ; 9cd4d (27:4d4d) +_UnnamedText_48526: ; 9cd4d (27:4d4d) db $0, "You don't have", $4f db "space for this!@@" -UnnamedText_9cd6d: ; 9cd6d (27:4d6d) +_UnnamedText_4852c: ; 9cd6d (27:4d6d) db $0, "No thank you!", $4f db "I'm not thirsty", $55 db "after all!@@" @@ -127724,7 +128425,7 @@ _UnnamedText_48598: ; 9cdee (27:4dee) db "I want something", $55 db "to drink!", $57 -_UnnamedText_4859d: ; 9ce16 (27:4e16) +_CeladonMartRoofText4: ; 9ce16 (27:4e16) db $0, "I'm thirsty!", $4f db "I want something", $55 db "to drink!", $51 @@ -129828,7 +130529,7 @@ _CannotGetOffHereText: ; a4168 (29:4168) db $0, "You can't get off", $4f db "here.", $58 -UnnamedText_a4180: ; a4180 (29:4180) +_UnnamedText_4fe39: ; a4180 (29:4180) db $0, $52, " got", $4f db "@" TX_RAM $cd6d diff --git a/maps/unusedblocks58d7d.blk b/maps/unusedblocks58d7d.blk new file mode 100755 index 00000000..9641efe4 --- /dev/null +++ b/maps/unusedblocks58d7d.blk @@ -0,0 +1,2 @@ +  !"# +  \ No newline at end of file diff --git a/maps/unusedblocks601f8.blk b/maps/unusedblocks601f8.blk new file mode 100755 index 00000000..eb9bb094 --- /dev/null +++ b/maps/unusedblocks601f8.blk @@ -0,0 +1 @@ +   ,+>++++> \ No newline at end of file diff --git a/maps/unusedblocks60cef.blk b/maps/unusedblocks60cef.blk new file mode 100755 index 00000000..21808bb7 --- /dev/null +++ b/maps/unusedblocks60cef.blk @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wram.asm b/wram.asm index 1605a6f0..bdb15701 100644 --- a/wram.asm +++ b/wram.asm @@ -321,7 +321,7 @@ wWalkCounter: ; cfc5 ds 1 -wMusicChannelPointer: ; cfc7 +wMusicHeaderPointer: ; cfc7 ; (the current music channel address - $4000) / 3 ds 1 -- cgit v1.3.1-sl0p