NOTE:
If you're using RHH's pokeemerald-expansion, you'll want to look at their guide instead, as it differs from vanilla.
Despite the persistent rumors about an incredibly strong third form of Mew hiding somewhere, it actually wasn't possible to catch it... OR WAS IT? In this tutorial, we will add a new Pokémon species to the game.
Content
The Graphics
We will start by copying the folder containing the sprites for Mewtwo and rename it to mewthree
(pretty meta huh?):
cp -r graphics/pokemon/mewtwo graphics/pokemon/mewthree
1. Edit the sprites
Let's edit the sprites. Start your favourite image editor (I have used GIMP) and change anim_front.png
, front.png
and back.png
to meet your expectations.
Make sure that you are using the indexed mode and you have limited yourself to 14 colors!
Put the RGB values of your colors into normal.pal
between the first and the last color and the RGB values for the shiny version into shiny.pal
.
Edit footprint.png
using two colors in indexed mode, black and white.
Finally, edit icon.png
. Notice, that the icon will use one of three predefined palettes instead of normal.pal
.
2. Register the sprites
Sadly, just putting the image files into the graphics folder is not enough. To use the sprites we have to register them, which is kind of tedious. First, create constants for the file paths. Edit include/graphics.h:
extern const u8 gMonFootprint_Chimecho[];
+extern const u32 gMonFrontPic_Mewthree[];
+extern const u32 gMonPalette_Mewthree[];
+extern const u32 gMonBackPic_Mewthree[];
+extern const u32 gMonShinyPalette_Mewthree[];
+extern const u32 gMonStillFrontPic_Mewthree[];
+extern const u8 gMonIcon_Mewthree[];
+extern const u8 gMonFootprint_Mewthree[];
extern const u32 gMonPic_Egg[];
Now link the graphic files. Edit src/data/graphics/pokemon.h:
const u8 gMonFootprint_Chimecho[] = INCBIN_U8("graphics/pokemon/chimecho/footprint.1bpp");
+const u32 gMonStillFrontPic_Mewthree[] = INCBIN_U32("graphics/pokemon/mewthree/front.4bpp.lz");
+const u32 gMonPalette_Mewthree[] = INCBIN_U32("graphics/pokemon/mewthree/normal.gbapal.lz");
+const u32 gMonBackPic_Mewthree[] = INCBIN_U32("graphics/pokemon/mewthree/back.4bpp.lz");
+const u32 gMonShinyPalette_Mewthree[] = INCBIN_U32("graphics/pokemon/mewthree/shiny.gbapal.lz");
+const u8 gMonIcon_Mewthree[] = INCBIN_U8("graphics/pokemon/mewthree/icon.4bpp");
+const u8 gMonFootprint_Mewthree[] = INCBIN_U8("graphics/pokemon/mewthree/footprint.1bpp");
const u32 gMonStillFrontPic_Egg[] = INCBIN_U32("graphics/pokemon/egg/front.4bpp.lz");
The animated front picture is still missing. Edit src/anim_mon_front_pics.c:
const u32 gMonFrontPic_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/anim_front.4bpp.lz");
+const u32 gMonFrontPic_Mewthree[] = INCBIN_U32("graphics/pokemon/mewthree/anim_front.4bpp.lz");
const u32 gMonFrontPic_Egg[] = INCBIN_U32("graphics/pokemon/egg/anim_front.4bpp.lz");
3. Animate the sprites
This file specifies the sequence in which the Pokémon's two front sprites are shown in. The first number in each entry is the sprite index (which of the two front sprites will be used, 0 for the first sprite, 1 for the second sprite) and the second number is the number of frames said sprite is on screen for before it changes. Edit src/data/pokemon_graphics/front_pic_anims.h:
...
static const union AnimCmd sAnim_Chimecho_1[] =
{
ANIMCMD_FRAME(0, 15),
...
ANIMCMD_END,
};
+static const union AnimCmd sAnim_Mewthree_1[] =
+{
+ ANIMCMD_FRAME(1, 30),
+ ANIMCMD_FRAME(0, 20),
+ ANIMCMD_END,
+};
static const union AnimCmd sAnim_Egg_1[] =
{
...
};
...
SINGLE_ANIMATION(Chimecho);
+SINGLE_ANIMATION(Mewthree);
SINGLE_ANIMATION(Egg);
...
const union AnimCmd *const *const gMonFrontAnimsPtrTable[] =
{
[SPECIES_NONE] = sAnims_None,
[SPECIES_BULBASAUR] = sAnims_Bulbasaur,
...
[SPECIES_CHIMECHO] = sAnims_Chimecho,
+ [SPECIES_MEWTHREE] = sAnims_Mewthree,
[SPECIES_EGG] = sAnims_Egg,
...
};
Because you are limited to two frames, there are already predefined animations, describing translations, rotations, scalings or color changes. Edit src/pokemon.c:
static const u8 sMonFrontAnimIdsTable[] =
{
[SPECIES_BULBASAUR - 1] = ANIM_V_JUMPS_H_JUMPS,
...
[SPECIES_CHIMECHO - 1] = ANIM_H_SLIDE_WOBBLE,
+ [SPECIES_MEWTHREE - 1] = ANIM_GROW_VIBRATE,
};
There are also predifined animations for the back sprites as well. Edit src/pokemon_animation.c:
static const u8 sSpeciesToBackAnimSet[] =
{
[SPECIES_BULBASAUR] = BACK_ANIM_DIP_RIGHT_SIDE,
...
[SPECIES_CHIMECHO] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_MEWTHREE] = BACK_ANIM_GROW_STUTTER,
};
If you want to delay the time between when the Pokémon first appears and when the animation starts, you can add an entry to sMonAnimationDelayTable
Edit src/pokemon.c:
static const u8 sMonAnimationDelayTable[NUM_SPECIES - 1] =
{
[SPECIES_BLASTOISE - 1] = 50,
...
[SPECIES_RAYQUAZA - 1] = 60,
+ [SPECIES_MEWTHREE - 1] = 15,
};
If you want your Pokémon to fly above the ground, you can add an entry to gEnemyMonElevation
.
Edit src/data/pokemon_graphics/enemy_mon_elevation.h:
const u8 gEnemyMonElevation[NUM_SPECIES] =
{
[SPECIES_BUTTERFREE] = 8,
...
[SPECIES_CHIMECHO] = 12,
+ [SPECIES_MEWTHREE] = 6,
};
4. Update the tables
Edit src/data/pokemon_graphics/front_pic_table.h:
const struct CompressedSpriteSheet gMonFrontPicTable[] =
{
SPECIES_SPRITE(NONE, gMonFrontPic_CircledQuestionMark),
SPECIES_SPRITE(BULBASAUR, gMonFrontPic_Bulbasaur),
...
SPECIES_SPRITE(CHIMECHO, gMonFrontPic_Chimecho),
+ SPECIES_SPRITE(MEWTHREE, gMonFrontPic_Mewthree),
SPECIES_SPRITE(EGG, gMonFrontPic_Egg),
...
};
Edit src/data/pokemon_graphics/still_front_pic_table.h:
const struct CompressedSpriteSheet gMonStillFrontPicTable[] =
{
SPECIES_SPRITE(NONE, gMonStillFrontPic_CircledQuestionMark),
SPECIES_SPRITE(BULBASAUR, gMonStillFrontPic_Bulbasaur),
...
SPECIES_SPRITE(CHIMECHO, gMonStillFrontPic_Chimecho),
+ SPECIES_SPRITE(MEWTHREE, gMonStillFrontPic_Mewthree),
SPECIES_SPRITE(EGG, gMonStillFrontPic_Egg),
...
};
Edit src/data/pokemon_graphics/front_pic_coordinates.h:
const struct MonCoords gMonFrontPicCoords[] =
{
...
[SPECIES_CHIMECHO] = { .size = MON_COORDS_SIZE(24, 56), .y_offset = 6 },
+ [SPECIES_MEWTHREE] = { .size = 0x88, .y_offset = 0 },
[SPECIES_EGG] = { .size = MON_COORDS_SIZE(24, 24), .y_offset = 20 },
...
};
Edit src/data/pokemon_graphics/back_pic_table.h:
const struct CompressedSpriteSheet gMonBackPicTable[] =
{
SPECIES_SPRITE(NONE, gMonBackPic_CircledQuestionMark),
SPECIES_SPRITE(BULBASAUR, gMonBackPic_Bulbasaur),
...
SPECIES_SPRITE(CHIMECHO, gMonBackPic_Chimecho),
+ SPECIES_SPRITE(MEWTHREE, gMonBackPic_Mewthree),
SPECIES_SPRITE(EGG, gMonStillFrontPic_Egg),
...
};
Edit src/data/pokemon_graphics/back_pic_coordinates.h:
const struct MonCoords gMonBackPicCoords[] =
{
...
[SPECIES_CHIMECHO] = { .size = MON_COORDS_SIZE(32, 56), .y_offset = 7 },
+ [SPECIES_MEWTHREE] = { .size = 0x78, .y_offset = 1 },
[SPECIES_EGG] = { .size = MON_COORDS_SIZE(24, 48), .y_offset = 10 },
...
};
Edit src/data/pokemon_graphics/footprint_table.h:
const u8 *const gMonFootprintTable[] =
{
[SPECIES_NONE] = gMonFootprint_Bulbasaur,
[SPECIES_BULBASAUR] = gMonFootprint_Bulbasaur,
...
[SPECIES_CHIMECHO] = gMonFootprint_Chimecho,
+ [SPECIES_MEWTHREE] = gMonFootprint_Mewthree,
[SPECIES_EGG] = gMonFootprint_Bulbasaur,
};
Edit src/data/pokemon_graphics/palette_table.h:
const struct CompressedSpritePalette gMonPaletteTable[] =
{
SPECIES_PAL(NONE, gMonPalette_CircledQuestionMark),
SPECIES_PAL(BULBASAUR, gMonPalette_Bulbasaur),
...
SPECIES_PAL(CHIMECHO, gMonPalette_Chimecho),
+ SPECIES_PAL(MEWTHREE, gMonPalette_Mewthree),
SPECIES_PAL(EGG, gMonPalette_Egg),
...
};
Edit src/data/pokemon_graphics/shiny_palette_table.h:
const struct CompressedSpritePalette gMonShinyPaletteTable[] =
{
SPECIES_SHINY_PAL(NONE, gMonShinyPalette_CircledQuestionMark),
SPECIES_SHINY_PAL(BULBASAUR, gMonShinyPalette_Bulbasaur),
...
SPECIES_SHINY_PAL(CHIMECHO, gMonShinyPalette_Chimecho),
+ SPECIES_SHINY_PAL(MEWTHREE, gMonShinyPalette_Mewthree),
SPECIES_SHINY_PAL(EGG, gMonPalette_Egg),
...
};
Edit src/pokemon_icon.c:
const u8 *const gMonIconTable[] =
{
[SPECIES_NONE] = gMonIcon_Bulbasaur,
...
[SPECIES_CHIMECHO] = gMonIcon_Chimecho,
+ [SPECIES_MEWTHREE] = gMonIcon_Mewthree,
[SPECIES_EGG] = gMonIcon_Egg,
...
[SPECIES_UNOWN_QMARK] = gMonIcon_UnownQuestionMark,
};
const u8 gMonIconPaletteIndices[] =
{
[SPECIES_NONE] = 0,
...
[SPECIES_CHIMECHO] = 0,
+ [SPECIES_MEWTHREE] = 2,
[SPECIES_EGG] = 1,
...
[SPECIES_UNOWN_QMARK] = 0,
};
Here, you can choose between the three icon palettes 0, 1 and 2. Open some other icon files to find out which palette suits your icon best.
The Data
Our plan is as simple as it is brilliant: clone Mewtwo... and make it even stronger!
1. Declare a species constant
Our first step towards creating a new digital lifeform is to define its own species constant. Edit include/constants/species.h:
#ifndef GUARD_CONSTANTS_SPECIES_H
#define GUARD_CONSTANTS_SPECIES_H
#define SPECIES_NONE 0
#define SPECIES_BULBASAUR 1
...
#define SPECIES_CHIMECHO 411
+#define SPECIES_MEWTHREE 412
-#define SPECIES_EGG 412
+#define SPECIES_EGG 413
Remember to increase the value of SPECIES_EGG by one.
2. Devise a name
This name will be displayed in the game. It may be different than the identifier of the species constant, especially when there are special characters involved.
Name is limited by 10 characters.
Edit src/data/text/species_names.h:
const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1] = {
[SPECIES_NONE] = _("??????????"),
[SPECIES_BULBASAUR] = _("BULBASAUR"),
...
[SPECIES_CHIMECHO] = _("CHIMECHO"),
+ [SPECIES_MEWTHREE] = _("MEWTHREE"),
};
The _()
underscore function doesn't really exist - it's a convention borrowed from GNU gettext to let preproc
know this is text to be converted to the custom encoding used by the Gen 3 Pokemon games.
3. Define its Pokédex entry
First, we will need to add new index constants for its Pokédex entry. The index constants are divided into the Hoenn Pokédex, which contains all Pokémon native to the Hoenn region, and the national Pokédex containing all known Pokémon, which can be received after entering the hall of fame for the first time. Edit include/constants/pokedex.h:
#ifndef GUARD_CONSTANTS_POKEDEX_H
#define GUARD_CONSTANTS_POKEDEX_H
// National Pokedex order
enum {
NATIONAL_DEX_NONE,
// Kanto
NATIONAL_DEX_BULBASAUR,
...
NATIONAL_DEX_DEOXYS,
+ NATIONAL_DEX_MEWTHREE,
};
#define KANTO_DEX_COUNT NATIONAL_DEX_MEW
#define JOHTO_DEX_COUNT NATIONAL_DEX_CELEBI
-#define NATIONAL_DEX_COUNT NATIONAL_DEX_DEOXYS
+#define NATIONAL_DEX_COUNT NATIONAL_DEX_MEWTHREE
// Hoenn Pokedex order
enum {
HOENN_DEX_NONE,
HOENN_DEX_TREECKO,
...
HOENN_DEX_DEOXYS,
+ HOENN_DEX_MEWTHREE,
...
};
- #define HOENN_DEX_COUNT HOENN_DEX_DEOXYS
+ #define HOENN_DEX_COUNT HOENN_DEX_MEWTHREE
#endif // GUARD_CONSTANTS_POKEDEX_H
Edit src/pokemon.c:
const u16 gSpeciesToHoennPokedexNum[NUM_SPECIES] = // Assigns all species to the Hoenn Dex Index (Summary No. for Hoenn Dex)
{
SPECIES_TO_HOENN(BULBASAUR),
...
SPECIES_TO_HOENN(CHIMECHO),
+ SPECIES_TO_HOENN(MEWTHREE),
};
const u16 gSpeciesToNationalPokedexNum[NUM_SPECIES] = // Assigns all species to the National Dex Index (Summary No. for National Dex)
{
SPECIES_TO_NATIONAL(BULBASAUR),
...
+ SPECIES_TO_NATIONAL(MEWTHREE),
};
const u16 gHoennToNationalOrder[NUM_SPECIES] = // Assigns Hoenn Dex Pokémon (Using National Dex Index)
{
HOENN_TO_NATIONAL(TREECKO),
...
HOENN_TO_NATIONAL(CELEBI),
+ HOENN_TO_NATIONAL(MEWTHREE),
HOENN_TO_NATIONAL(OLD_UNOWN_B),
...
HOENN_TO_NATIONAL(OLD_UNOWN_Z),
};
Now we can define the actual text of the Pokédex entry. Append to src/data/pokemon/pokedex_text.h:
const u8 gMewthreePokedexText[] = _(
"The rumors became true.\n"
"This is Mews final form.\n"
"Its power level is over 9000.\n"
"Has science gone too far?");
Finally, we will add the Pokédex entry for Mewthree and link the text to it. Edit src/data/pokemon/pokedex_entries.h:
const struct PokedexEntry gPokedexEntries[] =
{
...
[NATIONAL_DEX_DEOXYS] =
{
.categoryName = _("DNA"),
.height = 17,
.weight = 608,
.description = gDeoxysPokedexText,
.pokemonScale = 256,
.pokemonOffset = 0,
.trainerScale = 290,
.trainerOffset = 2,
},
+ [NATIONAL_DEX_MEWTHREE] =
+ {
+ .categoryName = _("NEW SPECIES"),
+ .height = 15,
+ .weight = 330,
+ .description = gMewthreePokedexText,
+ .pokemonScale = 256,
+ .pokemonOffset = 0,
+ .trainerScale = 290,
+ .trainerOffset = 2,
+ },
};
The values pokemonScale
, pokemonOffset
, trainerScale
and trainerOffset
are used for the height comparison figure in the Pokédex. Height and weight are specified in meters and kilograms respectively, while the last digit is the first decimal place.
In Pokémon Emerald, you can sort the Pokédex by name, height or weight. Apparently, the Pokémon order is hardcoded in the game files and not calculated from their data. Therefore we have to include our new Pokémon species at the right places. While the correct position for the alphabetical order is easy to find, it can become quite tedious for height and weight. To find the right position for your Pokémon, you may look at the tables sorted by height and weight respectively in the appendix.
Edit src/data/pokemon/pokedex_orders.h:
const u16 gPokedexOrder_Alphabetical[] =
{
...
NATIONAL_DEX_MEW,
+ NATIONAL_DEX_MEWTHREE,
NATIONAL_DEX_MEWTWO,
...
};
const u16 gPokedexOrder_Weight[] =
{
...
NATIONAL_DEX_CRAWDAUNT,
+ NATIONAL_DEX_MEWTHREE,
NATIONAL_DEX_DUGTRIO,
...
};
const u16 gPokedexOrder_Height[] =
{
...
NATIONAL_DEX_XATU,
+ NATIONAL_DEX_MEWTHREE,
NATIONAL_DEX_CRADILY,
...
};
4. Define its species info
Edit src/data/pokemon/species_info.h:
const struct SpeciesInfo gSpeciesInfo[] =
{
[SPECIES_NONE] = {0},
...
+ [SPECIES_MEWTHREE] =
+ {
+ .baseHP = 106,
+ .baseAttack = 150,
+ .baseDefense = 70,
+ .baseSpeed = 140,
+ .baseSpAttack = 194,
+ .baseSpDefense = 120,
+ .types = { TYPE_PSYCHIC, TYPE_PSYCHIC },
+ .catchRate = 3,
+ .expYield = 255,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .itemCommon = ITEM_NONE,
+ .itemRare = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_SLOW,
+ .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED },
+ .abilities = {ABILITY_INSOMNIA, ABILITY_NONE},
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
};
The .
is the structure reference operator in C to refer to the member object of the structure SpeciesInfo.
Notice how I also changed the ability to ABILITY_INSOMNIA
, so our little monster doesn't even need to sleep anymore. You can find the abilities for example here include/constants/abilities.h and here src/data/text/abilities.h.
5. Delimit the moveset
Let's begin with the moves that can be learned by leveling up. Append to src/data/pokemon/level_up_learnsets.h:
static const u16 sMewthreeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE( 1, MOVE_DISABLE),
LEVEL_UP_MOVE(11, MOVE_BARRIER),
LEVEL_UP_MOVE(22, MOVE_SWIFT),
LEVEL_UP_MOVE(33, MOVE_PSYCH_UP),
LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT),
LEVEL_UP_MOVE(55, MOVE_MIST),
LEVEL_UP_MOVE(66, MOVE_PSYCHIC),
LEVEL_UP_MOVE(77, MOVE_AMNESIA),
LEVEL_UP_MOVE(88, MOVE_RECOVER),
LEVEL_UP_MOVE(99, MOVE_SAFEGUARD),
LEVEL_UP_END
};
Again, we need to register the learnset. Edit src/data/pokemon/level_up_learnset_pointers.h:
const u16 *const gLevelUpLearnsets[NUM_SPECIES] =
{
[SPECIES_NONE] = sBulbasaurLevelUpLearnset,
[SPECIES_BULBASAUR] = sBulbasaurLevelUpLearnset,
...
[SPECIES_CHIMECHO] = sChimechoLevelUpLearnset,
+ [SPECIES_MEWTHREE] = sMewthreeLevelUpLearnset,
};
Edit src/data/pokemon/tmhm_learnsets.h:
const union {
...
} gTMHMLearnsets[NUM_SPECIES] =
{
[SPECIES_NONE] = {},
...
[SPECIES_CHIMECHO] = { .learnset = {
...
.FLASH = TRUE,
} },
+ [SPECIES_MEWTHREE] = { .learnset = {
+ .FOCUS_PUNCH = TRUE,
+ .WATER_PULSE = TRUE,
+ .CALM_MIND = TRUE,
+ .TOXIC = TRUE,
+ .HAIL = TRUE,
+ .BULK_UP = TRUE,
+ .HIDDEN_POWER = TRUE,
+ .SUNNY_DAY = TRUE,
+ .TAUNT = TRUE,
+ .ICE_BEAM = TRUE,
+ .BLIZZARD = TRUE,
+ .HYPER_BEAM = TRUE,
+ .LIGHT_SCREEN = TRUE,
+ .PROTECT = TRUE,
+ .RAIN_DANCE = TRUE,
+ .SAFEGUARD = TRUE,
+ .FRUSTRATION = TRUE,
+ .SOLAR_BEAM = TRUE,
+ .IRON_TAIL = TRUE,
+ .THUNDERBOLT = TRUE,
+ .THUNDER = TRUE,
+ .EARTHQUAKE = TRUE,
+ .RETURN = TRUE,
+ .PSYCHIC = TRUE,
+ .SHADOW_BALL = TRUE,
+ .BRICK_BREAK = TRUE,
+ .DOUBLE_TEAM = TRUE,
+ .REFLECT = TRUE,
+ .SHOCK_WAVE = TRUE,
+ .FLAMETHROWER = TRUE,
+ .SANDSTORM = TRUE,
+ .FIRE_BLAST = TRUE,
+ .ROCK_TOMB = TRUE,
+ .AERIAL_ACE = TRUE,
+ .TORMENT = TRUE,
+ .FACADE = TRUE,
+ .SECRET_POWER = TRUE,
+ .REST = TRUE,
+ .SKILL_SWAP = TRUE,
+ .SNATCH = TRUE,
+ .STRENGTH = TRUE,
+ .FLASH = TRUE,
+ .ROCK_SMASH = TRUE,
+ } },
Edit src/data/pokemon/tutor_learnsets.h:
static const u32 sTutorLearnsets[] =
{
[SPECIES_NONE] = TUTOR_LEARNSET(0),
...
[SPECIES_CHIMECHO] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE)
...
| TUTOR(MOVE_DEFENSE_CURL)),
+ [SPECIES_MEWTHREE] = TUTOR_LEARNSET(TUTOR(MOVE_MEGA_PUNCH)
+ | TUTOR(MOVE_MEGA_KICK)
+ | TUTOR(MOVE_BODY_SLAM)
+ | TUTOR(MOVE_DOUBLE_EDGE)
+ | TUTOR(MOVE_COUNTER)
+ | TUTOR(MOVE_SEISMIC_TOSS)
+ | TUTOR(MOVE_MIMIC)
+ | TUTOR(MOVE_METRONOME)
+ | TUTOR(MOVE_DREAM_EATER)
+ | TUTOR(MOVE_THUNDER_WAVE)
+ | TUTOR(MOVE_SUBSTITUTE)
+ | TUTOR(MOVE_DYNAMIC_PUNCH)
+ | TUTOR(MOVE_PSYCH_UP)
+ | TUTOR(MOVE_SNORE)
+ | TUTOR(MOVE_ICY_WIND)
+ | TUTOR(MOVE_ENDURE)
+ | TUTOR(MOVE_MUD_SLAP)
+ | TUTOR(MOVE_ICE_PUNCH)
+ | TUTOR(MOVE_SWAGGER)
+ | TUTOR(MOVE_SLEEP_TALK)
+ | TUTOR(MOVE_SWIFT)
+ | TUTOR(MOVE_THUNDER_PUNCH)
+ | TUTOR(MOVE_FIRE_PUNCH)),
};
If you want to create a Pokémon which can breed, you will need to edit src/data/pokemon/egg_moves.h.
6. Define its cry
First run these command to copy the Mewtwo sound files:
cp -r sound/direct_sound_samples/cries/mewtwo.bin sound/direct_sound_samples/cries/mewthree.bin
cp -r sound/direct_sound_samples/cries/mewtwo.aif sound/direct_sound_samples/cries/mewthree.aif
In sound/direct_sound_data.inc.
.align 2
Cry_Chimecho::
.incbin "sound/direct_sound_samples/cries/chimecho.bin"
+ .align 2
+ Cry_Mewthree::
+ .incbin "sound/direct_sound_samples/cries/mewthree.bin"
And linking it in sound/cry_tables.inc. cry2 in particular is for reversed cries for moves like Growl
...
cry Cry_Latios
cry Cry_Jirachi
cry Cry_Deoxys
cry Cry_Chimecho
+ cry Cry_Mewthree
...
cry_reverse Cry_Latios
cry_reverse Cry_Jirachi
cry_reverse Cry_Deoxys
cry_reverse Cry_Chimecho
+ cry_reverse Cry_Mewthree
And finally, edit src/data/pokemon/cry_ids.h:
const u16 gSpeciesIdToCryId[] =
{
[SPECIES_TREECKO - 277] = 273,
...
[SPECIES_CHIMECHO - 277] = 387,
+ [SPECIES_MEWTHREE - 277] = 388,
};
Mon cries are 10512Hz. Make sure to put the aif file in the directory sound/direct_sound_samples/cries
Higher frequencies may be ruined by compression. To have the cries uncompressed, follow this , then clear out the old sound bins
7. Define the Evolutions
We want Mewthree to evolve from Mewtwo by reaching level 100. Edit src/data/pokemon/evolution.h:
[SPECIES_METANG] = {{EVO_LEVEL, 45, SPECIES_METAGROSS}},
+ [SPECIES_MEWTWO] = {{EVO_LEVEL, 100, SPECIES_MEWTHREE}},
};
8. Easy Chat about your Pokémon
Edit src/data/easy_chat/easy_chat_words_by_letter.h:
const u16 gEasyChatWordsByLetter_M[] = {
EC_MOVE2(MACH_PUNCH),
...
EC_POKEMON_NATIONAL(MEW),
+ EC_POKEMON_NATIONAL(MEWTHREE),
EC_POKEMON_NATIONAL(MEWTWO),
...
EC_WORD_MYSTERY,
};
9. Make it appear!
Now Mewthree really does slumber in the games code - but we won't know until we make him appear somewhere! The legend tells that Mewthree is hiding somewhere in Petalburg Woods... Edit src/data/wild_encounters.json:
{
"map": "MAP_PETALBURG_WOODS",
"base_label": "gPetalburgWoods",
"land_mons": {
"encounter_rate": 20,
"mons": [
{
"min_level": 5,
"max_level": 5,
"species": "SPECIES_POOCHYENA"
},
{
"min_level": 5,
"max_level": 5,
"species": "SPECIES_WURMPLE"
},
{
"min_level": 5,
"max_level": 5,
"species": "SPECIES_SHROOMISH"
},
{
- "min_level": 6,
- "max_level": 6,
- "species": "SPECIES_POOCHYENA"
+ "min_level": 5,
+ "max_level": 5,
+ "species": "SPECIES_MEWTHREE"
},
...
}
Congratulations, you have created your own personal pocket monster! You may call yourself a mad scientist now.
Appendix
Available Front Animations
Entries in bold italics indicate animations that are unused in the final game.
Video showcasing every front sprite animation in numerical order.
- ANIM_V_SQUISH_AND_BOUNCE
- ANIM_CIRCULAR_STRETCH_TWICE
- ANIM_H_VIBRATE
- ANIM_H_SLIDE
- ANIM_V_SLIDE
- ANIM_BOUNCE_ROTATE_TO_SIDES
- ANIM_V_JUMPS_H_JUMPS
- ANIM_ROTATE_TO_SIDES
- ANIM_ROTATE_TO_SIDES_TWICE
- ANIM_GROW_VIBRATE
- ANIM_ZIGZAG_FAST
- ANIM_SWING_CONCAVE
- ANIM_SWING_CONCAVE_FAST
- ANIM_SWING_CONVEX
- ANIM_SWING_CONVEX_FAST
- ANIM_H_SHAKE
- ANIM_V_SHAKE
- ANIM_CIRCULAR_VIBRATE
- ANIM_TWIST
- ANIM_SHRINK_GROW
- ANIM_CIRCLE_C_CLOCKWISE
- ANIM_GLOW_BLACK
- ANIM_H_STRETCH
- ANIM_V_STRETCH
- ANIM_RISING_WOBBLE
- ANIM_V_SHAKE_TWICE
- ANIM_TIP_MOVE_FORWARD
- ANIM_H_PIVOT
- ANIM_V_SLIDE_WOBBLE
- ANIM_H_SLIDE_WOBBLE
- ANIM_V_JUMPS_BIG
- ANIM_SPIN_LONG
- ANIM_GLOW_ORANGE
- ANIM_GLOW_RED
- ANIM_GLOW_BLUE
- ANIM_GLOW_YELLOW
- ANIM_GLOW_PURPLE
- ANIM_BACK_AND_LUNGE
- ANIM_BACK_FLIP
- ANIM_FLICKER
- ANIM_BACK_FLIP_BIG
- ANIM_FRONT_FLIP
- ANIM_TUMBLING_FRONT_FLIP
- ANIM_FIGURE_8
- ANIM_FLASH_YELLOW
- ANIM_SWING_CONCAVE_FAST_SHORT
- ANIM_SWING_CONVEX_FAST_SHORT
- ANIM_ROTATE_UP_SLAM_DOWN
- ANIM_DEEP_V_SQUISH_AND_BOUNCE
- ANIM_H_JUMPS
- ANIM_H_JUMPS_V_STRETCH
- ANIM_ROTATE_TO_SIDES_FAST
- ANIM_ROTATE_UP_TO_SIDES
- ANIM_FLICKER_INCREASING
- ANIM_TIP_HOP_FORWARD
- ANIM_PIVOT_SHAKE
- ANIM_TIP_AND_SHAKE
- ANIM_VIBRATE_TO_CORNERS
- ANIM_GROW_IN_STAGES
- ANIM_V_SPRING
- ANIM_V_REPEATED_SPRING
- ANIM_SPRING_RISING
- ANIM_H_SPRING
- ANIM_H_REPEATED_SPRING_SLOW
- ANIM_H_SLIDE_SHRINK
- ANIM_LUNGE_GROW
- ANIM_CIRCLE_INTO_BG
- ANIM_RAPID_H_HOPS
- ANIM_FOUR_PETAL
- ANIM_V_SQUISH_AND_BOUNCE_SLOW
- ANIM_H_SLIDE_SLOW
- ANIM_V_SLIDE_SLOW
- ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL
- ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW
- ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW
- ANIM_ZIGZAG_SLOW
- ANIM_H_SHAKE_SLOW
- ANIM_V_SHAKE_SLOW
- ANIM_TWIST_TWICE
- ANIM_CIRCLE_C_CLOCKWISE_SLOW
- ANIM_V_SHAKE_TWICE_SLOW
- ANIM_V_SLIDE_WOBBLE_SMALL
- ANIM_V_JUMPS_SMALL
- ANIM_SPIN
- ANIM_TUMBLING_FRONT_FLIP_TWICE
- ANIM_DEEP_V_SQUISH_AND_BOUNCE_TWICE
- ANIM_H_JUMPS_V_STRETCH_TWICE
- ANIM_V_SHAKE_BACK
- ANIM_V_SHAKE_BACK_SLOW
- ANIM_V_SHAKE_H_SLIDE_SLOW
- ANIM_V_STRETCH_BOTH_ENDS_SLOW
- ANIM_H_STRETCH_FAR_SLOW
- ANIM_V_SHAKE_LOW_TWICE
- ANIM_H_SHAKE_FAST
- ANIM_H_SLIDE_FAST
- ANIM_H_VIBRATE_FAST
- ANIM_H_VIBRATE_FASTEST
- ANIM_V_SHAKE_BACK_FAST
- ANIM_V_SHAKE_LOW_TWICE_SLOW
- ANIM_V_SHAKE_LOW_TWICE_FAST
- ANIM_CIRCLE_C_CLOCKWISE_LONG
- ANIM_GROW_STUTTER_SLOW
- ANIM_V_SHAKE_H_SLIDE
- ANIM_V_SHAKE_H_SLIDE_FAST
- ANIM_TRIANGLE_DOWN_SLOW
- ANIM_TRIANGLE_DOWN
- ANIM_TRIANGLE_DOWN_TWICE
- ANIM_GROW
- ANIM_GROW_TWICE
- ANIM_H_SPRING_FAST
- ANIM_H_SPRING_SLOW
- ANIM_H_REPEATED_SPRING_FAST
- ANIM_H_REPEATED_SPRING
- ANIM_SHRINK_GROW_FAST
- ANIM_SHRINK_GROW_SLOW
- ANIM_V_STRETCH_BOTH_ENDS
- ANIM_V_STRETCH_BOTH_ENDS_TWICE
- ANIM_H_STRETCH_FAR_TWICE
- ANIM_H_STRETCH_FAR
- ANIM_GROW_STUTTER_TWICE
- ANIM_GROW_STUTTER
- ANIM_CONCAVE_ARC_LARGE_SLOW
- ANIM_CONCAVE_ARC_LARGE
- ANIM_CONCAVE_ARC_LARGE_TWICE
- ANIM_CONVEX_DOUBLE_ARC_SLOW
- ANIM_CONVEX_DOUBLE_ARC
- ANIM_CONVEX_DOUBLE_ARC_TWICE
- ANIM_CONCAVE_ARC_SMALL_SLOW
- ANIM_CONCAVE_ARC_SMALL
- ANIM_CONCAVE_ARC_SMALL_TWICE
- ANIM_H_DIP
- ANIM_H_DIP_FAST
- ANIM_H_DIP_TWICE
- ANIM_SHRINK_GROW_VIBRATE_FAST
- ANIM_SHRINK_GROW_VIBRATE
- ANIM_SHRINK_GROW_VIBRATE_SLOW
- ANIM_JOLT_RIGHT_FAST
- ANIM_JOLT_RIGHT
- ANIM_JOLT_RIGHT_SLOW
- ANIM_SHAKE_FLASH_YELLOW_FAST
- ANIM_SHAKE_FLASH_YELLOW
- ANIM_SHAKE_FLASH_YELLOW_SLOW
- ANIM_SHAKE_GLOW_RED_FAST
- ANIM_SHAKE_GLOW_RED
- ANIM_SHAKE_GLOW_RED_SLOW
- ANIM_SHAKE_GLOW_GREEN_FAST
- ANIM_SHAKE_GLOW_GREEN
- ANIM_SHAKE_GLOW_GREEN_SLOW
- ANIM_SHAKE_GLOW_BLUE_FAST
- ANIM_SHAKE_GLOW_BLUE
- ANIM_SHAKE_GLOW_BLUE_SLOW
Available Back Animations
- BACK_ANIM_NONE
- BACK_ANIM_H_VIBRATE
- BACK_ANIM_H_SLIDE
- BACK_ANIM_H_SPRING
- BACK_ANIM_H_SPRING_REPEATED
- BACK_ANIM_SHRINK_GROW
- BACK_ANIM_GROW
- BACK_ANIM_CIRCLE_COUNTERCLOCKWISE
- BACK_ANIM_H_SHAKE
- BACK_ANIM_V_SHAKE
- BACK_ANIM_V_SHAKE_H_SLIDE
- BACK_ANIM_V_STRETCH
- BACK_ANIM_H_STRETCH
- BACK_ANIM_GROW_STUTTER
- BACK_ANIM_V_SHAKE_LOW
- BACK_ANIM_TRIANGLE_DOWN
- BACK_ANIM_CONCAVE_ARC_LARGE
- BACK_ANIM_CONVEX_DOUBLE_ARC
- BACK_ANIM_CONCAVE_ARC_SMALL
- BACK_ANIM_DIP_RIGHT_SIDE
- BACK_ANIM_SHRINK_GROW_VIBRATE
- BACK_ANIM_JOLT_RIGHT
- BACK_ANIM_SHAKE_FLASH_YELLOW
- BACK_ANIM_SHAKE_GLOW_RED
- BACK_ANIM_SHAKE_GLOW_GREEN
- BACK_ANIM_SHAKE_GLOW_BLUE
Pokémon ordered by height
Pokemon | height (m) |
---|---|
Diglett | 0.2 |
Natu | 0.2 |
Azurill | 0.2 |
Caterpie | 0.3 |
Weedle | 0.3 |
Pidgey | 0.3 |
Rattata | 0.3 |
Spearow | 0.3 |
Paras | 0.3 |
Magnemite | 0.3 |
Shellder | 0.3 |
Ditto | 0.3 |
Eevee | 0.3 |
Pichu | 0.3 |
Cleffa | 0.3 |
Igglybuff | 0.3 |
Togepi | 0.3 |
Sunkern | 0.3 |
Wurmple | 0.3 |
Taillow | 0.3 |
Roselia | 0.3 |
Castform | 0.3 |
Jirachi | 0.3 |
Pikachu | 0.4 |
Nidoran_f | 0.4 |
Meowth | 0.4 |
Geodude | 0.4 |
Krabby | 0.4 |
Exeggcute | 0.4 |
Cubone | 0.4 |
Horsea | 0.4 |
Omanyte | 0.4 |
Mew | 0.4 |
Bellossom | 0.4 |
Marill | 0.4 |
Hoppip | 0.4 |
Wooper | 0.4 |
Swinub | 0.4 |
Smoochum | 0.4 |
Torchic | 0.4 |
Mudkip | 0.4 |
Zigzagoon | 0.4 |
Ralts | 0.4 |
Shroomish | 0.4 |
Aron | 0.4 |
Plusle | 0.4 |
Minun | 0.4 |
Gulpin | 0.4 |
Cacnea | 0.4 |
Swablu | 0.4 |
Barboach | 0.4 |
Clamperl | 0.4 |
Squirtle | 0.5 |
Nidoran_m | 0.5 |
Jigglypuff | 0.5 |
Oddish | 0.5 |
Mankey | 0.5 |
Voltorb | 0.5 |
Kabuto | 0.5 |
Cyndaquil | 0.5 |
Spinarak | 0.5 |
Chinchou | 0.5 |
Murkrow | 0.5 |
Unown | 0.5 |
Qwilfish | 0.5 |
Phanpy | 0.5 |
Treecko | 0.5 |
Poochyena | 0.5 |
Linoone | 0.5 |
Lotad | 0.5 |
Seedot | 0.5 |
Surskit | 0.5 |
Nincada | 0.5 |
Sableye | 0.5 |
Torkoal | 0.5 |
Baltoy | 0.5 |
Charmander | 0.6 |
Kakuna | 0.6 |
Sandshrew | 0.6 |
Clefairy | 0.6 |
Vulpix | 0.6 |
Poliwag | 0.6 |
Koffing | 0.6 |
Goldeen | 0.6 |
Totodile | 0.6 |
Togetic | 0.6 |
Mareep | 0.6 |
Skiploom | 0.6 |
Pineco | 0.6 |
Snubbull | 0.6 |
Shuckle | 0.6 |
Teddiursa | 0.6 |
Corsola | 0.6 |
Remoraid | 0.6 |
Houndour | 0.6 |
Porygon2 | 0.6 |
Elekid | 0.6 |
Larvitar | 0.6 |
Celebi | 0.6 |
Silcoon | 0.6 |
Wingull | 0.6 |
Whismur | 0.6 |
Skitty | 0.6 |
Mawile | 0.6 |
Meditite | 0.6 |
Electrike | 0.6 |
Illumise | 0.6 |
Corphish | 0.6 |
Feebas | 0.6 |
Shuppet | 0.6 |
Chimecho | 0.6 |
Wynaut | 0.6 |
Luvdisc | 0.6 |
Bagon | 0.6 |
Beldum | 0.6 |
Bulbasaur | 0.7 |
Metapod | 0.7 |
Raticate | 0.7 |
Dugtrio | 0.7 |
Growlithe | 0.7 |
Bellsprout | 0.7 |
Hoothoot | 0.7 |
Misdreavus | 0.7 |
Slugma | 0.7 |
Tyrogue | 0.7 |
Magby | 0.7 |
Marshtomp | 0.7 |
Cascoon | 0.7 |
Swellow | 0.7 |
Volbeat | 0.7 |
Numel | 0.7 |
Spoink | 0.7 |
Trapinch | 0.7 |
Anorith | 0.7 |
Snorunt | 0.7 |
Raichu | 0.8 |
Nidorina | 0.8 |
Zubat | 0.8 |
Gloom | 0.8 |
Psyduck | 0.8 |
Machop | 0.8 |
Farfetchd | 0.8 |
Staryu | 0.8 |
Jolteon | 0.8 |
Porygon | 0.8 |
Sentret | 0.8 |
Flaaffy | 0.8 |
Azumarill | 0.8 |
Jumpluff | 0.8 |
Aipom | 0.8 |
Sunflora | 0.8 |
Magcargo | 0.8 |
Kirlia | 0.8 |
Masquerain | 0.8 |
Slakoth | 0.8 |
Ninjask | 0.8 |
Shedinja | 0.8 |
Carvanha | 0.8 |
Duskull | 0.8 |
Spheal | 0.8 |
Nidorino | 0.9 |
Abra | 0.9 |
Tentacool | 0.9 |
Grimer | 0.9 |
Magikarp | 0.9 |
Flareon | 0.9 |
Chikorita | 0.9 |
Quilava | 0.9 |
Espeon | 0.9 |
Sneasel | 0.9 |
Octillery | 0.9 |
Delibird | 0.9 |
Grovyle | 0.9 |
Combusken | 0.9 |
Lairon | 0.9 |
Grumpig | 0.9 |
Whiscash | 0.9 |
Ivysaur | 1.0 |
Wartortle | 1.0 |
Beedrill | 1.0 |
Sandslash | 1.0 |
Wigglytuff | 1.0 |
Parasect | 1.0 |
Venonat | 1.0 |
Persian | 1.0 |
Primeape | 1.0 |
Poliwhirl | 1.0 |
Weepinbell | 1.0 |
Graveler | 1.0 |
Ponyta | 1.0 |
Magneton | 1.0 |
Drowzee | 1.0 |
Marowak | 1.0 |
Rhyhorn | 1.0 |
Tangela | 1.0 |
Vaporeon | 1.0 |
Omastar | 1.0 |
Ledyba | 1.0 |
Umbreon | 1.0 |
Mightyena | 1.0 |
Beautifly | 1.0 |
Nuzleaf | 1.0 |
Loudred | 1.0 |
Makuhita | 1.0 |
Nosepass | 1.0 |
Lunatone | 1.0 |
Lileep | 1.0 |
Kecleon | 1.0 |
Relicanth | 1.0 |
Charmeleon | 1.1 |
Butterfree | 1.1 |
Pidgeotto | 1.1 |
Ninetales | 1.1 |
Seel | 1.1 |
Chansey | 1.1 |
Starmie | 1.1 |
Electabuzz | 1.1 |
Croconaw | 1.1 |
Ariados | 1.1 |
Politoed | 1.1 |
Gligar | 1.1 |
Piloswine | 1.1 |
Donphan | 1.1 |
Delcatty | 1.1 |
Spinda | 1.1 |
Vibrava | 1.1 |
Altaria | 1.1 |
Crawdaunt | 1.1 |
Banette | 1.1 |
Sealeo | 1.1 |
Shelgon | 1.1 |
Fearow | 1.2 |
Vileplume | 1.2 |
Slowpoke | 1.2 |
Muk | 1.2 |
Electrode | 1.2 |
Lickitung | 1.2 |
Weezing | 1.2 |
Seadra | 1.2 |
Bayleef | 1.2 |
Lanturn | 1.2 |
Sudowoodo | 1.2 |
Yanma | 1.2 |
Forretress | 1.2 |
Smeargle | 1.2 |
Miltank | 1.2 |
Pupitar | 1.2 |
Dustox | 1.2 |
Lombre | 1.2 |
Pelipper | 1.2 |
Breloom | 1.2 |
Solrock | 1.2 |
Absol | 1.2 |
Metang | 1.2 |
Nidoqueen | 1.3 |
Clefable | 1.3 |
Poliwrath | 1.3 |
Kadabra | 1.3 |
Gastly | 1.3 |
Kingler | 1.3 |
Seaking | 1.3 |
Mr_mime | 1.3 |
Magmar | 1.3 |
Kabutops | 1.3 |
Wobbuffet | 1.3 |
Shiftry | 1.3 |
Medicham | 1.3 |
Cacturne | 1.3 |
Zangoose | 1.3 |
Nidoking | 1.4 |
Golem | 1.4 |
Doduo | 1.4 |
Hitmonchan | 1.4 |
Jynx | 1.4 |
Tauros | 1.4 |
Ledian | 1.4 |
Ampharos | 1.4 |
Quagsire | 1.4 |
Granbull | 1.4 |
Houndoom | 1.4 |
Stantler | 1.4 |
Hitmontop | 1.4 |
Vigoroth | 1.4 |
Walrein | 1.4 |
Latias | 1.4 |
Pidgeot | 1.5 |
Venomoth | 1.5 |
Alakazam | 1.5 |
Machoke | 1.5 |
Cloyster | 1.5 |
Gengar | 1.5 |
Hitmonlee | 1.5 |
Scyther | 1.5 |
Pinsir | 1.5 |
Xatu | 1.5 |
Girafarig | 1.5 |
Dunsparce | 1.5 |
Heracross | 1.5 |
Blissey | 1.5 |
Swampert | 1.5 |
Ludicolo | 1.5 |
Exploud | 1.5 |
Manectric | 1.5 |
Claydol | 1.5 |
Cradily | 1.5 |
Armaldo | 1.5 |
Glalie | 1.5 |
Salamence | 1.5 |
Blastoise | 1.6 |
Golbat | 1.6 |
Machamp | 1.6 |
Tentacruel | 1.6 |
Slowbro | 1.6 |
Haunter | 1.6 |
Hypno | 1.6 |
Zapdos | 1.6 |
Noctowl | 1.6 |
Gardevoir | 1.6 |
Dusclops | 1.6 |
Metagross | 1.6 |
Charizard | 1.7 |
Golduck | 1.7 |
Victreebel | 1.7 |
Rapidash | 1.7 |
Dewgong | 1.7 |
Articuno | 1.7 |
Typhlosion | 1.7 |
Skarmory | 1.7 |
Sceptile | 1.7 |
Swalot | 1.7 |
Huntail | 1.7 |
Regirock | 1.7 |
Deoxys | 1.7 |
Dodrio | 1.8 |
Aerodactyl | 1.8 |
Dratini | 1.8 |
Meganium | 1.8 |
Furret | 1.8 |
Crobat | 1.8 |
Scizor | 1.8 |
Ursaring | 1.8 |
Kingdra | 1.8 |
Sharpedo | 1.8 |
Gorebyss | 1.8 |
Regice | 1.8 |
Arcanine | 1.9 |
Rhydon | 1.9 |
Raikou | 1.9 |
Blaziken | 1.9 |
Camerupt | 1.9 |
Registeel | 1.9 |
Venusaur | 2.0 |
Ekans | 2.0 |
Exeggutor | 2.0 |
Moltres | 2.0 |
Mewtwo | 2.0 |
Slowking | 2.0 |
Suicune | 2.0 |
Tyranitar | 2.0 |
Slaking | 2.0 |
Wailmer | 2.0 |
Flygon | 2.0 |
Tropius | 2.0 |
Latios | 2.0 |
Snorlax | 2.1 |
Mantine | 2.1 |
Entei | 2.1 |
Aggron | 2.1 |
Kangaskhan | 2.2 |
Dragonite | 2.2 |
Feraligatr | 2.3 |
Hariyama | 2.3 |
Lapras | 2.5 |
Seviper | 2.7 |
Arbok | 3.5 |
Groudon | 3.5 |
Ho_oh | 3.8 |
Dragonair | 4.0 |
Kyogre | 4.5 |
Lugia | 5.2 |
Milotic | 6.2 |
Gyarados | 6.5 |
Rayquaza | 7.0 |
Onix | 8.8 |
Steelix | 9.2 |
Wailord | 14.5 |
Pokémon ordered by weight
Pokemon | weight (kg) |
---|---|
Gastly | 0.1 |
Haunter | 0.1 |
Hoppip | 0.5 |
Diglett | 0.8 |
Castform | 0.8 |
Igglybuff | 1.0 |
Koffing | 1.0 |
Skiploom | 1.0 |
Chimecho | 1.0 |
Misdreavus | 1.0 |
Jirachi | 1.1 |
Swablu | 1.2 |
Shedinja | 1.2 |
Togepi | 1.5 |
Surskit | 1.7 |
Pidgey | 1.8 |
Sunkern | 1.8 |
Barboach | 1.9 |
Natu | 2.0 |
Azurill | 2.0 |
Spearow | 2.0 |
Pichu | 2.0 |
Roselia | 2.0 |
Murkrow | 2.1 |
Taillow | 2.3 |
Shuppet | 2.3 |
Exeggcute | 2.5 |
Torchic | 2.5 |
Lotad | 2.6 |
Caterpie | 2.9 |
Cleffa | 3.0 |
Jumpluff | 3.0 |
Weedle | 3.2 |
Togetic | 3.2 |
Dratini | 3.3 |
Rattata | 3.5 |
Wurmple | 3.6 |
Masquerain | 3.6 |
Qwilfish | 3.9 |
Shellder | 4.0 |
Ditto | 4.0 |
Mew | 4.0 |
Seedot | 4.0 |
Bellsprout | 4.0 |
Meowth | 4.2 |
Plusle | 4.2 |
Minun | 4.2 |
Shroomish | 4.5 |
Unown | 5.0 |
Treecko | 5.0 |
Corsola | 5.0 |
Celebi | 5.0 |
Spinda | 5.0 |
Paras | 5.4 |
Oddish | 5.4 |
Jigglypuff | 5.5 |
Nincada | 5.5 |
Bellossom | 5.8 |
Magnemite | 6.0 |
Pikachu | 6.0 |
Smoochum | 6.0 |
Sentret | 6.0 |
Chikorita | 6.4 |
Weepinbell | 6.4 |
Eevee | 6.5 |
Krabby | 6.5 |
Cubone | 6.5 |
Swinub | 6.5 |
Ralts | 6.6 |
Bulbasaur | 6.9 |
Ekans | 6.9 |
Nidoran_f | 7.0 |
Pineco | 7.2 |
Feebas | 7.4 |
Omanyte | 7.5 |
Clefairy | 7.5 |
Zubat | 7.5 |
Mudkip | 7.6 |
Mareep | 7.8 |
Snubbull | 7.8 |
Cyndaquil | 7.9 |
Horsea | 8.0 |
Marill | 8.5 |
Wooper | 8.5 |
Spinarak | 8.5 |
Charmander | 8.5 |
Sunflora | 8.5 |
Gloom | 8.6 |
Luvdisc | 8.7 |
Teddiursa | 8.8 |
Squirtle | 9.0 |
Nidoran_m | 9.0 |
Totodile | 9.5 |
Wingull | 9.5 |
Weezing | 9.5 |
Vulpix | 9.9 |
Metapod | 9.9 |
Kakuna | 10.0 |
Silcoon | 10.0 |
Magikarp | 10.0 |
Gulpin | 10.3 |
Voltorb | 10.4 |
Houndour | 10.8 |
Ledyba | 10.8 |
Sableye | 11.0 |
Skitty | 11.0 |
Meditite | 11.2 |
Kabuto | 11.5 |
Mawile | 11.5 |
Corphish | 11.5 |
Cascoon | 11.5 |
Aipom | 11.5 |
Chinchou | 12.0 |
Sandshrew | 12.0 |
Remoraid | 12.0 |
Ninjask | 12.0 |
Wigglytuff | 12.0 |
Poliwag | 12.4 |
Anorith | 12.5 |
Banette | 12.5 |
Venomoth | 12.5 |
Ivysaur | 13.0 |
Flaaffy | 13.3 |
Poochyena | 13.6 |
Wynaut | 14.0 |
Dunsparce | 14.0 |
Goldeen | 15.0 |
Trapinch | 15.0 |
Farfetchd | 15.0 |
Duskull | 15.0 |
Xatu | 15.0 |
Electrike | 15.2 |
Vibrava | 15.3 |
Victreebel | 15.5 |
Bayleef | 15.8 |
Delibird | 16.0 |
Whismur | 16.3 |
Dragonair | 16.5 |
Snorunt | 16.8 |
Zigzagoon | 17.5 |
Illumise | 17.7 |
Volbeat | 17.7 |
Raticate | 18.5 |
Vileplume | 18.6 |
Growlithe | 19.0 |
Quilava | 19.0 |
Charmeleon | 19.0 |
Machop | 19.5 |
Nidorino | 19.5 |
Abra | 19.5 |
Combusken | 19.5 |
Psyduck | 19.6 |
Swellow | 19.8 |
Ninetales | 19.9 |
Geodude | 20.0 |
Nidorina | 20.0 |
Poliwhirl | 20.0 |
Kirlia | 20.2 |
Shuckle | 20.5 |
Altaria | 20.6 |
Carvanha | 20.8 |
Tyrogue | 21.0 |
Hoothoot | 21.2 |
Magby | 21.4 |
Baltoy | 21.5 |
Grovyle | 21.6 |
Kecleon | 22.0 |
Wartortle | 22.5 |
Lanturn | 22.5 |
Gorebyss | 22.6 |
Relicanth | 23.4 |
Elekid | 23.5 |
Whiscash | 23.6 |
Lileep | 23.8 |
Numel | 24.0 |
Slakoth | 24.0 |
Jolteon | 24.5 |
Flareon | 25.0 |
Croconaw | 25.0 |
Seadra | 25.0 |
Espeon | 26.5 |
Umbreon | 27.0 |
Huntail | 27.0 |
Mankey | 28.0 |
Marshtomp | 28.0 |
Sneasel | 28.0 |
Nuzleaf | 28.0 |
Pelipper | 28.0 |
Beautifly | 28.4 |
Azumarill | 28.5 |
Octillery | 28.5 |
Wobbuffet | 28.5 |
Vaporeon | 29.0 |
Beedrill | 29.5 |
Sandslash | 29.5 |
Parasect | 29.5 |
Raichu | 30.0 |
Grimer | 30.0 |
Venonat | 30.0 |
Ponyta | 30.0 |
Pidgeotto | 30.0 |
Electabuzz | 30.0 |
Muk | 30.0 |
Spoink | 30.6 |
Dusclops | 30.6 |
Medicham | 31.5 |
Dustox | 31.6 |
Persian | 32.0 |
Primeape | 32.0 |
Butterfree | 32.0 |
Drowzee | 32.4 |
Linoone | 32.5 |
Porygon2 | 32.5 |
Lombre | 32.5 |
Furret | 32.5 |
Delcatty | 32.6 |
Crawdaunt | 32.8 |
Dugtrio | 33.3 |
Phanpy | 33.5 |
Ariados | 33.5 |
Politoed | 33.9 |
Staryu | 34.5 |
Chansey | 34.6 |
Slugma | 35.0 |
Tangela | 35.0 |
Omastar | 35.0 |
Houndoom | 35.0 |
Ledian | 35.6 |
Slowpoke | 36.0 |
Porygon | 36.5 |
Mightyena | 37.0 |
Fearow | 38.0 |
Sudowoodo | 38.0 |
Yanma | 38.0 |
Seaking | 39.0 |
Breloom | 39.2 |
Doduo | 39.2 |
Spheal | 39.5 |
Pidgeot | 39.5 |
Clefable | 40.0 |
Latias | 40.0 |
Manectric | 40.2 |
Zangoose | 40.3 |
Loudred | 40.5 |
Kabutops | 40.5 |
Gengar | 40.5 |
Jynx | 40.6 |
Noctowl | 40.8 |
Girafarig | 41.5 |
Bagon | 42.1 |
Magmar | 44.5 |
Marowak | 45.0 |
Tentacool | 45.5 |
Vigoroth | 46.5 |
Blissey | 46.8 |
Absol | 47.0 |
Hitmontop | 48.0 |
Alakazam | 48.0 |
Gardevoir | 48.4 |
Granbull | 48.7 |
Hitmonlee | 49.8 |
Hitmonchan | 50.2 |
Skarmory | 50.5 |
Cacnea | 51.3 |
Blaziken | 52.0 |
Sceptile | 52.2 |
Clamperl | 52.5 |
Seviper | 52.5 |
Zapdos | 52.6 |
Poliwrath | 54.0 |
Heracross | 54.0 |
Mr_mime | 54.5 |
Magcargo | 55.0 |
Pinsir | 55.0 |
Ludicolo | 55.0 |
Golbat | 55.0 |
Tentacruel | 55.0 |
Articuno | 55.4 |
Piloswine | 55.8 |
Scyther | 56.0 |
Kadabra | 56.5 |
Smeargle | 58.0 |
Aerodactyl | 59.0 |
Shiftry | 59.6 |
Aron | 60.0 |
Magneton | 60.0 |
Nidoqueen | 60.0 |
Kingler | 60.0 |
Moltres | 60.0 |
Latios | 60.0 |
Cradily | 60.4 |
Deoxys | 60.8 |
Ampharos | 61.5 |
Nidoking | 62.0 |
Gligar | 64.8 |
Arbok | 65.0 |
Lickitung | 65.5 |
Electrode | 66.6 |
Armaldo | 68.2 |
Machoke | 70.5 |
Stantler | 71.2 |
Grumpig | 71.5 |
Larvitar | 72.0 |
Quagsire | 75.0 |
Crobat | 75.0 |
Miltank | 75.5 |
Hypno | 75.6 |
Golduck | 76.6 |
Cacturne | 77.4 |
Slowbro | 78.5 |
Typhlosion | 79.5 |
Slowking | 79.5 |
Starmie | 80.0 |
Swalot | 80.0 |
Kangaskhan | 80.0 |
Torkoal | 80.4 |
Swampert | 81.9 |
Flygon | 82.0 |
Exploud | 84.0 |
Dodrio | 85.2 |
Blastoise | 85.5 |
Makuhita | 86.4 |
Sealeo | 87.6 |
Tauros | 88.4 |
Sharpedo | 88.8 |
Feraligatr | 88.8 |
Seel | 90.0 |
Charizard | 90.5 |
Rapidash | 95.0 |
Beldum | 95.2 |
Nosepass | 97.0 |
Venusaur | 100.0 |
Tropius | 100.0 |
Meganium | 100.5 |
Salamence | 102.6 |
Graveler | 105.0 |
Claydol | 108.0 |
Shelgon | 110.5 |
Rhyhorn | 115.0 |
Scizor | 118.0 |
Lairon | 120.0 |
Donphan | 120.0 |
Dewgong | 120.0 |
Rhydon | 120.0 |
Exeggutor | 120.0 |
Mewtwo | 122.0 |
Forretress | 125.8 |
Ursaring | 125.8 |
Machamp | 130.0 |
Wailmer | 130.0 |
Slaking | 130.5 |
Cloyster | 132.5 |
Walrein | 150.6 |
Pupitar | 152.0 |
Kingdra | 152.0 |
Solrock | 154.0 |
Arcanine | 155.0 |
Milotic | 162.0 |
Lunatone | 168.0 |
Regice | 175.0 |
Raikou | 178.0 |
Suicune | 187.0 |
Entei | 198.0 |
Ho_oh | 199.0 |
Tyranitar | 202.0 |
Metang | 202.5 |
Registeel | 205.0 |
Rayquaza | 206.5 |
Dragonite | 210.0 |
Onix | 210.0 |
Lugia | 216.0 |
Camerupt | 220.0 |
Mantine | 220.0 |
Lapras | 220.0 |
Regirock | 230.0 |
Gyarados | 235.0 |
Hariyama | 253.8 |
Glalie | 256.5 |
Golem | 300.0 |
Kyogre | 352.0 |
Aggron | 360.0 |
Wailord | 398.0 |
Steelix | 400.0 |
Snorlax | 460.0 |
Metagross | 550.0 |
Groudon | 950.0 |