Pokémon Crystal/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
Line 106: Line 106:


==== Game Data ====
==== Game Data ====
=====Opposing Pokemon =====
  $D204 = Pokemon ID
  $D205 = ??
  $D206 = Pokemon ID
  $D207 = Enemy Item
  $D208 = Enemy Move 1
  $D209 = Enemy Move 2
  $D20A = Enemy Move 3
  $D20B = Enemy Move 4
  $D20C = ?Enemy DVs: Attack & Defense ?
  $D20D = ?Enemy DVs: Speed & Special ?
  $D20E =
  $D20F =
  $D210 =
  $D211 =
  $D212 =
  $D213 = Enemy Level
  $D214 = Enemy Status
  $D216 to $D217 = current HP
  $D218 to $D219 = max HP
  $D21A to $D21B = Attack
  $D21C to $D21D = Defense
  $D21E to $D21F = Speed
  $D210 to $D221 = Sp. Atk.
  $D222 to $D223 = Sp. Def.
  $D223 = ??
  $D224 = ??
  $D225 = ??
  $D226 = ??
  $D227 = ??
  $D228 = ??
  $D229 = ??
  $D22A = ??
  $D22B = ??
  $D22C = ??
  $D22D = ??Type of Battle (wild/gym/etc)
  $D22E =
  $D22F =
  $D230 =
  $D231 =
  $D232 =
  $D233 =
  $D234 =
  $D235 =
  $D236 =
  $D237 =
  $D238 =
=====Game Settings (??? have not been checked)=====
=====Game Settings (??? have not been checked)=====
<pre>
<pre>

Revision as of 20:58, 9 November 2024

Chip tiny.png The following article is a RAM map for Pokémon Crystal.

This list is heavily incomplete. Feel free to browse the disassembly (WRAM, VRAM, HRAM, SRAM) to complete this page.


Saved data (SRAM)

So very stubbly.
This page is rather stubbly and could use some expansion.
Are you a bad enough dude to rescue this article?


Main data (WRAM)

Bank 0 (C000-CFFF)

So very stubbly.
This page is rather stubbly and could use some expansion.
Are you a bad enough dude to rescue this article?

