Evolution Data for the DS Pokémon games is stored in data/poketool/personal/evo.narc. Inside the NARC Wrapper, the format (as a C-struct) is:
struct evo_option {
short method; // See Methods, below.
short argument; // An argument for methods requiring one.
short destination; // National Dex ID of end-result of evolution.
};
struct evolutions {
struct evo_option options[7]; // Up to 7 evolution possibilities. Those not used
// are set to 0.
short padding; // Set to zero.
};
The file consists of an array of 501 instances of struct evolutions
representing each Pokémon in National order. The second structure (index 1) is Bulbasaur, not index 0.
There are 26 different values for the methods of evolution. They are:
0x00
- No Evolution: All the remaining values are 0.0x01
- Happiness: Argument is 0.0x02
- Happiness During the Day: Argument is 0.0x03
- Happiness During the Night: Argument is 0.0x04
- Leveling: Argument is the level at which the evolution occurs.0x05
- Trading: Argument is 0.0x06
- Trading with Held Item: Argument is the item-id of the item that must be held.0x07
- Item: Argument is the item-id of the item that must be applied to the Pokémon.0x08
- Attack > Defense at Level: Argument is the level at which the evolution occurs.0x09
- Attack = Defense at Level: Argument is the level at which the evolution occurs.0x0A
- Attack < Defense at Level: Argument is the level at which the evolution occurs.0x0B
- Personality mod 10 < 5 at Level: Argument is the level at which the evolution occurs.0x0C
- Personality mod 10 > 4 at Level: Argument is the level at which the evolution occurs.0x0D
- Try to Create a New Pokémon: Argument is the level at which the evolution occurs. This should probably always appear with a second method of 0x0E, as it marks that a second Pokémon may be created if enough space exists in the party. (e.g. to Ninjask)0x0E
- Create a New Pokémon if Space Exists: Argument is the level at which the evolution occurs. (e.g. to Shedinja)0x0F
- Beauty Level: Argument is unknown, but 0xAA for evolution into Milotic (probably minimal threshold).0x10
- Male-only Item: Argument is the item-id of the item that must be applied to the Pokémon.0x11
- Female-only Item: Argument is the item-id of the item that must be applied to the Pokémon.0x12
- Level up during Daytime with Held Item: Argument is the item-id of the item that must be held.0x13
- Level up during Nighttime with Held Item: Argument is the item-id of the item that must be held.0x14
- Level up with Move: Argument is the move-id of the move that must be known.0x15
- Level with Pokémon in Party: Argument is the National Dex number of the accompanying Pokémon.0x16
- Female-only Level: Argument is the level at which the evolution occurs.0x17
- Male-only Level: Argument is the level at which the evolution occurs.0x18
- Level in Mt. Coronet: Argument is 0.0x19
- Level in Eterna Forest: Argument is 0.0x1A
- Level on Route 217: Argument is 0.The following is a list of known item-ids of item-contingent evolutions
0x50
- Sun Stone0x51
- Moon Stone0x52
- Fire Stone0x53
- Thunder Stone0x54
- Water Stone0x55
- Leaf Stone0x6B
- Shiny Stone0x6C
- Dusk Stone0x6D
- Dawn Stone0x6E
- Oval Stone0xDD
- King's Rock0xE2
- Deep Sea Tooth0xE3
- Deep Sea Scale0xE9
- Metal Coat0xEB
- Dragon Scale0xFC
- Up-grade0x141
- Protector0x142
- Electirizer0x143
- Magmarizer0x144
- Dubious Disc0x145
- Reaper Cloth0x146
- Razor Claw0x147
- Razor FangThe following is a list of known move-ids of move-contingent evolutions
0x66
- Mimic0xCD
- Rollout0xF6
- AncientPower0x1CA
- Double Hit