Joypad simulation CD38 - Index for joypad input simulation. CC97 to CCA0 : buffer for when swapping party Pokémonīattle CCD5 - Number of turns in current battleĬCDB - Move menu type : 0 is regular, 1 is mimic, other are text boxes (learn, PP-refill.)ĬCEE - Player move that the enemy disabledĬCEF - Enemy move that the player disabledĬD05~CD06 - Amount of damage the enemy accumulated while BidingĬD1A - Player's Pokémon Attack modifier (7 means no modifier)ĬD1E - Player's Pokémon Accuracy modifierĬD2D - Engaged Trainer class / legendary Pokémon IDĬD2E - Engaged Trainer roster ID / Enemy's Pokémon Attack modifier (7 means no modifier) The meaning of CC47 depends on the context
POKEMON BLUE ROM KIGB PC
Menu Data Coordinates of the position of the cursor for the top menu item (id 0)ĬC26 - Currently selected menu item (topmost is 0)ĬC29 - bitmask applied to the key port for the current menuĬC2A - ID of the previously selected menu itemĬC2B - Last position of the cursor on the party / Bill's PC screenĬC2C - Last position of the cursor on the item screenĬC2D - Last position of the cursor on the START / battle menuĬC2F - Index (in party) of the Pokémon currently sent outĬC30~CC31 - Pointer to cursor tile in C3A0 bufferĬC36 - ID of the first displayed menu itemĬC35 - Item highlighted with Select (01 = first item, 00 = no item, etc.)ĬC3C to CC49 hold data used for Cable Club stuff Tile Data C3A0 to C507 : Buffer of all tiles onscreenĬ508 to C5CF : Copy of previous buffer (used to restore tiles after closing menus) Holds info for 16 sprites with $10 bytes eachĬ1x0: picture ID (fixed, loaded at map init)Ĭ1x1: movement status (0: uninitialized, 1: ready, 2: delayed, 3: moving)Ĭ1x2: sprite image index (changed on update, $ff if off screen, includes facing direction, progress in walking animation and a sprite-specific offset)Ĭ1x3: Y screen position delta (-1,0 or 1 added to c1x4 on each walking animation update)Ĭ1x4: Y screen position (in pixels, always 4 pixels above grid which makes sprites appear to be in the center of a tile)Ĭ1x5: X screen position delta (-1,0 or 1 added to c1圆 on each walking animation update)Ĭ1圆: X screen position (in pixels, snaps to grid if not currently walking)Ĭ1x7: intra-animation-frame counter (counting upwards to 4 until c1x8 is incremented)Ĭ1x8: animation frame counter (increased every 4 updates, hold four states (totalling to 16 walking frames)Ĭ1x9: facing direction (0: down, 4: up, 8: left, $c: right)Ĭ200 to C2FF : More data for all sprites on the current mapĬ2x0: walk animation counter (counting from $10 backwards when moving)Ĭ2x2: Y displacement (initialized at 8, supposed to keep moving sprites from moving too far, but bugged)Ĭ2x3: X displacement (initialized at 8, supposed to keep moving sprites from moving too far, but bugged)Ĭ2x4: Y position (in 2x2 tile grid steps, topmost 2x2 tile has value 4)Ĭ2x5: X position (in 2x2 tile grid steps, leftmost 2x2 tile has value 4)Ĭ2圆: movement byte 1 (determines whether a sprite can move, $ff:not moving, $fe:random movements, others unknown)Ĭ2x7: (?) (set to $80 when in grass, else $0 may be used to draw grass above the sprite)Ĭ2x8: delay until next movement (counted downwards, status (c1x1) is set to ready if reached 0)Ĭ2圎: sprite image base offset (in video ram, player always has value 1, used to compute c1x2)Ĭ300 to C39F : OAM DMA buffer (source for the DMA Transfer) Sprite Data C100 to C1FF : Data for all sprites on the current map Other bits : if non-zero, pauses music and continues SFX until it ends.Ĭ0DE - Volumes for all music channels (and fade for those who support it)īytes C0F3 to C0FF are undocumented (if used) Other Pokémon with even larger corruptions reach WRAM - usually leading to crashes.Īddresses C000 to C0F2 are used by the sound engine.Ĭ002 - Bit 7 : 1 if audio is muted.
![pokemon blue rom kigb pokemon blue rom kigb](https://gamefabrique.com/storage/screenshots/gameboy/pokemon-blue-version-03.png)
Note : this is the reason Missingno corrupts the HoF data : its invalid sprite, when decompressed, overwrites data past the buffers' boundaries.