Stack

 C000-CFFF Stack (advice : don't touch this)

Music

 C100 - Is music playing ?

Music channels

 C101-C132 - Channel 1 data
 C133-C164 - Channel 2 data
 C165-C196 - Channel 3 data
 C197-C1C8 - Channel 4 data

SFX channels

 C1C9-C1FA - Channel 5 data
 C1FB-C22C - Channel 6 data
 C22D-C25E - Channel 7 data
 C25F-C290 - Channel 8 data
 C291-C2C1 - Misc data


Sprite animations

 C300-C313 - Animation dictionary
 C314-C323 - Animation struct 1
 C324-C333 - Animation struct 2
 C334-C343 - Animation struct 3
 C344-C353 - Animation struct 4
 C354-C363 - Animation struct 5
 C364-C373 - Animation struct 6
 C374-C383 - Animation struct 7
 C384-C393 - Animation struct 8
 C394-C3A3 - Animation struct 9
 C3A4-C3B3 - Animation struct 10
 C3B4 - Number of structs

OAM

 C400-C49F - OAM copy (for OAM DMA)

Tilemap

 C4A0-C607 - Screen tilemap

Odd Egg

 C608 - Species
 C609 - Held item
 C60A - Move 1
 C60B - Move 2
 C60C - Move 3
 C60D - Move 4
 C60E-C60F - OT ID
 C610-C612 - Experience
 C613-C614 - HP stat experience
 C615-C616 - ATK stat experience
 C617-C618 - DEF stat experience
 C619-C61A - SPD stat experience
 C61B-C61C - SPE stat experience (both Special attack and def)
 C61D-C61E - DVs
 C61F - Move 1 PP
 C620 - Move 2 PP
 C621 - Move 3 PP
 C622 - Move 4 PP
 C623 - Happiness
 C624 - Pokérus status
 C625-C626 - Caught data
 C627 - Level
 C628 - Status
 C629 - Unused
 C62A-C62B - HP
 C62C-C62D - Max HP
 C62E-C62F - Attack stat
 C630-C631 - Defense stat
 C632-C633 - Speed stat
 C634-C635 - Special attack stat
 C636-C637 - Special def. stat
 C638-C642 - Odd Egg name
 C643-C64D - Odd Egg OT name

Overworld map

 C800-CD13 - Overworld map

Game Boy Printer RAM

 C800-C967 - GB printer screen

Unused data

Memory between CFD8 and CFFF is unused.


Bank 1 (D000-DFFF)

So very stubbly.
This page is rather stubbly and could use some expansion.
Are you a bad enough dude to rescue this article?

Game Data

Opposing Pokemon
 $D204 = Pokemon ID
 $D205 = ??
 $D206 = Pokemon ID
 $D207 = Enemy Item
 $D208 = Enemy Move 1
 $D209 = Enemy Move 2
 $D20A = Enemy Move 3
 $D20B = Enemy Move 4
 $D20C = ?Enemy DVs: Attack & Defense ? 
 $D20D = ?Enemy DVs: Speed & Special ?
 $D20E = 
 $D20F = 
 $D210 = 
 $D211 = 
 $D212 = 
 $D213 = Enemy Level
 $D214 = Enemy Status
 $D216 to $D217 = current HP
 $D218 to $D219 = max HP
 $D21A to $D21B = Attack
 $D21C to $D21D = Defense
 $D21E to $D21F = Speed
 $D210 to $D221 = Sp. Atk.
 $D222 to $D223 = Sp. Def.
 $D223 = ??
 $D224 = ??
 $D225 = ??
 $D226 = ??
 $D227 = ??
 $D228 = ??
 $D229 = ??
 $D22A = ??
 $D22B = ??
 $D22C = ??
 $D22D = ??Type of Battle (wild/gym/etc)
 $D22E = 
 $D22F = 
 $D230 = 
 $D231 = 
 $D232 = 
 $D233 = 
 $D234 = 
 $D235 = 
 $D236 = 
 $D237 = 
 $D238 = 


Game Settings (??? have not been checked)
$D472 = Gender
$D47B to $D47C = ID
$D47D to $D486 = Your name
$D488 to $D491 = Your name (again for some reason? Mom's name?)
$D493 to $D49A = Rival Name (ends with "50") 
$D49E - Red's name
$D4A9 - Green's name
??? $D4B6 to $D4B8 = Clock = Day (appears to be added to some unknown clock value. Can't set clock directly.)
$D4C4 to $D4C8 = Play Time 
??? = Wild Pokemon Battles Enabled?
$D84F to $D850 = Money
$D852 to $D853 = Mother's Held Money
??? $D855 to $D856 = Casino Coins
??? $D858 = Johto Badges
*$01 = Falkner
*$02 = Bugsy
*$04 = Whitney
*$08 = Morty
*$10 = Jasmine
*$20 = Chuck
*$40 = Pryce
*$80 = Clair

Pack (Bag)

TM/HM Pocket

D859-D88A - TMs (63 = normal max)

 D859 - TM01 (DynamicPunch)
 D85A - TM02 (Headbutt)
 D85B - TM03 (Curse)
 D85C - TM04 (Rollout)
 D85D - TM05 (Roar)
 D85E - TM06 (Toxic)
 D85F - TM07 (Zap Cannon)
 D860 - TM08 (Rock Smash)
 D861 - TM09 (Psych Up)
 D862 - TM10 (Hidden Power)
 D863 - TM11 (Sunny Day)
 D864 - TM12 (Sweet Scent)
 D865 - TM13 (Snore)
 D866 - TM14 (Blizzard)
 D867 - TM15 (Hyper Beam)
 D868 - TM16 (Icy Wind)
 D869 - TM17 (Protect)
 D86A - TM18 (Rain Dance)
 D86B - TM19 (Giga Drain)
 D86C - TM20 (Endure)
 D86D - TM21 (Frustration)
 D86E - TM22 (SolarBeam)
 D86F - TM23 (Iron Tail)
 D870 - TM24 (DragonBreath)
 D871 - TM25 (Thunder)
 D872 - TM26 (Earthquake)
 D873 - TM27 (Return)
 D874 - TM28 (Dig)
 D875 - TM29 (Psychic)
 D876 - TM30 (Shadow Ball)
 D877 - TM31 (Mud-Slap)
 D878 - TM32 (Double Team)
 D879 - TM33 (Ice Punch)
 D87A - TM34 (Swagger)
 D87B - TM35 (Sleep Talk)
 D87C - TM36 (Sludge Bomb)
 D87D - TM37 (Sandstorm)
 D87E - TM38 (Fire Blast)
 D87F - TM39 (Swift)
 D880 - TM40 (Defense Curl)
 D881 - TM41 (ThunderPunch)
 D882 - TM42 (Dream Eater)
 D883 - TM43 (Detect)
 D884 - TM44 (Rest)
 D885 - TM45 (Attract)
 D886 - TM46 (Thief)
 D887 - TM47 (Steel Wing)
 D888 - TM48 (Fire Punch)
 D889 - TM49 (Fury Cutter)
 D88A - TM50 (Nightmare)

D88B-D891 - HMs (01 = normal max)

 D88B - HM01 (Cut)
 D88C - HM02 (Fly)
 D88D - HM03 (Surf)
 D88E - HM04 (Strength)
 D88F - HM05 (FLash)
 D890 - HM06 (Whirlpool)
 D891 - HM07 (Waterfall)
Items Pocket
 D892 - Total number of items (14 = normal max)
 D893 - Item 1
 D894 - Item 1 (Quantity)
 D895 - Item 2
 D896 - Item 2 (Quantity)
 D897 - Item 3
 D898 - Item 3 (Quantity)
 D899 - Item 4
 D89A - Item 4 (Quantity)
 D89B - Item 5
 D89C - Item 5 (Quantity)
 D89D - Item 6
 D89E - Item 6 (Quantity)
 D89F - Item 7
 D8A0 - Item 7 (Quantity)
 D8A1 - Item 8
 D8A2 - Item 8 (Quantity)
 D8A3 - Item 9
 D8A4 - Item 9 (Quantity)
 D8A5 - Item 10
 D8A6 - Item 10 (Quantity)
 D8A7 - Item 11
 D8A8 - Item 11 (Quantity)
 D8A9 - Item 12
 D8AA - Item 12 (Quantity)
 D8AB - Item 13
 D8AC - Item 13 (Quantity)
 D8AD - Item 14
 D8AE - Item 14 (Quantity)
 D8AF - Item 15
 D8B0 - Item 15 (Quantity)
 D8B1 - Item 16
 D8B2 - Item 16 (Quantity)
 D8B3 - Item 17
 D8B4 - Item 17 (Quantity)
 D8B5 - Item 18
 D8B6 - Item 18 (Quantity)
 D8B7 - Item 19
 D8B8 - Item 19 (Quantity)
 D8B9 - Item 20
 D8BA - Item 20 (Quantity)
 D8BB - End of item list (FF = terminator)
Key Items Pocket??
 $D8BC = Total Key Item Count
 $D8BD to $D8D5 = Key Items
 $D8D6 = Key Items End of List
Balls Pocket
 D8D7 - Total number of items (12 = normal max?)
 D8D8 - Ball 1
 D8D9 - Ball 1 (Quantity)
 D8DA - Ball  2
 D8DB - Ball  2 (Quantity)
 D8DC - Ball 3
 D8DD - Ball 3 (Quantity)
 D8DE - Ball 4
 D8DF - Ball 4 (Quantity)
 D8E0 - Ball 5
 D8E1 - Ball 5 (Quantity)
 D8E2 - Ball  6
 D8E3 - Ball  6 (Quantity)
 D8E4 - Ball  7
 D8E5 - Ball 7 (Quantity)
 D8E6 - Ball 8
 D8E7 - Ball  8 (Quantity)
 D8E8 - Ball  9
 D8E9 - Ball  9 (Quantity)
 D8EA - Ball 10
 D8EB - Ball  10 (Quantity)
 D8EC - Ball 11
 D8ED - Ball 11 (Quantity)
 D8EE - Ball 12
 D8FF - Ball 12 (Quantity)
 D8F0 - End of Ball list? (FF = terminator)

Flags

 D960 - In-game trade flags (00 = reset)
 DA72 - Event flags

Party

 DCD7 - Number of party Pokémon
 DCD8-DCDD - Species of party Pokémon
 DCDE - List terminator (usually either 00 or FF)

Party Pokémon 1

 DCDF - Species
 DCE0 - Held item
 DCE1 - Move 1
 DCE2 - Move 2
 DCE3 - Move 3
 DCE4 - Move 4
 DCE5-DCE6 - OT ID
 DCE7-DCE9 - Experience
 DCEA-DCEB - HP stat experience
 DCEC-DCED - ATK stat experience
 DCEE-DCEF - DEF stat experience
 DCF0-DCF1 - SPD stat experience
 DCF2-DCF3 - SPE stat experience (both Special attack and def)
 DCF4-DCF5 - DVs
 DCF6 - Move 1 PP
 DCF7 - Move 2 PP
 DCF8 - Move 3 PP
 DCF9 - Move 4 PP
 DCFA - Happiness
 DCFB - Pokérus status
 DCFC-DCFD - Caught data
 DCFE - Level
 DCFF - Status
 DD00 - Unused
 DD01-DD02 - HP
 DD03-DD04 - Max HP
 DD05-DD06 - Attack stat
 DD07-DD08 - Defense stat
 DD09-DD0A - Speed stat
 DD0B-DD0C - Special attack stat
 DD0D-DD0E - Special def. stat

Party Pokémon 2

 DD0F - Species
 DD10 - Held item
 DD11 - Move 1
 DD12 - Move 2
 DD13 - Move 3
 DD14 - Move 4
 DD15-DD16 - OT ID
 DD17-DD19 - Experience
 DD1A-DD1B - HP stat experience
 DD1C-DD1D - ATK stat experience
 DD1E-DD1F - DEF stat experience
 DD20-DD21 - SPD stat experience
 DD22-DD23 - SPE stat experience (both Special attack and def)
 DD24-DD25 - DVs
 DD26 - Move 1 PP
 DD27 - Move 2 PP
 DD28 - Move 3 PP
 DD29 - Move 4 PP
 DD2A - Happiness
 DD2B - Pokérus status
 DD2C-DD2D - Caught data
 DD2E - Level
 DD2F - Status
 DD30 - Unused
 DD31-DD32 - HP
 DD33-DD34 - Max HP
 DD35-DD36 - Attack stat
 DD37-DD38 - Defense stat
 DD39-DD3A - Speed stat
 DD3B-DD3C - Special attack stat
 DD3D-DD3E - Special def. stat

Party Pokémon 3

 DD3F - Species
 DD40 - Held item
 DD41 - Move 1
 DD42 - Move 2
 DD43 - Move 3
 DD44 - Move 4
 DD45-DD46 - OT ID
 DD47-DD49 - Experience
 DD4A-DD4B - HP stat experience
 DD4C-DD4D - ATK stat experience
 DD4E-DD4F - DEF stat experience
 DD50-DD51 - SPD stat experience
 DD52-DD53 - SPE stat experience (both Special attack and def)
 DD54-DD55 - DVs
 DD56 - Move 1 PP
 DD57 - Move 2 PP
 DD58 - Move 3 PP
 DD59 - Move 4 PP
 DD5A - Happiness
 DD5B - Pokérus status
 DD5C-DD5D - Caught data
 DD5E - Level
 DD5F - Status
 DD60 - Unused
 DD61-DD62 - HP
 DD63-DD64 - Max HP
 DD65-DD66 - Attack stat
 DD67-DD68 - Defense stat
 DD69-DD6A - Speed stat
 DD6B-DD6C - Special attack stat
 DD6D-DD6E - Special def. stat

Party Pokémon 4

 DD6F - Species
 DD70 - Held item
 DD71 - Move 1
 DD72 - Move 2
 DD73 - Move 3
 DD74 - Move 4
 DD75-DD76 - OT ID
 DD77-DD79 - Experience
 DD7A-DD7B - HP stat experience
 DD7C-DD7D - ATK stat experience
 DD7E-DD7F - DEF stat experience
 DD80-DD81 - SPD stat experience
 DD82-DD83 - SPE stat experience (both Special attack and def)
 DD84-DD85 - DVs
 DD86 - Move 1 PP
 DD87 - Move 2 PP
 DD88 - Move 3 PP
 DD89 - Move 4 PP
 DD8A - Happiness
 DD8B - Pokérus status
 DD8C-DD8D - Caught data
 DD8E - Level
 DD8F - Status
 DD90 - Unused
 DD91-DD92 - HP
 DD93-DD94 - Max HP
 DD95-DD96 - Attack stat
 DD97-DD98 - Defense stat
 DD99-DD9A - Speed stat
 DD9B-DD9C - Special attack stat
 DD9D-DD9E - Special def. stat

Party Pokémon 5

 DD9F - Species
 DDA0 - Held item
 DDA1 - Move 1
 DDA2 - Move 2
 DDA3 - Move 3
 DDA4 - Move 4
 DDA5-DDA6 - OT ID
 DDA7-DDA9 - Experience
 DDAA-DDAB - HP stat experience
 DDAC-DDAD - ATK stat experience
 DDAE-DDAF - DEF stat experience
 DDB0-DDB1 - SPD stat experience
 DDB2-DDB3 - SPE stat experience (both Special attack and def)
 DDB4-DDB5 - DVs
 DDB6 - Move 1 PP
 DDB7 - Move 2 PP
 DDB8 - Move 3 PP
 DDB9 - Move 4 PP
 DDBA - Happiness
 DDBB - Pokérus status
 DDBC-DDBD - Caught data
 DDBE - Level
 DDBF - Status
 DDC0 - Unused
 DDC1-DDC2 - HP
 DDC3-DDC4 - Max HP
 DDC5-DDC6 - Attack stat
 DDC7-DDC8 - Defense stat
 DDC9-DDCA - Speed stat
 DDCB-DDCC - Special attack stat
 DDCD-DDCE - Special def. stat

Party Pokémon 6

 DDCF - Species
 DDD0 - Held item
 DDD1 - Move 1
 DDD2 - Move 2
 DDD3 - Move 3
 DDD4 - Move 4
 DDD5-DDD6 - OT ID
 DDD7-DDD9 - Experience
 DDDA-DDDB - HP stat experience
 DDDC-DDDD - ATK stat experience
 DDDE-DDDF - DEF stat experience
 DDE0-DDE1 - SPD stat experience
 DDE2-DDE3 - SPE stat experience (both Special attack and def)
 DDE4-DDE5 - DVs
 DDE6 - Move 1 PP
 DDE7 - Move 2 PP
 DDE8 - Move 3 PP
 DDE9 - Move 4 PP
 DDEA - Happiness
 DDEB - Pokérus status
 DDEC-DD8D - Caught data
 DDEE - Level
 DDEF - Status
 DDF0 - Unused
 DDF1-DDF2 - HP
 DDF3-DDF4 - Max HP
 DDF5-DDF6 - Attack stat
 DDF7-DDF8 - Defense stat
 DDF9-DDFA - Speed stat
 DDFB-DDFC - Special attack stat
 DDFD-DDFE - Special def. stat
 DDFF-DE09 - Party Pokémon 1 OT name
 DE0A-DE14 - Party Pokémon 2 OT name
 DE15-DE1F - Party Pokémon 3 OT name
 DE20-DE2A - Party Pokémon 4 OT name
 DE2B-DE35 - Party Pokémon 5 OT name
 DE36-DE40 - Party Pokémon 6 OT name
 DE41-DE4B - Party Pokémon 1 nickname
 DE4C-DE56 - Party Pokémon 2 nickname
 DE57-DE61 - Party Pokémon 3 nickname
 DE62-DE6C - Party Pokémon 4 nickname
 DE6D-DE77 - Party Pokémon 5 nickname
 DE78-DE82 - Party Pokémon 6 nickname

(22 unused bytes ?)

Pokédex

 DE99 - Pokédex caught Pokémon 1-8
 DE9A - Pokédex caught Pokémon 9-16
 DE9B - Pokédex caught Pokémon 17-24
 DE9C - Pokédex caught Pokémon 25-32
 DE9D - Pokédex caught Pokémon 33-40
 DE9E - Pokédex caught Pokémon 41-48
 DE9F - Pokédex caught Pokémon 49-56
 DEA0 - Pokédex caught Pokémon 57-64
 DEA1 - Pokédex caught Pokémon 65-72
 DEA2 - Pokédex caught Pokémon 73-80
 DEA3 - Pokédex caught Pokémon 81-88
 DEA4 - Pokédex caught Pokémon 89-96
 DEA5 - Pokédex caught Pokémon 97-104
 DEA6 - Pokédex caught Pokémon 105-112
 DEA7 - Pokédex caught Pokémon 113-120
 DEA8 - Pokédex caught Pokémon 121-128
 DEA9 - Pokédex caught Pokémon 129-136
 DEAA - Pokédex caught Pokémon 137-144
 DEAB - Pokédex caught Pokémon 145-152
 DEAC - Pokédex caught Pokémon 153-160
 DEAD - Pokédex caught Pokémon 161-168
 DEAE - Pokédex caught Pokémon 169-176
 DEAF - Pokédex caught Pokémon 177-184
 DEB0 - Pokédex caught Pokémon 185-192
 DEB1 - Pokédex caught Pokémon 193-200
 DEB2 - Pokédex caught Pokémon 201-208
 DEB3 - Pokédex caught Pokémon 209-216
 DEB4 - Pokédex caught Pokémon 217-224
 DEB5 - Pokédex caught Pokémon 225-232
 DEB6 - Pokédex caught Pokémon 233-240
 DEB7 - Pokédex caught Pokémon 241-248
 DEB8 - Pokédex caught Pokémon 249-256 (although there are only 252 Pokémon ; this means there are 4 unused flags)
 DEB9 - Pokédex seen Pokémon 1-8
 DEBA - Pokédex seen Pokémon 9-16
 DEBB - Pokédex seen Pokémon 17-24
 DEBC - Pokédex seen Pokémon 25-32
 DEBD - Pokédex seen Pokémon 33-40
 DEBE - Pokédex seen Pokémon 41-48
 DEBF - Pokédex seen Pokémon 49-56
 DEC0 - Pokédex seen Pokémon 57-64
 DEC1 - Pokédex seen Pokémon 65-72
 DEC2 - Pokédex seen Pokémon 73-80
 DEC3 - Pokédex seen Pokémon 81-88
 DEC4 - Pokédex seen Pokémon 89-96
 DEC5 - Pokédex seen Pokémon 97-104
 DEC6 - Pokédex seen Pokémon 105-112
 DEC7 - Pokédex seen Pokémon 113-120
 DEC8 - Pokédex seen Pokémon 121-128
 DEC9 - Pokédex seen Pokémon 129-136
 DECA - Pokédex seen Pokémon 137-144
 DECB - Pokédex seen Pokémon 145-152
 DECC - Pokédex seen Pokémon 153-160
 DECD - Pokédex seen Pokémon 161-168
 DECE - Pokédex seen Pokémon 169-176
 DECF - Pokédex seen Pokémon 177-184
 DED0 - Pokédex seen Pokémon 185-192
 DED1 - Pokédex seen Pokémon 193-200
 DED2 - Pokédex seen Pokémon 201-208
 DED3 - Pokédex seen Pokémon 209-216
 DED4 - Pokédex seen Pokémon 217-224
 DED5 - Pokédex seen Pokémon 225-232
 DED6 - Pokédex seen Pokémon 233-240
 DED7 - Pokédex seen Pokémon 241-248
 DED8 - Pokédex seen Pokémon 249-256 (although there are only 252 Pokémon ; this means there are 4 unused flags)
 DED9-DEF2 - Unown dex (IDs of unlocked Unowns)
 DEF3 - Unlocked Unowns (Count of how many Unowns have been seen ?)
 DEF4 - First Unown seen (?)

Unused data

Memory between DFF5 and DFFF is unused.

Internal data (HRAM)

So very stubbly.
This page is rather stubbly and could use some expansion.
Are you a bad enough dude to rescue this article?