Arbitrary Pokédex data is data for a glitch Pokémon's Pokédex data that is not sourced from the ROM and is therefore inconsistent.
Most arbitrary Pokédex data in Pokémon Red, Blue, and Yellow is taken from VRAM but there are a few glitch Pokémon that take their Pokédex data from other non-ROM areas of the address bus, such as VRAM, RAM or Echo RAM.
These include the following glitch Pokémon in Pokémon Red and Blue:
In Japanese Yellow:
A Pokémon (or glitch Pokémon)'s Pokédex entry is structured in the following format:
- (Species string terminated by 0x50 byte).
- Four bytes affecting height and weight.
- Text code.
₽ (hex:F9)'s arbitrary Pokédex
₽ (hex:F9) in Yellow has a relatively manipulable arbitrary Pokédex. In order to see it, one must catch ₽ (hex:F9) from a battle or 'out of battle capture' via LOL glitch or Rival LOL glitch and have not seen Cubone.
The location of F403 (though normally part of wWarpEntries::) can also be manipulated by modifying item 116 in the expanded items pack. Hence one can place items that represent a 0x50 byte there followed by a custom height and weight code and arbitrary code execution can be achieved by having the first text code byte as 08 followed by ASM instructions that the player desires.
As items 129 through to 256 represent items 1-128 again, there is potentially a size limit of 14 item and quantity pairs to store the Pokédex data, unless the ASM script is redirected elsewhere using the jp $xxyy (C3 yy xx) command or similar.
The player must also remember that item 6's quantity would be increased by 128 if less than 128 and this could potentially mess up the code if redirected to the items pack.
For more information for which items and quantities would be required please see the The Big HEX List.
アムﾞ (hex:C3)'s arbitrary Pokédex
This glitch Pokémon from Pokémon Red and Green gets its Pokédex category from location B6DE in SRAM.