Pokémon Mystery Dungeon: Red Rescue Team/Main Pokémon Data

From Data Crystal
< Pokémon Mystery Dungeon: Red Rescue Team
Revision as of 11:48, 15 March 2016 by Crocodile91 (talk | contribs) (the stat gains are stored elsewere)
Jump to navigation Jump to search
Miscellaneous Data: Main Pokémon Data
Game Pokémon Mystery Dungeon: Red Rescue Team
Start Address 0x0357B98
End Address 0x035F2D7
# of Entries 424
Entry Length 72 bytes (0x48)
Total Length 30528 bytes (0x7740)
Back to the ROM map

This is the entry structure for various Pokémon data.

Pokémon Species Name

  • Length: 4 bytes
  • Offset within entry: 0-3 (0x00-0x03)
  • Range of values: Any valid GBA pointer in little-endian form

This is a little-endian GBA pointer to a string for the Pokémon species name.

Pokémon Category Name

  • Length: 4 bytes
  • Offset within entry: 4-7 (0x04-0x07)
  • Range of values: Any valid GBA pointer in little-endian form

This is a little-endian GBA pointer to a string for the Pokémon category name. (eg: for Bulbasaur is "Seed Pokémon", for Charmander is "Lizard Pokémon", etc.)

Palette For Overworld Sprite

  • Length: 1 byte
  • Offset within entry: 8 (0x08)
  • Range of values: 0-12 (0x00-0x0C)

Value indicating which palette is used for the overworld sprite, from sprite palette 0 to 12.

Pokémon Size

  • Length: 1 byte
  • Offset within entry: 9 (0x09)
  • Range of values: 1-6 (0x00-0x06)

Value indicating the Pokémon size. This is relative to the total sprite tiles amount. Every graphic tile is 8x8 pixel.

0x01: size 1, up to 16 tiles
0x02: size 2, up to 32 tiles
0x03: size 3, up to 48 tiles
0x04: size 4, up to 64 tiles
0x05: size 5, up to 80 tiles
0x06: size 6, up to 96 tiles

Note that using a value bigger than needed does not cause glitches, but would uselessly waste video memory, and thus Team space.

Movement Speed

  • Length: 4 bytes
  • Offset within entry: 12-15 (0x0C-0x0F)
  • Range of values: from -1 to 4 (0xFFFFFFFF-0x05000000)

This is a little-endian, signed long int value setting the default Pokémon movement speed modifier, that is the amount of steps that the Pokémon can take in a turn.

0xFFFFFFFF (-1): ÷3 steps
0x00000000 ( 0): ÷2 steps
0x01000000 ( 1):  1 step
0x03000000 ( 2): ×2 steps
0x04000000 ( 3): ×3 steps
0x05000000 ( 4): ×4 steps

Note that if set value differs from 1, there will be displayed relative notice in the Pokémon Status summary.

Avaible Dialogue Sprites

  • Length: 2 bytes
  • Offset within entry: 16-17 (0x10-0x11)
  • Range of values: currentely unknown

This value indicates the dialogue sprite to be used. It is probably intended to avoid crash in the case a dialogue script tries to use an unprogrammed Pokémon dialogue sprite.

First Pokémon Type

  • Length: 1 byte
  • Offset within entry: 19 (0x13)
  • Range of values: 0-17 (0x00-0x11)
0x00: None
0x01: Normal
0x02: Fire
0x03: Water
0x04: Grass
0x05: Electric
0x06: Ice
0x07: Fighting
0x08: Poison
0x09: Ground
0x0A: Flying
0x0B: Psychic
0x0C: Bug
0x0D: Rock
0x0E: Ghost
0x0F: Dragon
0x10: Dark
0x11: Steel

Note that "None" is a placeholder type that is not affect by any Move Type effectiveness.

Second Pokémon Type

  • Length: 1 byte
  • Offset within entry: 20 (0x14)
  • Range of values: 0-17 (0x00-0x11)

Same as above. Note that if "None" is set, it won't be displayed in the Pokémon Summary.

Walkable Tile Types

  • Length: 1 byte
  • Offset within entry: 21 (0x15)
  • Range of values: 0-5 (0x00-0x05)

Sets which floor tiles the Pokémon can walk on.

0x00: Ground
0x01: Ground, Magma, Water
0x02: Ground, Magma, Water, Sky
0x03: Ground, Magma, Water, Sky, Wall; if not the Team Leader, can follow invisible Pokémon
0x04: Ground, Magma; won't get burn from magma even if the Pokémon isn't fire type
0x05: Ground, Water

Friend Area

  • Length: 1 byte
  • Offset within entry: 22 (0x16)
  • Range of values: 0-57 (0x00-0x39)
0x00: None
0x01: Bountiful Sea
0x02: Treasure Sea
0x03: Serene Sea
0x04: Deep-Sea Floor
0x05: Deep-Sea Current
0x06: Seafloor Cave
0x07: Shallow Beach
0x08: Mt. Deepgreen
0x09: Mt. Cleft
0x0A: Mt. Moonview
0x0B: Rainbow Peak
0x0C: Wild Plains
0x0D: Beau Plains
0x0E: Sky Blue Plains
0x0F: Safari
0x10: Scorched Plains
0x11: Sacred Field
0x12: Mist-Rise Forest
0x13: Flyaway Forest
0x14: Overgrown Forest
0x15: Energetic Forest
0x16: Mushroom Forest
0x17: Healing Forest
0x18: Transform Forest
0x19: Secretive Forest
0x1A: Rub-a-Dub River
0x1B: Tadpole Pond
0x1C: Turtleshell Pond
0x1D: Mystic Lake
0x1E: Waterfall Lake
0x1F: Peanut Swamp
0x20: Poison Swamp
0x21: Echo Cave
0x22: Cryptic Cave
0x23: Dragon Cave
0x24: Boulder Cave
0x25: Jungle
0x26: Decrepit Lab
0x27: Mt. Discipline
0x28: Thunder Meadow
0x29: Power Plant
0x2A: Crater
0x2B: Furnace Desert
0x2C: Aged Chamber AN
0x2D: Aged Chamber O?
0x2E: Ancient Relic
0x2F: Darkness Ridge
0x30: Frigid Cavern
0x31: Ice Floe Beach
0x32: Volcanic Pit
0x33: Stratos Lookout
0x34: Ravaged Field
0x35: Magnetic Quarry
0x36: Legendary Island
0x37: Southern Island
0x38: Enclosed Island
0x39: Final Island

First Ability

  • Length: 1 byte
  • Offset within entry: 23 (0x17)
  • Range of values: 0-76 (0x00-0x4C)
0x00: -------
0x01: Stench
0x02: Thick Fat
0x03: Rain Dish
0x04: Drizzle
0x05: Arena Trap
0x06: Intimidate
0x07: Rock Head
0x08: Air Lock
0x09: Hyper Cutter
0x0A: Shadow Tag
0x0B: Speed Boost
0x0C: Battle Armor
0x0D: Sturdy
0x0E: Suction Cups
0x0F: Clear Body
0x10: Torrent
0x11: Guts
0x12: Rough Skin
0x13: Shell Armor
0x14: Natural Cure
0x15: Damp
0x16: Limber
0x17: Magnet Pull
0x18: White Smoke
0x19: Synchronize
0x1A: Overgrown
0x1B: Swift Swim
0x1C: Sand Stream
0x1D: Sand Veil
0x1E: Keen Eye
0x1F: Inner Focus
0x20: Static
0x21: Shed Skin
0x22: Huge Power
0x23: Volt Absorb
0x24: Water Absorb
0x25: Forecast
0x26: Serene Grace
0x27: Poison Point
0x28: Trace
0x29: Oblivious
0x2A: Truant
0x2B: Run Away
0x2C: Sticky Hold
0x2D: Cloud Nine
0x2E: Illuminate
0x2F: Early Bird
0x30: Hustle
0x31: Drought
0x32: Lightningrod
0x33: Compoundeyes
0x34: Marvel Scale
0x35: Wonder Guard
0x36: Insomnia
0x37: Levitate
0x38: Plus
0x39: Pressure
0x3A: Liquid Ooze
0x3B: Color Change
0x3C: Soundproof
0x3D: Effect Spore
0x3E: Flame Body
0x3F: Minus
0x40: Own Tempo
0x41: Magma Armor
0x42: Water Veil
0x43: Swarm
0x44: Cute Charm
0x45: Immunity
0x46: Blaze
0x47: Pickup
0x48: Flash Fire
0x49: Vital Spirit
0x4A: Chlorophyll
0x4B: Pure Power
0x4C: Shield Dust

Note that "-------" is a placeholder ability which have no effect, with no in-game description.

Second Ability

  • Length: 1 byte
  • Offset within entry: 24 (0x18)
  • Range of values: 0-76 (0x00-0x4C)

Same as above. Note that if "-------" is set, it won't be displayed in the Pokémon Summary.

Shadow Size

  • Length: 1 byte
  • Offset within entry: 25 (0x19)
  • Range of values: 0-2 (0x00-0x02)
0x00: Small
0x01: Medium
0x02: Large

Base HP

  • Length: 2 bytes
  • Offset within entry: 30-31 (0x1E-0x1F)
  • Range of values: 0-65535 (0x0000-0xFFFF)

This is a little-endian, unsigned short int value for the Pokémon HP value, adding to the cumulative level stat gains.

Base Experience

  • Length: 1 byte
  • Offset within entry: 32-33 (0x20-0x21)
  • Range of values: 0-65535 (0x00-0xFFFF)

This is a little-endian, unsigned short int value directely proportional to the amount of experience points get when defeating the Pokémon, via the following formula:

Exp. Points = int((int(A*(B-1)/10)+A)*C)

Where:

A = Enemy Pokémon’s base experience value
B = Enemy Pokémon’s level
C = 0.5 if only regular attacks and/or items were used;
    1   if it was hit by a move and received at least 1 HP damage;
    1.5 if it was hit by a linked move and received at least 1 HP damage.

Base Attack

  • Length: 2 bytes
  • Offset within entry: 36-37 (0x24-0x25)
  • Range of values: 0-65535 (0x0000-0xFFFF)

This is a little-endian, unsigned short int value for the Pokémon Attack value, adding to the cumulative level stat gains.

Base Special Attack

  • Length: 2 bytes
  • Offset within entry: 38-39 (0x26-0x27)
  • Range of values: 0-65535 (0x0000-0xFFFF)

This is a little-endian, unsigned short int value for the Pokémon Special Attack value, adding to the cumulative level stat gains.

Base Defense

  • Length: 2 bytes
  • Offset within entry: 40-41 (0x28-0x29)
  • Range of values: 0-65535 (0x0000-0xFFFF)

This is a little-endian, unsigned short int value for the Pokémon Defense value, adding to the cumulative level stat gains.

Base Special Attack

  • Length: 2 bytes
  • Offset within entry: 42-43 (0x2A-0x2B)
  • Range of values: 0-65535 (0x0000-0xFFFF)

This is a little-endian, unsigned short int value for the Pokémon Special Defense value, adding to the cumulative level stat gains.

Lowkick Damage Factor

  • Length: 2 bytes
  • Offset within entry: 44-45 (0x2C-0x2D)
  • Range of values: from 0-65535 (0x0000-0xFFFF)

This is a little-endian, unsigned short int value directely proportional to the damage amount taken by the Pokémon when hit by Low Kick move.

Sizebust Orb Damage Amount

  • Length: 1 byte
  • Offset within entry: 46-47 (0x2E-0x2F)
  • Range of values: 0-65535 (0x0000-0xFFFF)

This is a little-endian, unsigned short int value indicating the HP damage amount taken by the Pokémon when hit by Sizebust Orb.

Base Recruit Value

  • Length: 2 bytes
  • Offset within entry: 64-65 (0x40-0x41)
  • Range of values: from -32768 to 32767 (0xFF80-0xFF7F)

This is a little-endian, signed short int value setting the base Pokémon recruit value. When an enemy Pokémon is defeated while within a 1-tile range from the Team Leader, it will ask to be recruited if a random value from 0 to 999 is less than the sum of the following values:

  • The enemy Pokémon base recruit value;
  • 100 if the Leader is holding Friend Bow item;
  • A value depending from the Leader level:
29 or less:  0
30-39:  50
40-49:  75
50-59: 100
60-69: 125
70-79: 150
80-89: 175
90-99: 240