<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://projectpokemon.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sabresite</id>
	<title>ProjectPokemon Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://projectpokemon.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sabresite"/>
	<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/Special:Contributions/Sabresite"/>
	<updated>2026-05-27T21:05:43Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=6th_and_7th_Generation_Wonder_Card_Map&amp;diff=5523</id>
		<title>6th and 7th Generation Wonder Card Map</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=6th_and_7th_Generation_Wonder_Card_Map&amp;diff=5523"/>
		<updated>2017-05-19T20:28:03Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Pokémon Cards */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mystery Gift Data =&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! 6th Gen&lt;br /&gt;
! 7th Gen&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00-0x01&lt;br /&gt;
|colspan=2| Card ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x02-0x44+&lt;br /&gt;
|colspan=2| Card Title&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x4C-0x4F&lt;br /&gt;
|Date Card Received&amp;lt;br&amp;gt;&lt;br /&gt;
Decimal YYYYMMDD&lt;br /&gt;
|Date Card Received&amp;lt;br&amp;gt;&lt;br /&gt;
Decimal YYMMDD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x50&lt;br /&gt;
|colspan=2| Card Location&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x51&lt;br /&gt;
|colspan=2| Card Type&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Pokémon&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Item&amp;lt;br&amp;gt; &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x52&lt;br /&gt;
| Redeemability / Use Status&lt;br /&gt;
00 - Infinite / Unused&amp;lt;br&amp;gt; &lt;br /&gt;
01 - Only once / Unused&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Infinite / Used&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Only once / Used&amp;lt;br&amp;gt;&lt;br /&gt;
| Redeemability / Use Status&lt;br /&gt;
00 - Infinite / Unused&amp;lt;br&amp;gt; &lt;br /&gt;
01 - Only once / Unused&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Infinite / Used&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Only once / Used&amp;lt;br&amp;gt;&lt;br /&gt;
04 - Once per day / Unused&amp;lt;br&amp;gt;&lt;br /&gt;
06 - Once per day / Used&amp;lt;br&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x53&lt;br /&gt;
| Redemption Color&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Blue&amp;lt;br&amp;gt; &lt;br /&gt;
01 - Green&amp;lt;br&amp;gt;&lt;br /&gt;
| Card Color&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Blue&amp;lt;br&amp;gt; &lt;br /&gt;
01 - Purple&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Yellow&amp;lt;br&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x54-0x67&lt;br /&gt;
|colspan=2| &#039;&#039;Unused/Unknown&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
0x66 - always FF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pokémon Cards ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! 6th Gen&lt;br /&gt;
! 7th Gen&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x68-0x6B&lt;br /&gt;
|colspan=2| Full TID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x6C&lt;br /&gt;
|colspan=2| Pokemon Origin Game&lt;br /&gt;
00 for Game Received in&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x70-0x73&lt;br /&gt;
|colspan=2| Encryption Constant&lt;br /&gt;
Unset = 00000000&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x74&lt;br /&gt;
|colspan=2| Primary Ribbons&amp;lt;br&amp;gt;&lt;br /&gt;
Ribbon data available below.&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x75&lt;br /&gt;
|colspan=2| Secondary Ribbons&amp;lt;br&amp;gt;&lt;br /&gt;
Ribbon data available below.&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x76&lt;br /&gt;
|colspan=2| PokéBall&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x77&lt;br /&gt;
|colspan=2| &#039;&#039;Unused/Unknown&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x78-0x79&lt;br /&gt;
|colspan=2| Held Item&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7A-0x7B&lt;br /&gt;
|colspan=2| Move ID #1&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7C-0x7D&lt;br /&gt;
|colspan=2| Move ID #2&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7E-0x7F&lt;br /&gt;
|colspan=2| Move ID #3&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x80-0x81&lt;br /&gt;
|colspan=2| Move ID #4&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x82-0x83&lt;br /&gt;
|colspan=2| PokéDex Number&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x84&lt;br /&gt;
|colspan=2| Form No.&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x85&lt;br /&gt;
|colspan=2| Language&amp;lt;br&amp;gt;&lt;br /&gt;
00 for Game Received In&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x86-0x9F&lt;br /&gt;
|colspan=2| Pokémon Nickname&amp;lt;br&amp;gt;&lt;br /&gt;
Null terminator for last two bytes.&amp;lt;br&amp;gt;&lt;br /&gt;
If no nickname, all 00.&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA0&lt;br /&gt;
|colspan=2| Nature&amp;lt;br&amp;gt;&lt;br /&gt;
FF - Unset&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA1&lt;br /&gt;
|colspan=2| Pokémon Gender&amp;lt;br&amp;gt; &lt;br /&gt;
00 - Male&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Female&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Genderless&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Random&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA2&lt;br /&gt;
|colspan=2| Pokémon Ability&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Ability 1&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Ability 2&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Hidden Ability&amp;lt;br&amp;gt;&lt;br /&gt;
03 - RND(Abil1, Abil2)&amp;lt;br&amp;gt;&lt;br /&gt;
04 - RND(Abil1, Abil2, AbilHA)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA3&lt;br /&gt;
|colspan=2| PID Toggle&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Generate Specified PID &amp;lt;br&amp;gt;&lt;br /&gt;
01 - Generate Random PID (Can be shiny)&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Generate Shiny PID (Always shiny)&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Generate Random PID (Can&#039;t be shiny)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA4-0xA5&lt;br /&gt;
|colspan=2| Egg Met Location&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA6-0xA7&lt;br /&gt;
|colspan=2| Met Location of Pokémon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA8&lt;br /&gt;
|colspan=2| Met Level&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA9-0xAE&lt;br /&gt;
|colspan=2| Contest Stats&amp;lt;br&amp;gt;&lt;br /&gt;
Last byte is Sheen&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xAF-0xB4&lt;br /&gt;
|colspan=2| IVs&amp;lt;br&amp;gt;&lt;br /&gt;
FF - Unset&amp;lt;br&amp;gt;&lt;br /&gt;
FE - 3 guaranteed 31s&amp;lt;br&amp;gt;&lt;br /&gt;
FD - 2 guaranteed 31s&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xB5&lt;br /&gt;
|colspan=2| OT Gender&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Male&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Female&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Recipient&#039;s Gender&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xB6-0xCF&lt;br /&gt;
|colspan=2| OT Name&amp;lt;br&amp;gt;&lt;br /&gt;
Null terminator for last two bytes.&amp;lt;br&amp;gt;&lt;br /&gt;
If no set OT, all 00.&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD0&lt;br /&gt;
|colspan=2| Current Level&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD1&lt;br /&gt;
|colspan=2| Egg Flag&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Is Not Egg&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Is Egg &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD2-0xD3&lt;br /&gt;
| &#039;&#039;Unused/Unknown&#039;&#039;&lt;br /&gt;
| Additional item&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD4-0xD7&lt;br /&gt;
|colspan=2| PID (sometimes EE6B2802 default)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD8-0xD9&lt;br /&gt;
|colspan=2| Relearn Move 1 &lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xDA-0xDB&lt;br /&gt;
|colspan=2| Relearn Move 2 &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xDC-0xDD&lt;br /&gt;
|colspan=2| Relearn Move 3 &lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xDE-0xDF&lt;br /&gt;
|colspan=2| Relearn Move 4 &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE0&lt;br /&gt;
|colspan=2| OT Memory Intensity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE1&lt;br /&gt;
|colspan=2| OT Memory Line&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE2-0xE3&lt;br /&gt;
|colspan=2| OT Memory TextVar&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE4&lt;br /&gt;
|colspan=2| OT Memory Feeling&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xE5-0xEA&lt;br /&gt;
| &#039;&#039;Reserved bytes&#039;&#039;&lt;br /&gt;
| EVs&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xEB-0x107&lt;br /&gt;
|colspan=2| &#039;&#039;Reserved bytes&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Item Cards ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! 6th Gen&lt;br /&gt;
! 7th Gen&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x68-0x69&lt;br /&gt;
| Item ID&lt;br /&gt;
| Item 1 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x6A-0x6B&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 1 Quantity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x6C-0x6D&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 2 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x6E-0x6F&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 2 Quantity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x70-0x71&lt;br /&gt;
| Item Quantity&lt;br /&gt;
| Item 3 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x72-0x73&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 3 Quantity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x74-0x75&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 4 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x76-0x77&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 4 Quantity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x78-0x79&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 5 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7A-0x7B&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 5 Quantity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7C-0x7D&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 6 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7E-0x7F&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 6 Quantity&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ribbon Set ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Flag Value&lt;br /&gt;
! 0x74&lt;br /&gt;
! 0x75&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x01&lt;br /&gt;
| Battle Champ Ribbon&lt;br /&gt;
| World Champ Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x02&lt;br /&gt;
| Regional Champ Ribbon&lt;br /&gt;
| Birthday Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04&lt;br /&gt;
| National Champ Ribbon&lt;br /&gt;
| Special Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Country Ribbon&lt;br /&gt;
| Souvenir Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| National Ribbon&lt;br /&gt;
| Wishing Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| Earth Ribbon&lt;br /&gt;
| Classic Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x40&lt;br /&gt;
| World Ribbon&lt;br /&gt;
| Premier Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x80&lt;br /&gt;
| Event Ribbon&lt;br /&gt;
| Empty&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Technical References]]&lt;br /&gt;
[[Category:Save Data]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=6th_and_7th_Generation_Wonder_Card_Map&amp;diff=5522</id>
		<title>6th and 7th Generation Wonder Card Map</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=6th_and_7th_Generation_Wonder_Card_Map&amp;diff=5522"/>
		<updated>2017-05-19T00:49:08Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mystery Gift Data =&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! 6th Gen&lt;br /&gt;
! 7th Gen&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00-0x01&lt;br /&gt;
|colspan=2| Card ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x02-0x44+&lt;br /&gt;
|colspan=2| Card Title&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x4C-0x4F&lt;br /&gt;
|Date Card Received&amp;lt;br&amp;gt;&lt;br /&gt;
Decimal YYYYMMDD&lt;br /&gt;
|Date Card Received&amp;lt;br&amp;gt;&lt;br /&gt;
Decimal YYMMDD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x50&lt;br /&gt;
|colspan=2| Card Location&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x51&lt;br /&gt;
|colspan=2| Card Type&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Pokémon&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Item&amp;lt;br&amp;gt; &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x52&lt;br /&gt;
| Redeemability / Use Status&lt;br /&gt;
00 - Infinite / Unused&amp;lt;br&amp;gt; &lt;br /&gt;
01 - Only once / Unused&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Infinite / Used&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Only once / Used&amp;lt;br&amp;gt;&lt;br /&gt;
| Redeemability / Use Status&lt;br /&gt;
00 - Infinite / Unused&amp;lt;br&amp;gt; &lt;br /&gt;
01 - Only once / Unused&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Infinite / Used&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Only once / Used&amp;lt;br&amp;gt;&lt;br /&gt;
04 - Once per day / Unused&amp;lt;br&amp;gt;&lt;br /&gt;
06 - Once per day / Used&amp;lt;br&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x53&lt;br /&gt;
| Redemption Color&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Blue&amp;lt;br&amp;gt; &lt;br /&gt;
01 - Green&amp;lt;br&amp;gt;&lt;br /&gt;
| Card Color&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Blue&amp;lt;br&amp;gt; &lt;br /&gt;
01 - Purple&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Yellow&amp;lt;br&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x54-0x67&lt;br /&gt;
|colspan=2| &#039;&#039;Unused/Unknown&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
0x66 - always FF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pokémon Cards ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! 6th Gen&lt;br /&gt;
! 7th Gen&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x68-0x6B&lt;br /&gt;
| 0x68-0x69 - TID (MMDDY)&amp;lt;br&amp;gt;0x6A-0x6B - SID (WWW)&lt;br /&gt;
| Full ID&amp;lt;br&amp;gt;&lt;br /&gt;
000YYMMDD&amp;lt;br&amp;gt;or&amp;lt;br&amp;gt;&lt;br /&gt;
WWWYYMMDD&amp;lt;br&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x6C&lt;br /&gt;
|colspan=2| Pokemon Origin Game&lt;br /&gt;
00 for Game Received in&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x70-0x73&lt;br /&gt;
|colspan=2| Encryption Constant&lt;br /&gt;
Unset = 00000000&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x74&lt;br /&gt;
|colspan=2| Primary Ribbons&amp;lt;br&amp;gt;&lt;br /&gt;
Ribbon data available below.&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x75&lt;br /&gt;
|colspan=2| Secondary Ribbons&amp;lt;br&amp;gt;&lt;br /&gt;
Ribbon data available below.&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x76&lt;br /&gt;
|colspan=2| PokéBall&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x77&lt;br /&gt;
|colspan=2| &#039;&#039;Unused/Unknown&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x78-0x79&lt;br /&gt;
|colspan=2| Held Item&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7A-0x7B&lt;br /&gt;
|colspan=2| Move ID #1&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7C-0x7D&lt;br /&gt;
|colspan=2| Move ID #2&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7E-0x7F&lt;br /&gt;
|colspan=2| Move ID #3&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x80-0x81&lt;br /&gt;
|colspan=2| Move ID #4&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x82-0x83&lt;br /&gt;
|colspan=2| PokéDex Number&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x84&lt;br /&gt;
|colspan=2| Form No.&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x85&lt;br /&gt;
|colspan=2| Language&amp;lt;br&amp;gt;&lt;br /&gt;
00 for Game Received In&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x86-0x9F&lt;br /&gt;
|colspan=2| Pokémon Nickname&amp;lt;br&amp;gt;&lt;br /&gt;
Null terminator for last two bytes.&amp;lt;br&amp;gt;&lt;br /&gt;
If no nickname, all 00.&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA0&lt;br /&gt;
|colspan=2| Nature&amp;lt;br&amp;gt;&lt;br /&gt;
FF - Unset&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA1&lt;br /&gt;
|colspan=2| Pokémon Gender&amp;lt;br&amp;gt; &lt;br /&gt;
00 - Male&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Female&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Genderless&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Random&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA2&lt;br /&gt;
|colspan=2| Pokémon Ability&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Ability 1&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Ability 2&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Hidden Ability&amp;lt;br&amp;gt;&lt;br /&gt;
03 - RND(Abil1, Abil2)&amp;lt;br&amp;gt;&lt;br /&gt;
04 - RND(Abil1, Abil2, AbilHA)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA3&lt;br /&gt;
|colspan=2| PID Toggle&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Generate Specified PID &amp;lt;br&amp;gt;&lt;br /&gt;
01 - Generate Random PID (Can be shiny)&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Generate Shiny PID (Always shiny)&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Generate Random PID (Can&#039;t be shiny)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA4-0xA5&lt;br /&gt;
|colspan=2| Egg Met Location&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA6-0xA7&lt;br /&gt;
|colspan=2| Met Location of Pokémon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA8&lt;br /&gt;
|colspan=2| Met Level&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA9-0xAE&lt;br /&gt;
|colspan=2| Contest Stats&amp;lt;br&amp;gt;&lt;br /&gt;
Last byte is Sheen&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xAF-0xB4&lt;br /&gt;
|colspan=2| IVs&amp;lt;br&amp;gt;&lt;br /&gt;
FF - Unset&amp;lt;br&amp;gt;&lt;br /&gt;
FE - 3 guaranteed 31s&amp;lt;br&amp;gt;&lt;br /&gt;
FD - 2 guaranteed 31s&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xB5&lt;br /&gt;
|colspan=2| OT Gender&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Male&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Female&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Recipient&#039;s Gender&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xB6-0xCF&lt;br /&gt;
|colspan=2| OT Name&amp;lt;br&amp;gt;&lt;br /&gt;
Null terminator for last two bytes.&amp;lt;br&amp;gt;&lt;br /&gt;
If no set OT, all 00.&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD0&lt;br /&gt;
|colspan=2| Current Level&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD1&lt;br /&gt;
|colspan=2| Egg Flag&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Is Not Egg&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Is Egg &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD2-0xD3&lt;br /&gt;
| &#039;&#039;Unused/Unknown&#039;&#039;&lt;br /&gt;
| Additional item&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD4-0xD7&lt;br /&gt;
|colspan=2| PID (sometimes EE6B2802 default)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD8-0xD9&lt;br /&gt;
|colspan=2| Relearn Move 1 &lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xDA-0xDB&lt;br /&gt;
|colspan=2| Relearn Move 2 &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xDC-0xDD&lt;br /&gt;
|colspan=2| Relearn Move 3 &lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xDE-0xDF&lt;br /&gt;
|colspan=2| Relearn Move 4 &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE0&lt;br /&gt;
|colspan=2| OT Memory Intensity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE1&lt;br /&gt;
|colspan=2| OT Memory Line&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE2-0xE3&lt;br /&gt;
|colspan=2| OT Memory TextVar&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE4&lt;br /&gt;
|colspan=2| OT Memory Feeling&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xE5-0xEA&lt;br /&gt;
| &#039;&#039;Reserved bytes&#039;&#039;&lt;br /&gt;
| EVs&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xEB-0x107&lt;br /&gt;
|colspan=2| &#039;&#039;Reserved bytes&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Item Cards ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! 6th Gen&lt;br /&gt;
! 7th Gen&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x68-0x69&lt;br /&gt;
| Item ID&lt;br /&gt;
| Item 1 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x6A-0x6B&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 1 Quantity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x6C-0x6D&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 2 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x6E-0x6F&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 2 Quantity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x70-0x71&lt;br /&gt;
| Item Quantity&lt;br /&gt;
| Item 3 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x72-0x73&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 3 Quantity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x74-0x75&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 4 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x76-0x77&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 4 Quantity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x78-0x79&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 5 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7A-0x7B&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 5 Quantity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7C-0x7D&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 6 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7E-0x7F&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 6 Quantity&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ribbon Set ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Flag Value&lt;br /&gt;
! 0x74&lt;br /&gt;
! 0x75&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x01&lt;br /&gt;
| Battle Champ Ribbon&lt;br /&gt;
| World Champ Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x02&lt;br /&gt;
| Regional Champ Ribbon&lt;br /&gt;
| Birthday Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04&lt;br /&gt;
| National Champ Ribbon&lt;br /&gt;
| Special Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Country Ribbon&lt;br /&gt;
| Souvenir Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| National Ribbon&lt;br /&gt;
| Wishing Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| Earth Ribbon&lt;br /&gt;
| Classic Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x40&lt;br /&gt;
| World Ribbon&lt;br /&gt;
| Premier Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x80&lt;br /&gt;
| Event Ribbon&lt;br /&gt;
| Empty&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Technical References]]&lt;br /&gt;
[[Category:Save Data]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=6th_and_7th_Generation_Wonder_Card_Map&amp;diff=5521</id>
		<title>6th and 7th Generation Wonder Card Map</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=6th_and_7th_Generation_Wonder_Card_Map&amp;diff=5521"/>
		<updated>2017-05-19T00:45:42Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mystery Gift Data =&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! 6th Gen&lt;br /&gt;
! 7th Gen&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00-0x01&lt;br /&gt;
|colspan=2| Card ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x02-0x44+&lt;br /&gt;
|colspan=2| Card Title&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x4C-0x4F&lt;br /&gt;
|Date Card Received&amp;lt;br&amp;gt;&lt;br /&gt;
Decimal YYYYMMDD&lt;br /&gt;
|Date Card Received&amp;lt;br&amp;gt;&lt;br /&gt;
Decimal YYMMDD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x50&lt;br /&gt;
|colspan=2| Card Location&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x51&lt;br /&gt;
|colspan=2| Card Type&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Pokémon&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Item&amp;lt;br&amp;gt; &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x52&lt;br /&gt;
| Redeemability / Use Status&lt;br /&gt;
00 - Infinite / Unused&amp;lt;br&amp;gt; &lt;br /&gt;
01 - Only once / Unused&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Infinite / Used&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Only once / Used&amp;lt;br&amp;gt;&lt;br /&gt;
| Redeemability / Use Status&lt;br /&gt;
00 - Infinite / Unused&amp;lt;br&amp;gt; &lt;br /&gt;
01 - Only once / Unused&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Infinite / Used&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Only once / Used&amp;lt;br&amp;gt;&lt;br /&gt;
04 - Once per day / Unused&amp;lt;br&amp;gt;&lt;br /&gt;
06 - Once per day / Used&amp;lt;br&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x53&lt;br /&gt;
| Redemption Color&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Blue&amp;lt;br&amp;gt; &lt;br /&gt;
01 - Green&amp;lt;br&amp;gt;&lt;br /&gt;
| Card Color&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Blue&amp;lt;br&amp;gt; &lt;br /&gt;
01 - Purple&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Yellow&amp;lt;br&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x54-0x67&lt;br /&gt;
|colspan=2| &#039;&#039;Unused/Unknown&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
0x66 - always FF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pokémon Cards ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! 6th Gen&lt;br /&gt;
! 7th Gen&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x68-0x6B&lt;br /&gt;
| 0x68-0x69 - TID (MMDDY)&amp;lt;br&amp;gt;0x6A-0x6B - SID (WWW)&lt;br /&gt;
| Full ID&amp;lt;br&amp;gt;&lt;br /&gt;
000YYMMDD&amp;lt;br&amp;gt;&lt;br /&gt;
WWWYYMMDD&amp;lt;br&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x6C&lt;br /&gt;
|colspan=2| Pokemon Origin Game&lt;br /&gt;
00 for Game Received in&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x70-0x73&lt;br /&gt;
|colspan=2| Encryption Constant&lt;br /&gt;
Unset = 00000000&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x74&lt;br /&gt;
|colspan=2| Primary Ribbons&amp;lt;br&amp;gt;&lt;br /&gt;
Ribbon data available below.&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x75&lt;br /&gt;
|colspan=2| Secondary Ribbons&amp;lt;br&amp;gt;&lt;br /&gt;
Ribbon data available below.&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x76&lt;br /&gt;
|colspan=2| PokéBall&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x77&lt;br /&gt;
|colspan=2| &#039;&#039;Unused/Unknown&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x78-0x79&lt;br /&gt;
|colspan=2| Held Item&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7A-0x7B&lt;br /&gt;
|colspan=2| Move ID #1&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7C-0x7D&lt;br /&gt;
|colspan=2| Move ID #2&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7E-0x7F&lt;br /&gt;
|colspan=2| Move ID #3&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x80-0x81&lt;br /&gt;
|colspan=2| Move ID #4&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x82-0x83&lt;br /&gt;
|colspan=2| PokéDex Number&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x84&lt;br /&gt;
|colspan=2| Form No.&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x85&lt;br /&gt;
|colspan=2| Language&amp;lt;br&amp;gt;&lt;br /&gt;
00 for Game Received In&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x86-0x9F&lt;br /&gt;
|colspan=2| Pokémon Nickname&amp;lt;br&amp;gt;&lt;br /&gt;
Null terminator for last two bytes.&amp;lt;br&amp;gt;&lt;br /&gt;
If no nickname, all 00.&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA0&lt;br /&gt;
|colspan=2| Nature&amp;lt;br&amp;gt;&lt;br /&gt;
FF - Unset&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA1&lt;br /&gt;
|colspan=2| Pokémon Gender&amp;lt;br&amp;gt; &lt;br /&gt;
00 - Male&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Female&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Genderless&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Random&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA2&lt;br /&gt;
|colspan=2| Pokémon Ability&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Ability 1&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Ability 2&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Hidden Ability&amp;lt;br&amp;gt;&lt;br /&gt;
03 - RND(Abil1, Abil2)&amp;lt;br&amp;gt;&lt;br /&gt;
04 - RND(Abil1, Abil2, AbilHA)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA3&lt;br /&gt;
|colspan=2| PID Toggle&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Generate Specified PID &amp;lt;br&amp;gt;&lt;br /&gt;
01 - Generate Random PID (Can be shiny)&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Generate Shiny PID (Always shiny)&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Generate Random PID (Can&#039;t be shiny)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA4-0xA5&lt;br /&gt;
|colspan=2| Egg Met Location&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA6-0xA7&lt;br /&gt;
|colspan=2| Met Location of Pokémon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA8&lt;br /&gt;
|colspan=2| Met Level&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA9-0xAE&lt;br /&gt;
|colspan=2| Contest Stats&amp;lt;br&amp;gt;&lt;br /&gt;
Last byte is Sheen&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xAF-0xB4&lt;br /&gt;
|colspan=2| IVs&amp;lt;br&amp;gt;&lt;br /&gt;
FF - Unset&amp;lt;br&amp;gt;&lt;br /&gt;
FE - 3 guaranteed 31s&amp;lt;br&amp;gt;&lt;br /&gt;
FD - 2 guaranteed 31s&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xB5&lt;br /&gt;
|colspan=2| OT Gender&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Male&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Female&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Recipient&#039;s Gender&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xB6-0xCF&lt;br /&gt;
|colspan=2| OT Name&amp;lt;br&amp;gt;&lt;br /&gt;
Null terminator for last two bytes.&amp;lt;br&amp;gt;&lt;br /&gt;
If no set OT, all 00.&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD0&lt;br /&gt;
|colspan=2| Current Level&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD1&lt;br /&gt;
|colspan=2| Egg Flag&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Is Not Egg&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Is Egg &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD2-0xD3&lt;br /&gt;
| &#039;&#039;Unused/Unknown&#039;&#039;&lt;br /&gt;
| Additional item&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD4-0xD7&lt;br /&gt;
|colspan=2| PID (sometimes EE6B2802 default)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD8-0xD9&lt;br /&gt;
|colspan=2| Relearn Move 1 &lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xDA-0xDB&lt;br /&gt;
|colspan=2| Relearn Move 2 &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xDC-0xDD&lt;br /&gt;
|colspan=2| Relearn Move 3 &lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xDE-0xDF&lt;br /&gt;
|colspan=2| Relearn Move 4 &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE0&lt;br /&gt;
|colspan=2| OT Memory Intensity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE1&lt;br /&gt;
|colspan=2| OT Memory Line&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE2-0xE3&lt;br /&gt;
|colspan=2| OT Memory TextVar&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE4&lt;br /&gt;
|colspan=2| OT Memory Feeling&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xE5-0xEA&lt;br /&gt;
| &#039;&#039;Reserved bytes&#039;&#039;&lt;br /&gt;
| EVs&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xEB-0x107&lt;br /&gt;
|colspan=2| &#039;&#039;Reserved bytes&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Item Cards ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! 6th Gen&lt;br /&gt;
! 7th Gen&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x68-0x69&lt;br /&gt;
| Item ID&lt;br /&gt;
| Item 1 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x6A-0x6B&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 1 Quantity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x6C-0x6D&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 2 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x6E-0x6F&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 2 Quantity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x70-0x71&lt;br /&gt;
| Item Quantity&lt;br /&gt;
| Item 3 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x72-0x73&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 3 Quantity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x74-0x75&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 4 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x76-0x77&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 4 Quantity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x78-0x79&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 5 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7A-0x7B&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 5 Quantity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7C-0x7D&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 6 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7E-0x7F&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 6 Quantity&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ribbon Set ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Flag Value&lt;br /&gt;
! 0x74&lt;br /&gt;
! 0x75&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x01&lt;br /&gt;
| Battle Champ Ribbon&lt;br /&gt;
| World Champ Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x02&lt;br /&gt;
| Regional Champ Ribbon&lt;br /&gt;
| Birthday Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04&lt;br /&gt;
| National Champ Ribbon&lt;br /&gt;
| Special Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Country Ribbon&lt;br /&gt;
| Souvenir Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| National Ribbon&lt;br /&gt;
| Wishing Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| Earth Ribbon&lt;br /&gt;
| Classic Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x40&lt;br /&gt;
| World Ribbon&lt;br /&gt;
| Premier Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x80&lt;br /&gt;
| Event Ribbon&lt;br /&gt;
| Empty&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Technical References]]&lt;br /&gt;
[[Category:Save Data]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=6th_and_7th_Generation_Wonder_Card_Map&amp;diff=5520</id>
		<title>6th and 7th Generation Wonder Card Map</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=6th_and_7th_Generation_Wonder_Card_Map&amp;diff=5520"/>
		<updated>2017-05-19T00:38:50Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mystery Gift Data =&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! 6th Gen&lt;br /&gt;
! 7th Gen&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00-0x01&lt;br /&gt;
|colspan=2| Card ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x02-0x44+&lt;br /&gt;
|colspan=2| Card Title&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x4C-0x4F&lt;br /&gt;
|Date Card Received&amp;lt;br&amp;gt;&lt;br /&gt;
Decimal YYYYMMDD&lt;br /&gt;
|Date Card Received&amp;lt;br&amp;gt;&lt;br /&gt;
Decimal YYMMDD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x50&lt;br /&gt;
|colspan=2| Card Location&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x51&lt;br /&gt;
|colspan=2| Card Type&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Pokémon&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Item&amp;lt;br&amp;gt; &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x52&lt;br /&gt;
| Redeemability / Use Status&lt;br /&gt;
00 - Infinite / Unused&amp;lt;br&amp;gt; &lt;br /&gt;
01 - Only once / Unused&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Infinite / Used&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Only once / Used&amp;lt;br&amp;gt;&lt;br /&gt;
| Redeemability / Use Status&lt;br /&gt;
00 - Infinite / Unused&amp;lt;br&amp;gt; &lt;br /&gt;
01 - Only once / Unused&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Infinite / Used&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Only once / Used&amp;lt;br&amp;gt;&lt;br /&gt;
04 - Once per day / Unused&amp;lt;br&amp;gt;&lt;br /&gt;
06 - Once per day / Used&amp;lt;br&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x53&lt;br /&gt;
| Redemption Color&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Blue&amp;lt;br&amp;gt; &lt;br /&gt;
01 - Green&amp;lt;br&amp;gt;&lt;br /&gt;
| Card Color&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Blue&amp;lt;br&amp;gt; &lt;br /&gt;
01 - Purple&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Yellow&amp;lt;br&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x54-0x67&lt;br /&gt;
|colspan=2| &#039;&#039;Unused/Unknown&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
0x66 - always FF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Pokémon Cards ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! 6th Gen&lt;br /&gt;
! 7th Gen&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x68-0x6B&lt;br /&gt;
| 0x68-0x69 - TID&amp;lt;br&amp;gt;0x6A-0x6B - SID&lt;br /&gt;
| Full ID&amp;lt;br&amp;gt;&lt;br /&gt;
000YYMMDD&amp;lt;br&amp;gt;&lt;br /&gt;
WWWYYMMDD&amp;lt;br&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x6C&lt;br /&gt;
|colspan=2| Pokemon Origin Game&lt;br /&gt;
00 for Game Received in&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x70-0x73&lt;br /&gt;
|colspan=2| Encryption Constant&lt;br /&gt;
Unset = 00000000&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x74&lt;br /&gt;
|colspan=2| Primary Ribbons&amp;lt;br&amp;gt;&lt;br /&gt;
Ribbon data available below.&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x75&lt;br /&gt;
|colspan=2| Secondary Ribbons&amp;lt;br&amp;gt;&lt;br /&gt;
Ribbon data available below.&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x76&lt;br /&gt;
|colspan=2| PokéBall&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x77&lt;br /&gt;
|colspan=2| &#039;&#039;Unused/Unknown&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x78-0x79&lt;br /&gt;
|colspan=2| Held Item&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7A-0x7B&lt;br /&gt;
|colspan=2| Move ID #1&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7C-0x7D&lt;br /&gt;
|colspan=2| Move ID #2&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7E-0x7F&lt;br /&gt;
|colspan=2| Move ID #3&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x80-0x81&lt;br /&gt;
|colspan=2| Move ID #4&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x82-0x83&lt;br /&gt;
|colspan=2| PokéDex Number&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x84&lt;br /&gt;
|colspan=2| Form No.&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x85&lt;br /&gt;
|colspan=2| Language&amp;lt;br&amp;gt;&lt;br /&gt;
00 for Game Received In&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x86-0x9F&lt;br /&gt;
|colspan=2| Pokémon Nickname&amp;lt;br&amp;gt;&lt;br /&gt;
Null terminator for last two bytes.&amp;lt;br&amp;gt;&lt;br /&gt;
If no nickname, all 00.&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA0&lt;br /&gt;
|colspan=2| Nature&amp;lt;br&amp;gt;&lt;br /&gt;
FF - Unset&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA1&lt;br /&gt;
|colspan=2| Pokémon Gender&amp;lt;br&amp;gt; &lt;br /&gt;
00 - Male&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Female&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Genderless&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Random&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA2&lt;br /&gt;
|colspan=2| Pokémon Ability&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Ability 1&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Ability 2&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Hidden Ability&amp;lt;br&amp;gt;&lt;br /&gt;
03 - RND(Abil1, Abil2)&amp;lt;br&amp;gt;&lt;br /&gt;
04 - RND(Abil1, Abil2, AbilHA)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA3&lt;br /&gt;
|colspan=2| PID Toggle&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Generate Specified PID &amp;lt;br&amp;gt;&lt;br /&gt;
01 - Generate Random PID (Can be shiny)&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Generate Shiny PID (Always shiny)&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Generate Random PID (Can&#039;t be shiny)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA4-0xA5&lt;br /&gt;
|colspan=2| Egg Met Location&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA6-0xA7&lt;br /&gt;
|colspan=2| Met Location of Pokémon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA8&lt;br /&gt;
|colspan=2| Met Level&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA9-0xAE&lt;br /&gt;
|colspan=2| Contest Stats&amp;lt;br&amp;gt;&lt;br /&gt;
Last byte is Sheen&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xAF-0xB4&lt;br /&gt;
|colspan=2| IVs&amp;lt;br&amp;gt;&lt;br /&gt;
FF - Unset&amp;lt;br&amp;gt;&lt;br /&gt;
FE - 3 guaranteed 31s&amp;lt;br&amp;gt;&lt;br /&gt;
FD - 2 guaranteed 31s&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xB5&lt;br /&gt;
|colspan=2| OT Gender&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Male&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Female&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Recipient&#039;s Gender&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xB6-0xCF&lt;br /&gt;
|colspan=2| OT Name&amp;lt;br&amp;gt;&lt;br /&gt;
Null terminator for last two bytes.&amp;lt;br&amp;gt;&lt;br /&gt;
If no set OT, all 00.&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD0&lt;br /&gt;
|colspan=2| Current Level&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD1&lt;br /&gt;
|colspan=2| Egg Flag&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Is Not Egg&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Is Egg &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD2-0xD3&lt;br /&gt;
| &#039;&#039;Unused/Unknown&#039;&#039;&lt;br /&gt;
| Additional item&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD4-0xD7&lt;br /&gt;
|colspan=2| PID (sometimes EE6B2802 default)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD8-0xD9&lt;br /&gt;
|colspan=2| Relearn Move 1 &lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xDA-0xDB&lt;br /&gt;
|colspan=2| Relearn Move 2 &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xDC-0xDD&lt;br /&gt;
|colspan=2| Relearn Move 3 &lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xDE-0xDF&lt;br /&gt;
|colspan=2| Relearn Move 4 &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE0&lt;br /&gt;
|colspan=2| OT Memory Intensity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE1&lt;br /&gt;
|colspan=2| OT Memory Line&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE2-0xE3&lt;br /&gt;
|colspan=2| OT Memory TextVar&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE4&lt;br /&gt;
|colspan=2| OT Memory Feeling&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xE5-0xEA&lt;br /&gt;
| &#039;&#039;Reserved bytes&#039;&#039;&lt;br /&gt;
| EVs&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xEB-0x107&lt;br /&gt;
|colspan=2| &#039;&#039;Reserved bytes&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Item Cards ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! 6th Gen&lt;br /&gt;
! 7th Gen&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x68-0x69&lt;br /&gt;
| Item ID&lt;br /&gt;
| Item 1 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x6A-0x6B&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 1 Quantity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x6C-0x6D&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 2 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x6E-0x6F&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 2 Quantity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x70-0x71&lt;br /&gt;
| Item Quantity&lt;br /&gt;
| Item 3 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x72-0x73&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 3 Quantity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x74-0x75&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 4 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x76-0x77&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 4 Quantity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x78-0x79&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 5 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7A-0x7B&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 5 Quantity&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7C-0x7D&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 6 ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7E-0x7F&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
| Item 6 Quantity&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ribbon Set ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Flag Value&lt;br /&gt;
! 0x74&lt;br /&gt;
! 0x75&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x01&lt;br /&gt;
| Battle Champ Ribbon&lt;br /&gt;
| World Champ Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x02&lt;br /&gt;
| Regional Champ Ribbon&lt;br /&gt;
| Birthday Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04&lt;br /&gt;
| National Champ Ribbon&lt;br /&gt;
| Special Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Country Ribbon&lt;br /&gt;
| Souvenir Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| National Ribbon&lt;br /&gt;
| Wishing Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| Earth Ribbon&lt;br /&gt;
| Classic Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x40&lt;br /&gt;
| World Ribbon&lt;br /&gt;
| Premier Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x80&lt;br /&gt;
| Event Ribbon&lt;br /&gt;
| Empty&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Technical References]]&lt;br /&gt;
[[Category:Save Data]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=7th_Generation_Wonder_Card_Map&amp;diff=5519</id>
		<title>7th Generation Wonder Card Map</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=7th_Generation_Wonder_Card_Map&amp;diff=5519"/>
		<updated>2017-05-18T22:00:17Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: Redirected page to 6th and 7th Generation Wonder Card Map&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[6th and 7th Generation Wonder Card Map]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=6th_and_7th_Generation_Wonder_Card_Map&amp;diff=5508</id>
		<title>6th and 7th Generation Wonder Card Map</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=6th_and_7th_Generation_Wonder_Card_Map&amp;diff=5508"/>
		<updated>2017-02-11T08:54:23Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Gift Data ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Description&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00-0x01&lt;br /&gt;
| Card ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x02-0x44+&lt;br /&gt;
| Card Title&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x4C-0x4F&lt;br /&gt;
| Date Card Received&amp;lt;br&amp;gt;Decimal YYYYMMDD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x50&lt;br /&gt;
| Card Location&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x51&lt;br /&gt;
| Card Type [Color]&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Pokémon [Blue]&amp;lt;br&amp;gt;&lt;br /&gt;
01 - (Key) Item [Yellow]&amp;lt;br&amp;gt; &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x52&lt;br /&gt;
| Gift Status: Used / Unused&lt;br /&gt;
00 - Repeatable gift&amp;lt;br&amp;gt; &lt;br /&gt;
01 - Unused&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Used&amp;lt;br&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x53&lt;br /&gt;
| 01 for Movie Events (green background)&amp;lt;br&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x54-0x??&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x66&lt;br /&gt;
| 0xFF (End region?)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x68-0x69&lt;br /&gt;
| TID / [Item]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x6A-0x6B&lt;br /&gt;
| SID&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x6C&lt;br /&gt;
| Pokemon Origin Game&lt;br /&gt;
00 for Game Received in&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x70-0x71&lt;br /&gt;
| [Item] Quantity&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x70-0x73&lt;br /&gt;
| [Pokemon] Encryption Constant&lt;br /&gt;
Unset = 00000000&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x74&lt;br /&gt;
| Primary Ribbons&amp;lt;br&amp;gt;&lt;br /&gt;
Ribbon data available below.&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x75&lt;br /&gt;
| Secondary Ribbons&amp;lt;br&amp;gt;&lt;br /&gt;
Ribbon data available below.&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x76&lt;br /&gt;
| PokéBall&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x77&lt;br /&gt;
| &#039;&#039;Unused/Unknown&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x78-0x79&lt;br /&gt;
| Held Item&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7A-0x7B&lt;br /&gt;
| Move ID #1&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7C-0x7D&lt;br /&gt;
| Move ID #2&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7E-0x7F&lt;br /&gt;
| Move ID #3&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x80-0x81&lt;br /&gt;
| Move ID #4&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x82-0x83&lt;br /&gt;
| PokéDex Number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x84&lt;br /&gt;
| Form No.&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x85&lt;br /&gt;
| Language&amp;lt;br&amp;gt;&lt;br /&gt;
00 for Game Received In&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x86-0x9F&lt;br /&gt;
| Pokémon Nickname&amp;lt;br&amp;gt;&lt;br /&gt;
Null terminator for last two bytes.&amp;lt;br&amp;gt;&lt;br /&gt;
If no nickname, all 00.&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA0&lt;br /&gt;
| Nature&amp;lt;br&amp;gt;&lt;br /&gt;
FF - Unset&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA1&lt;br /&gt;
| Pokémon Gender&amp;lt;br&amp;gt; &lt;br /&gt;
00 - Male&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Female&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Genderless&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Random&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA2&lt;br /&gt;
| Pokémon Ability&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Ability 1&amp;lt;br&amp;gt;01 - Ability 2&amp;lt;br&amp;gt;02 - Dream World Ability&amp;lt;br&amp;gt;03 - RND(Abil1, Abil2)&amp;lt;br&amp;gt;04 - RND(Abil1, Abil2, AbilDW)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA3&lt;br /&gt;
| PID Toggle&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Generate Specified PID &amp;lt;br&amp;gt;&lt;br /&gt;
01 - Generate Random PID (Can be shiny)&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Generate Shiny PID (Always shiny)&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Generate Random PID (Can&#039;t be shiny)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA4-0xA5&lt;br /&gt;
| Egg Met Location&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA6-0xA7&lt;br /&gt;
| Met Location of Pokémon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA8&lt;br /&gt;
| Met Level&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA9-0xAE&lt;br /&gt;
| Contest Stats&amp;lt;br&amp;gt;&lt;br /&gt;
Last byte is Sheen&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xAF-0xB4&lt;br /&gt;
| IVs&amp;lt;br&amp;gt;FFs for unset IVs&amp;lt;br&amp;gt;FE for priority&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xB5&lt;br /&gt;
| OT Gender&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Male&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Female&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Recipient&#039;s Gender&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xB6-0xCF&lt;br /&gt;
| OT Name&amp;lt;br&amp;gt;&lt;br /&gt;
Null terminator for last two bytes.&amp;lt;br&amp;gt;&lt;br /&gt;
If no set OT, all 00.&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD0&lt;br /&gt;
| Current Level(random if set to 0)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD1&lt;br /&gt;
| Egg Flag&amp;lt;br&amp;gt;00 - Is Not Egg&amp;lt;br&amp;gt;01 - Is Egg &lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD2-0xD3&lt;br /&gt;
| &#039;Unknown&#039;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD4-0xD7&lt;br /&gt;
| PID (sometimes EE6B2802 default)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD8-0xD9&lt;br /&gt;
| Relearn Move 1 &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xDA-0xDB&lt;br /&gt;
| Relearn Move 2 &lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xDC-0xDD&lt;br /&gt;
| Relearn Move 3 &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xDE-0xDF&lt;br /&gt;
| Relearn Move 4 &lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE0&lt;br /&gt;
|OT Memory Intensity&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE1&lt;br /&gt;
|OT Memory Line&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE2-0xE3&lt;br /&gt;
|OT Memory TextVar&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE4&lt;br /&gt;
|OT Memory Feeling&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xE5-0x107&lt;br /&gt;
| Reserved bytes &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ribbon Set ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Flag Value&lt;br /&gt;
! 0x74&lt;br /&gt;
! 0x75&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x01&lt;br /&gt;
| Battle Champ Ribbon&lt;br /&gt;
| World Champ Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x02&lt;br /&gt;
| Regional Champ Ribbon&lt;br /&gt;
| Birthday Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04&lt;br /&gt;
| National Champ Ribbon&lt;br /&gt;
| Special Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Country Ribbon&lt;br /&gt;
| Souvenir Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| National Ribbon&lt;br /&gt;
| Wishing Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| Earth Ribbon&lt;br /&gt;
| Classic Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x40&lt;br /&gt;
| World Ribbon&lt;br /&gt;
| Premier Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x80&lt;br /&gt;
| Event Ribbon&lt;br /&gt;
| Empty&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Technical References]]&lt;br /&gt;
[[Category:Save Data]]&lt;br /&gt;
[[Category:Gen 6]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=6th_and_7th_Generation_Wonder_Card_Map&amp;diff=5375</id>
		<title>6th and 7th Generation Wonder Card Map</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=6th_and_7th_Generation_Wonder_Card_Map&amp;diff=5375"/>
		<updated>2016-12-29T19:30:24Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Gift Data ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Description&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00-0x01&lt;br /&gt;
| Card ID&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x02-0x44+&lt;br /&gt;
| Card Title&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x4C-0x4F&lt;br /&gt;
| Date Card Received&amp;lt;br&amp;gt;Decimal YYYYMMDD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x50&lt;br /&gt;
| Card Location&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x51&lt;br /&gt;
| Card Type [Color]&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Pokémon [Blue]&amp;lt;br&amp;gt;&lt;br /&gt;
01 - (Key) Item [Yellow]&amp;lt;br&amp;gt; &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x52&lt;br /&gt;
| Gift Status: Used / Unused&lt;br /&gt;
00 - Repeatable gift&amp;lt;br&amp;gt; &lt;br /&gt;
01 - Unused&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Used&amp;lt;br&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x53&lt;br /&gt;
| Unknown Gift Flag.&amp;lt;br&amp;gt;&lt;br /&gt;
Possibly &amp;quot;Multi-Obtainable&amp;quot;?&amp;lt;br&amp;gt;&lt;br /&gt;
01 in Movie Events&amp;lt;br&amp;gt;&lt;br /&gt;
00 elsewhere as of 2015/03/09&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x54-0x??&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x66&lt;br /&gt;
| 0xFF (End region?)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x68-0x69&lt;br /&gt;
| TID / [Item]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x6A-0x6B&lt;br /&gt;
| SID&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x6C&lt;br /&gt;
| Pokemon Origin Game&lt;br /&gt;
00 for Game Received in&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x70-0x71&lt;br /&gt;
| [Item] Quantity&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x70-0x73&lt;br /&gt;
| [Pokemon] Encryption Constant&lt;br /&gt;
Unset = 00000000&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x74&lt;br /&gt;
| Primary Ribbons&amp;lt;br&amp;gt;&lt;br /&gt;
Ribbon data available below.&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x75&lt;br /&gt;
| Secondary Ribbons&amp;lt;br&amp;gt;&lt;br /&gt;
Ribbon data available below.&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x76&lt;br /&gt;
| PokéBall&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x77&lt;br /&gt;
| &#039;&#039;Unused/Unknown&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x78-0x79&lt;br /&gt;
| Held Item&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7A-0x7B&lt;br /&gt;
| Move ID #1&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7C-0x7D&lt;br /&gt;
| Move ID #2&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7E-0x7F&lt;br /&gt;
| Move ID #3&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x80-0x81&lt;br /&gt;
| Move ID #4&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x82-0x83&lt;br /&gt;
| PokéDex Number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x84&lt;br /&gt;
| Form No.&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x85&lt;br /&gt;
| Language&amp;lt;br&amp;gt;&lt;br /&gt;
00 for Game Received In&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x86-0x9F&lt;br /&gt;
| Pokémon Nickname&amp;lt;br&amp;gt;&lt;br /&gt;
Null terminator for last two bytes.&amp;lt;br&amp;gt;&lt;br /&gt;
If no nickname, all 00.&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA0&lt;br /&gt;
| Nature&amp;lt;br&amp;gt;&lt;br /&gt;
FF - Unset&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA1&lt;br /&gt;
| Pokémon Gender&amp;lt;br&amp;gt; &lt;br /&gt;
00 - Male&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Female&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Genderless&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Random&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA2&lt;br /&gt;
| Pokémon Ability&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Ability 1&amp;lt;br&amp;gt;01 - Ability 2&amp;lt;br&amp;gt;02 - Dream World Ability&amp;lt;br&amp;gt;03 - RND(Abil1, Abil2)&amp;lt;br&amp;gt;04 - RND(Abil1, Abil2, AbilDW)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA3&lt;br /&gt;
| PID Toggle&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Generate Specified PID &amp;lt;br&amp;gt;&lt;br /&gt;
01 - Generate Random PID (Can be shiny)&amp;lt;br&amp;gt;&lt;br /&gt;
02 - Generate Shiny PID (Always shiny)&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Generate Random PID (Can&#039;t be shiny)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA4-0xA5&lt;br /&gt;
| Egg Met Location&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA6-0xA7&lt;br /&gt;
| Met Location of Pokémon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA8&lt;br /&gt;
| Met Level&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA9-0xAE&lt;br /&gt;
| Contest Stats&amp;lt;br&amp;gt;&lt;br /&gt;
Last byte is Sheen&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xAF-0xB4&lt;br /&gt;
| IVs&amp;lt;br&amp;gt;FFs for unset IVs&amp;lt;br&amp;gt;FE for priority&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xB5&lt;br /&gt;
| OT Gender&amp;lt;br&amp;gt;&lt;br /&gt;
00 - Male&amp;lt;br&amp;gt;&lt;br /&gt;
01 - Female&amp;lt;br&amp;gt;&lt;br /&gt;
03 - Recipient&#039;s Gender&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xB6-0xCF&lt;br /&gt;
| OT Name&amp;lt;br&amp;gt;&lt;br /&gt;
Null terminator for last two bytes.&amp;lt;br&amp;gt;&lt;br /&gt;
If no set OT, all 00.&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD0&lt;br /&gt;
| Current Level(random if set to 0)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD1&lt;br /&gt;
| Egg Flag&amp;lt;br&amp;gt;00 - Is Not Egg&amp;lt;br&amp;gt;01 - Is Egg &lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD2-0xD3&lt;br /&gt;
| &#039;Unknown&#039;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD4-0xD7&lt;br /&gt;
| PID (sometimes EE6B2802 default)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD8-0xD9&lt;br /&gt;
| Relearn Move 1 &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xDA-0xDB&lt;br /&gt;
| Relearn Move 2 &lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xDC-0xDD&lt;br /&gt;
| Relearn Move 3 &lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xDE-0xDF&lt;br /&gt;
| Relearn Move 4 &lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE0&lt;br /&gt;
|OT Memory Intensity&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE1&lt;br /&gt;
|OT Memory Line&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE2-0xE3&lt;br /&gt;
|OT Memory TextVar&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0xE4&lt;br /&gt;
|OT Memory Feeling&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xE5-0x107&lt;br /&gt;
| Reserved bytes &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ribbon Set ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Flag Value&lt;br /&gt;
! 0x74&lt;br /&gt;
! 0x75&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x01&lt;br /&gt;
| Battle Champ Ribbon&lt;br /&gt;
| World Champ Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x02&lt;br /&gt;
| Regional Champ Ribbon&lt;br /&gt;
| Birthday Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04&lt;br /&gt;
| National Champ Ribbon&lt;br /&gt;
| Special Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Country Ribbon&lt;br /&gt;
| Souvenir Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| National Ribbon&lt;br /&gt;
| Wishing Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| Earth Ribbon&lt;br /&gt;
| Classic Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x40&lt;br /&gt;
| World Ribbon&lt;br /&gt;
| Premier Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x80&lt;br /&gt;
| Event Ribbon&lt;br /&gt;
| Empty&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Technical References]]&lt;br /&gt;
[[Category:RAM Research]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pokemon_Save_Structure&amp;diff=3909</id>
		<title>Pokemon Save Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pokemon_Save_Structure&amp;diff=3909"/>
		<updated>2011-02-20T06:39:05Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Unencrypted bytes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pokémon in the games Pokémon [[Pokémon Diamond|Diamond]], [[Pokemon Pearl|Pearl]], and [[Pokémon Platinum Version|Platinum]] are stored in a 136 byte or 236 byte structures.  All unencrypted values are stored in [[little-endian|little-endian]] format.  The game encrypts the data when it is stored in the [[Pokémon NDS Save File Structure|save file]].  Party Pokémon have additional values to hold current battle stats and conditions.  The information below describes the Pokémon data format.&lt;br /&gt;
&lt;br /&gt;
== Checksum ==&lt;br /&gt;
&lt;br /&gt;
The checksum serves two purposes:&lt;br /&gt;
# It validates the data after decryption, and&lt;br /&gt;
# It serves as the encryption key for the data.&lt;br /&gt;
&lt;br /&gt;
The checksum is calculated in three steps:&lt;br /&gt;
# Split the unencrypted data from offsets 0x08 to 0x87 into two-byte words,&lt;br /&gt;
# Take the sum of the words, and&lt;br /&gt;
# Truncate the sum to 16 bits.&lt;br /&gt;
&lt;br /&gt;
== Block Shuffling ==&lt;br /&gt;
&lt;br /&gt;
The 128 bytes of Pokémon data are split into four 32-byte blocks for shuffling.  The blocks are shuffled according to a shift value derived from the [[personality value]].  Given the personality value &#039;&#039;pv&#039;&#039;, the expression yielding the shift value is:&lt;br /&gt;
: &#039;&#039;((pv &amp;gt;&amp;gt; 0xD) &amp;amp; 0x1F) % 24&#039;&#039;&lt;br /&gt;
The right shifting (pv &amp;gt;&amp;gt; 0xD) is equivalent to a division of 8192.&lt;br /&gt;
&lt;br /&gt;
To shuffle the blocks, take the four blocks of unencrypted data, &#039;&#039;A&#039;&#039;, &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039;, and &#039;&#039;D&#039;&#039;.  The blocks shall be rearranged in the encrypted data according to the Block Order column of the following table.  (To unshuffle, use the Inverse column.)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Shift Value (decimal)&lt;br /&gt;
! Block Order&lt;br /&gt;
! Inverse&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 00&lt;br /&gt;
| ABCD&lt;br /&gt;
| ABCD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 01&lt;br /&gt;
| ABDC&lt;br /&gt;
| ABDC&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 02&lt;br /&gt;
| ACBD&lt;br /&gt;
| ACBD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 03&lt;br /&gt;
| ACDB&lt;br /&gt;
| ADBC&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 04&lt;br /&gt;
| ADBC&lt;br /&gt;
| ACDB&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 05&lt;br /&gt;
| ADCB&lt;br /&gt;
| ADCB&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 06&lt;br /&gt;
| BACD&lt;br /&gt;
| BACD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 07&lt;br /&gt;
| BADC&lt;br /&gt;
| BADC&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 08&lt;br /&gt;
| BCAD&lt;br /&gt;
| CABD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 09&lt;br /&gt;
| BCDA&lt;br /&gt;
| DABC&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 10&lt;br /&gt;
| BDAC&lt;br /&gt;
| CADB&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 11&lt;br /&gt;
| BDCA&lt;br /&gt;
| DACB&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 12&lt;br /&gt;
| CABD&lt;br /&gt;
| BCAD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 13&lt;br /&gt;
| CADB&lt;br /&gt;
| BDAC&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 14&lt;br /&gt;
| CBAD&lt;br /&gt;
| CBAD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 15&lt;br /&gt;
| CBDA&lt;br /&gt;
| DBAC&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 16&lt;br /&gt;
| CDAB&lt;br /&gt;
| CDAB&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 17&lt;br /&gt;
| CDBA&lt;br /&gt;
| DCAB&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 18&lt;br /&gt;
| DABC&lt;br /&gt;
| BCDA&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 19&lt;br /&gt;
| DACB&lt;br /&gt;
| BDCA&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 20&lt;br /&gt;
| DBAC&lt;br /&gt;
| CBDA&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 21&lt;br /&gt;
| DBCA&lt;br /&gt;
| DBCA&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 22&lt;br /&gt;
| DCAB&lt;br /&gt;
| CDBA&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 23&lt;br /&gt;
| DCBA&lt;br /&gt;
| DCBA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Encryption ==&lt;br /&gt;
&lt;br /&gt;
The encryption uses the [http://projectpokemon.org/wiki/PRNG_in_Pok%C3%A9mon pseudorandom number generator (PRNG)], a linear congruential generator.  Elements of the PRNG can be described with the recursive function:&lt;br /&gt;
: &#039;&#039;X[n+1] = (0x41C64E6D * X[n] + 0x6073)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To decrypt the data, given a function &#039;&#039;rand()&#039;&#039; which returns the upper 16 bits of consecutive results of the above given function:&lt;br /&gt;
# Seed the PRNG with the checksum (let &#039;&#039;X[n]&#039;&#039; be the checksum).&lt;br /&gt;
# Sequentially, for each 2-byte word &#039;&#039;Y&#039;&#039; from 0x08 to 0x87, apply the transformation: &#039;&#039;unencryptedByte = Y xor rand()&#039;&#039;&lt;br /&gt;
# Unshuffle the blocks using the block shuffling algorithm above.&lt;br /&gt;
&lt;br /&gt;
To encrypt the data:&lt;br /&gt;
# Shuffle the blocks using the block shuffling algorithm above.&lt;br /&gt;
# Seed the PRNG with the checksum (let &#039;&#039;X[n]&#039;&#039; be the checksum),&lt;br /&gt;
# Sequentially, for each 2-byte word &#039;&#039;Y&#039;&#039; from 0x08 to 0x87, apply the transformation: &#039;&#039;unencryptedByte = Y xor rand()&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Unencrypted bytes ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00-0x03&lt;br /&gt;
| [[Personality value]] (Also known as the [[PID]])&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04-0x05&lt;br /&gt;
| &#039;&#039;Temporary Variable (Unused)&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x06-0x07&lt;br /&gt;
| Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Encrypted bytes ==&lt;br /&gt;
=== Block A ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08-0x09 &lt;br /&gt;
| [[Nationaldex|National Pokédex ID]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0A-0x0B &lt;br /&gt;
| [[item index|Held Item]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C-0x0D&lt;br /&gt;
| [[Original Trainer|OT ID]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0E-0x0F &lt;br /&gt;
| [[Original Trainer|OT Secret ID]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10-0x13&lt;br /&gt;
| [[Experience Points|Experience points]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x14&lt;br /&gt;
| Friendship (Steps to Hatch if an egg)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x15&lt;br /&gt;
| [[Ability]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x16&lt;br /&gt;
| [[#Markings|Markings]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x17&lt;br /&gt;
| [[#Original Language|Original Language]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x18&lt;br /&gt;
| [[Effort Values#Hit Points|HP Effort Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x19&lt;br /&gt;
| [[Effort Values#Attack Points|Attack Effort Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1A&lt;br /&gt;
| [[Effort Values#Defense Points|Defense Effort Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1B&lt;br /&gt;
| [[Effort Values#Speed Points|Speed Effort Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1C&lt;br /&gt;
| [[Effort Values#Special Attack Points|SP Attack Effort Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1D&lt;br /&gt;
| [[Effort Values#Special Defense Points|SP Defense Effort Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1E&lt;br /&gt;
| [[Contest Stats#Cool|Cool Contest Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1F&lt;br /&gt;
| [[Contest Stats#Beauty|Beauty Contest Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| [[Contest Stats#Cute|Cute Contest Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x21&lt;br /&gt;
| [[Contest Stats#Smart|Smart Contest Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x22&lt;br /&gt;
| [[Contest Stats#Tough|Tough Contest Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x23&lt;br /&gt;
| [[Contest Stats#Sheen|Sheen Contest Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24-0x25&lt;br /&gt;
| [[#Sinnoh Ribbon Set 1|Sinnoh Ribbon Set 1]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26-0x27&lt;br /&gt;
| [[#Sinnoh Ribbon Set 2|Sinnoh Ribbon Set 2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Block B ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x28-0x29&lt;br /&gt;
| [[Pokemon Moves|Move 1 ID]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x2A-0x2B&lt;br /&gt;
| [[Pokemon Moves|Move 2 ID]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x2C-0x2D&lt;br /&gt;
| [[Pokemon Moves|Move 3 ID]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x2E-0x2F&lt;br /&gt;
| [[Pokemon Moves|Move 4 ID]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x30&lt;br /&gt;
| [[Pokemon Moves#Power Points|Move 1 Current PP]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x31&lt;br /&gt;
| [[Pokemon Moves#Power Points|Move 2 Current PP]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x32&lt;br /&gt;
| [[Pokemon Moves#Power Points|Move 3 Current PP]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x33&lt;br /&gt;
| [[Pokemon Moves#Power Points|Move 4 Current PP]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x34-0x37&lt;br /&gt;
| [[Pokemon Moves#Power Points|Move PP Ups]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x38-0x3B&lt;br /&gt;
| Bits 0-29 - [[Individual Values]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Hit Points|HP]] ( [0-31] &amp;lt;&amp;lt; 0 )&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Attack Points|Attack]] ( [0-31] &amp;lt;&amp;lt; 5 )&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Defense Points|Defense]] ( [0-31] &amp;lt;&amp;lt; 10 )&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Speed Points|Speed]] ( [0-31] &amp;lt;&amp;lt; 15 )&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Special Attack Points|SP Attack]] ( [0-31] &amp;lt;&amp;lt; 20 )&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Special Defense Points|SP Defense]] ( [0-31] &amp;lt;&amp;lt; 25 )&amp;lt;br&amp;gt;&lt;br /&gt;
Bit 30 - IsEgg Flag&amp;lt;br&amp;gt;Bit 31 - IsNicknamed Flag&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C-0x3D&lt;br /&gt;
| [[#Hoenn Ribbon Set 1|Hoenn Ribbon Set 1]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E-0x3F&lt;br /&gt;
| [[#Hoenn Ribbon Set 2|Hoenn Ribbon Set 2]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x40&lt;br /&gt;
| Bit 0 - Fateful Encounter Flag&amp;lt;br&amp;gt;Bit 1 - Female&amp;lt;br&amp;gt;Bit 2 - Genderless&amp;lt;br&amp;gt;Bit 1 &amp;amp; 2 - Male&amp;lt;br&amp;gt;Bit 3-7 - [[#Alternate Forms|Alternate Forms]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x41 &lt;br /&gt;
| Shiny Leaves (HGSS)&amp;lt;br&amp;gt;Bit 5 - Leaf Crown&amp;lt;br&amp;gt;Bits 0–4 - Leaves A–E (bit 0 is leftmost)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x42-0x43&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x44-0x45&lt;br /&gt;
| Egg [[Pokemon NDS Locations#Egg Locations|Location]] (Platinum)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x46-0x47&lt;br /&gt;
| Met at [[Pokemon NDS Locations|Location]] (Platinum)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Block C ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x48-0x5D&lt;br /&gt;
| Nickname&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x5E&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x5F&lt;br /&gt;
| [[Pokemon Hometown|Hometown]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60-0x61&lt;br /&gt;
| [[#Sinnoh Ribbon Set 3|Sinnoh Ribbon Set 3]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x62-0x63&lt;br /&gt;
| [[#Sinnoh Ribbon Set 4|Sinnoh Ribbon Set 4]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x64-0x67&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Block D ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x68-0x77 &lt;br /&gt;
| [[Original Trainer|OT Name]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x78-0x7A &lt;br /&gt;
| Date Egg Received&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7B-0x7D&lt;br /&gt;
| Date Met&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7E-0x7F&lt;br /&gt;
| Egg [[Pokemon NDS Locations|Location]] (Diamond/Pearl)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x80-0x81&lt;br /&gt;
| Met At [[Pokemon NDS Locations|Location]] (Diamond/Pearl)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x82&lt;br /&gt;
| [[Pokerus|Pokérus]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x83&lt;br /&gt;
| [http://projectpokemon.org/wiki/List_of_Diamond,_Pearl,_Platinum,_HeartGold_and_SoulSilver_Items_by_Index_Number#Balls Poké Ball]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x84&lt;br /&gt;
| Bit 0-6 - Met At Level&amp;lt;br&amp;gt;Bit 7 - Female OT Gender&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x85&lt;br /&gt;
| [[#Encounter Types|Encounter Type]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x86&lt;br /&gt;
|[http://projectpokemon.org/wiki/List_of_Diamond,_Pearl,_Platinum,_HeartGold_and_SoulSilver_Items_by_Index_Number#HeartGold_and_SoulSilver_exclusive_Balls HGSS Poké Ball]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x87&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Battle Stats ==&lt;br /&gt;
&lt;br /&gt;
The battle stats are encrypted in the same manner, however the seed is not the checksum, it is the PID.&lt;br /&gt;
&lt;br /&gt;
=== Encrypted Bytes ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x88&lt;br /&gt;
| Bits 0-2 - Asleep (0-7 rounds)&amp;lt;br&amp;gt;Bit 3 - Poisoned&amp;lt;br&amp;gt;Bit 4 - Burned&amp;lt;br&amp;gt;Bit 5 - Frozen&amp;lt;br&amp;gt;Bit 6 - Paralyzed&amp;lt;br&amp;gt;Bit 7 - Toxic&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x89&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039; - Flags - Max Value 0xF0&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x8A-0x8B&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x8C&lt;br /&gt;
| Level&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x8D&lt;br /&gt;
| Capsule Index (Seals)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x8E-0x8F&lt;br /&gt;
| Current HP&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x90-0x91&lt;br /&gt;
| Max HP&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x92-0x93&lt;br /&gt;
| Attack&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x94-0x95&lt;br /&gt;
| Defense&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x96-0x97&lt;br /&gt;
| Speed&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x98-0x99&lt;br /&gt;
| Special Attack&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x9A-0x9B&lt;br /&gt;
| Special Defense&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x9C-0xD3&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039; - Contains Trash Data&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD4-0xEB&lt;br /&gt;
| Seal Coordinates&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Original Language ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Language&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1&lt;br /&gt;
| 日本語 (Japan)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x2&lt;br /&gt;
| English (US/UK/AU)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3&lt;br /&gt;
| Français (France/Québec)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Italiano (Italy)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x5&lt;br /&gt;
| Deutsch (Germany)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7&lt;br /&gt;
| Español (Spain/Latin Americas)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x8&lt;br /&gt;
| 한국어 (South Korea)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Markings ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Marking&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x01&lt;br /&gt;
| Circle&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x02&lt;br /&gt;
| Triangle&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04&lt;br /&gt;
| Square&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Heart&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| Star&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| Diamond&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Alternate Forms ==&lt;br /&gt;
Alternate forms are stored at offset 0x40 of the Pokemon structure.  Each form follows the pattern of &#039;&#039;index &amp;lt;&amp;lt; 3&#039;&#039; where index starts at zero for the main form.&lt;br /&gt;
&lt;br /&gt;
=== Unown&#039;s Forms ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| A&lt;br /&gt;
| 0x38&lt;br /&gt;
| H&lt;br /&gt;
| 0x70&lt;br /&gt;
| O&lt;br /&gt;
| 0xA8&lt;br /&gt;
| V&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| B&lt;br /&gt;
| 0x40&lt;br /&gt;
| I&lt;br /&gt;
| 0x78&lt;br /&gt;
| P&lt;br /&gt;
| 0xB0&lt;br /&gt;
| W&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| C&lt;br /&gt;
| 0x48&lt;br /&gt;
| J&lt;br /&gt;
| 0x80&lt;br /&gt;
| Q&lt;br /&gt;
| 0xB8&lt;br /&gt;
| X&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x18&lt;br /&gt;
| D&lt;br /&gt;
| 0x50&lt;br /&gt;
| K&lt;br /&gt;
| 0x88&lt;br /&gt;
| R&lt;br /&gt;
| 0xC0&lt;br /&gt;
| Y&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| E&lt;br /&gt;
| 0x58&lt;br /&gt;
| L&lt;br /&gt;
| 0x90&lt;br /&gt;
| S&lt;br /&gt;
| 0xC8&lt;br /&gt;
| Z&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x28&lt;br /&gt;
| F&lt;br /&gt;
| 0x60&lt;br /&gt;
| M&lt;br /&gt;
| 0x98&lt;br /&gt;
| T&lt;br /&gt;
| 0xD0&lt;br /&gt;
| !&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x30&lt;br /&gt;
| G&lt;br /&gt;
| 0x68&lt;br /&gt;
| N&lt;br /&gt;
| 0xA0&lt;br /&gt;
| U&lt;br /&gt;
| 0xD8&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deoxy&#039;s Forms ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Normal&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Attack&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| Defense&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x18&lt;br /&gt;
| Speed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Burmy&#039;s &amp;amp; Wormadam&#039;s Forms ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Plant&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Sandy&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| Trash&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shellos&#039; &amp;amp; Gastrodon&#039;s Forms ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| West&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| East&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rotom&#039;s Forms ===&lt;br /&gt;
Rotom&#039;s alternate forms will only be displayed in Pokemon Platinum.  Rotom may be traded between Diamond, Pearl, and Platinum without losing the alternate form.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Normal&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Heat&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| Wash&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x18&lt;br /&gt;
| Frost&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| Fan&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x28&lt;br /&gt;
| Cut&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Giratina&#039;s Forms ===&lt;br /&gt;
Giratina&#039;s Origin form will only be displayed in Pokemon Platinum.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Altered&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Origin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shaymin&#039;s Forms ===&lt;br /&gt;
Shaymin&#039;s Sky form will only be displayed in Pokemon Platinum.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Land&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Sky&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arceus&#039; Forms ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Normal&lt;br /&gt;
| 0x30&lt;br /&gt;
| Insect&lt;br /&gt;
| 0x60&lt;br /&gt;
| Zap&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Fist&lt;br /&gt;
| 0x38&lt;br /&gt;
| Spooky&lt;br /&gt;
| 0x68&lt;br /&gt;
| Mind&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| Sky&lt;br /&gt;
| 0x40&lt;br /&gt;
| Iron&lt;br /&gt;
| 0x70&lt;br /&gt;
| Icicle&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x18&lt;br /&gt;
| Toxic&lt;br /&gt;
| 0x48&lt;br /&gt;
| Flame&lt;br /&gt;
| 0x78&lt;br /&gt;
| Draco&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| Earth&lt;br /&gt;
| 0x50&lt;br /&gt;
| Splash&lt;br /&gt;
| 0x80&lt;br /&gt;
| Dread&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x28&lt;br /&gt;
| Stone&lt;br /&gt;
| 0x58&lt;br /&gt;
| Meadow&lt;br /&gt;
| 0x4C&lt;br /&gt;
| Curse&lt;br /&gt;
|}&lt;br /&gt;
== Encounter Types ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Country&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0&lt;br /&gt;
| Pal Park, Egg, Hatched, Special Event&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x2&lt;br /&gt;
| Tall Grass&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Dialga/Palkia In-Game Event&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x5&lt;br /&gt;
| Cave, Hall of Origin&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7&lt;br /&gt;
| Surfing, Fishing&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x9&lt;br /&gt;
| Building&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA&lt;br /&gt;
| Great Marsh (Safari Zone)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xC&lt;br /&gt;
| Starter, Fossil, Gift (Eevee)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ribbons ==&lt;br /&gt;
Diamond, Pearl, and Platinum store the ribbon information as [[Bitfields|bitfields]] in 1-byte words.  Given below are the bytewise representation of the ribbon bitfields.&lt;br /&gt;
&lt;br /&gt;
=== Sinnoh Ribbon Set 1 ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x01&lt;br /&gt;
| Sinnoh Champ Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x02&lt;br /&gt;
| Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x04&lt;br /&gt;
| Great Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x08&lt;br /&gt;
| Double Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x10&lt;br /&gt;
| Multi Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x20&lt;br /&gt;
| Pair Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x40&lt;br /&gt;
| World Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x80&lt;br /&gt;
| Alert Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x01&lt;br /&gt;
| Shock Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x02&lt;br /&gt;
| Downcast Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x04&lt;br /&gt;
| Careless Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x08&lt;br /&gt;
| Relax Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x10&lt;br /&gt;
| Snooze Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x20&lt;br /&gt;
| Smile Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x40&lt;br /&gt;
| Gorgeous Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x80&lt;br /&gt;
| Royal Ribbon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sinnoh Ribbon Set 2 ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x01&lt;br /&gt;
| Gorgeous Royal Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x02&lt;br /&gt;
| Footprint Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x04&lt;br /&gt;
| Record Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x08&lt;br /&gt;
| History Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x10&lt;br /&gt;
| Legend Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x20&lt;br /&gt;
| Red Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x40&lt;br /&gt;
| Green Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x80&lt;br /&gt;
| Blue Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x27 &amp;amp; 0x01&lt;br /&gt;
| Festival Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x27 &amp;amp; 0x02&lt;br /&gt;
| Carnival Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x27 &amp;amp; 0x04&lt;br /&gt;
| Classic Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x27 &amp;amp; 0x08&lt;br /&gt;
| Premier Ribbon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sinnoh Ribbon Set 3 ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x01&lt;br /&gt;
| Cool Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x02&lt;br /&gt;
| Cool Ribbon Great&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x04&lt;br /&gt;
| Cool Ribbon Ultra&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x08&lt;br /&gt;
| Cool Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x10&lt;br /&gt;
| Beauty Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x20&lt;br /&gt;
| Beauty Ribbon Great&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x40&lt;br /&gt;
| Beauty Ribbon Ultra&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x80&lt;br /&gt;
| Beauty Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x01&lt;br /&gt;
| Cute Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x02&lt;br /&gt;
| Cute Ribbon Great&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x04&lt;br /&gt;
| Cute Ribbon Ultra&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x08&lt;br /&gt;
| Cute Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x10&lt;br /&gt;
| Smart Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x20&lt;br /&gt;
| Smart Ribbon Great&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x40&lt;br /&gt;
| Smart Ribbon Ultra&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x80&lt;br /&gt;
| Smart Ribbon Master&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sinnoh Ribbon Set 4 ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x62 &amp;amp; 0x01&lt;br /&gt;
| Tough Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x62 &amp;amp; 0x02&lt;br /&gt;
| Tough Ribbon Great&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x62 &amp;amp; 0x04&lt;br /&gt;
| Tough Ribbon Ultra&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x62 &amp;amp; 0x08&lt;br /&gt;
| Tough Ribbon Master&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hoenn Ribbon Set 1 ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x01&lt;br /&gt;
| Cool Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x02&lt;br /&gt;
| Cool Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x04&lt;br /&gt;
| Cool Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x08&lt;br /&gt;
| Cool Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x10&lt;br /&gt;
| Beauty Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x20&lt;br /&gt;
| Beauty Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x40&lt;br /&gt;
| Beauty Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x80&lt;br /&gt;
| Beauty Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x01&lt;br /&gt;
| Cute Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x02&lt;br /&gt;
| Cute Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x04&lt;br /&gt;
| Cute Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x08&lt;br /&gt;
| Cute Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x10&lt;br /&gt;
| Smart Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x20&lt;br /&gt;
| Smart Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x40&lt;br /&gt;
| Smart Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x80&lt;br /&gt;
| Smart Ribbon Master&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hoenn Ribbon Set 2 ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x01&lt;br /&gt;
| Tough Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x02&lt;br /&gt;
| Tough Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x04&lt;br /&gt;
| Tough Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x08&lt;br /&gt;
| Tough Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x10&lt;br /&gt;
| Champion Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x20&lt;br /&gt;
| Winning Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x40&lt;br /&gt;
| Victory Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x80&lt;br /&gt;
| Artist Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x01&lt;br /&gt;
| Effort Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x02&lt;br /&gt;
| Marine Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x04&lt;br /&gt;
| Land Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x08&lt;br /&gt;
| Sky Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x10&lt;br /&gt;
| Country Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x20&lt;br /&gt;
| National Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x40&lt;br /&gt;
| Earth Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x80&lt;br /&gt;
| World Ribbon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Save File Location ==&lt;br /&gt;
The party Pokémon are stored in the [[Pokémon NDS Save File Structure|save file]] beginning at offset 0x00098 for the first small block, and 0x40098 for the second small block.&lt;br /&gt;
&lt;br /&gt;
In the first small save block, the first Daycare Pokémon is located at 0x0141C, and the second is located at 0x01508.  In the second small block, the first Daycare Pokémon is located at 0x4141C, and the second is located at 0x41508.&lt;br /&gt;
&lt;br /&gt;
In the first small save block, the Pal Park Pokémon are stored beginning at 0x0BA28.  In the second small save block, the Pal Park Pokémon are stored beginning at 0x4BA28.&lt;br /&gt;
&lt;br /&gt;
Each party, Daycare, and Pal Park Pokémon is 236 bytes in size.&lt;br /&gt;
&lt;br /&gt;
The PC storage Pokémon are stored in the save file from Box 1 to Box 18.  The offset starts at 0x0C104 for the first big block and 0x4C104 for the second big block.  Each PC stored Pokémon is 136 bytes in size.&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;br /&gt;
[[Category:ROM Research]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pokemon_Save_Structure&amp;diff=3908</id>
		<title>Pokemon Save Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pokemon_Save_Structure&amp;diff=3908"/>
		<updated>2011-02-20T06:03:28Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pokémon in the games Pokémon [[Pokémon Diamond|Diamond]], [[Pokemon Pearl|Pearl]], and [[Pokémon Platinum Version|Platinum]] are stored in a 136 byte or 236 byte structures.  All unencrypted values are stored in [[little-endian|little-endian]] format.  The game encrypts the data when it is stored in the [[Pokémon NDS Save File Structure|save file]].  Party Pokémon have additional values to hold current battle stats and conditions.  The information below describes the Pokémon data format.&lt;br /&gt;
&lt;br /&gt;
== Checksum ==&lt;br /&gt;
&lt;br /&gt;
The checksum serves two purposes:&lt;br /&gt;
# It validates the data after decryption, and&lt;br /&gt;
# It serves as the encryption key for the data.&lt;br /&gt;
&lt;br /&gt;
The checksum is calculated in three steps:&lt;br /&gt;
# Split the unencrypted data from offsets 0x08 to 0x87 into two-byte words,&lt;br /&gt;
# Take the sum of the words, and&lt;br /&gt;
# Truncate the sum to 16 bits.&lt;br /&gt;
&lt;br /&gt;
== Block Shuffling ==&lt;br /&gt;
&lt;br /&gt;
The 128 bytes of Pokémon data are split into four 32-byte blocks for shuffling.  The blocks are shuffled according to a shift value derived from the [[personality value]].  Given the personality value &#039;&#039;pv&#039;&#039;, the expression yielding the shift value is:&lt;br /&gt;
: &#039;&#039;((pv &amp;gt;&amp;gt; 0xD) &amp;amp; 0x1F) % 24&#039;&#039;&lt;br /&gt;
The right shifting (pv &amp;gt;&amp;gt; 0xD) is equivalent to a division of 8192.&lt;br /&gt;
&lt;br /&gt;
To shuffle the blocks, take the four blocks of unencrypted data, &#039;&#039;A&#039;&#039;, &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039;, and &#039;&#039;D&#039;&#039;.  The blocks shall be rearranged in the encrypted data according to the Block Order column of the following table.  (To unshuffle, use the Inverse column.)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Shift Value (decimal)&lt;br /&gt;
! Block Order&lt;br /&gt;
! Inverse&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 00&lt;br /&gt;
| ABCD&lt;br /&gt;
| ABCD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 01&lt;br /&gt;
| ABDC&lt;br /&gt;
| ABDC&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 02&lt;br /&gt;
| ACBD&lt;br /&gt;
| ACBD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 03&lt;br /&gt;
| ACDB&lt;br /&gt;
| ADBC&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 04&lt;br /&gt;
| ADBC&lt;br /&gt;
| ACDB&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 05&lt;br /&gt;
| ADCB&lt;br /&gt;
| ADCB&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 06&lt;br /&gt;
| BACD&lt;br /&gt;
| BACD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 07&lt;br /&gt;
| BADC&lt;br /&gt;
| BADC&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 08&lt;br /&gt;
| BCAD&lt;br /&gt;
| CABD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 09&lt;br /&gt;
| BCDA&lt;br /&gt;
| DABC&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 10&lt;br /&gt;
| BDAC&lt;br /&gt;
| CADB&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 11&lt;br /&gt;
| BDCA&lt;br /&gt;
| DACB&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 12&lt;br /&gt;
| CABD&lt;br /&gt;
| BCAD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 13&lt;br /&gt;
| CADB&lt;br /&gt;
| BDAC&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 14&lt;br /&gt;
| CBAD&lt;br /&gt;
| CBAD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 15&lt;br /&gt;
| CBDA&lt;br /&gt;
| DBAC&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 16&lt;br /&gt;
| CDAB&lt;br /&gt;
| CDAB&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 17&lt;br /&gt;
| CDBA&lt;br /&gt;
| DCAB&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 18&lt;br /&gt;
| DABC&lt;br /&gt;
| BCDA&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 19&lt;br /&gt;
| DACB&lt;br /&gt;
| BDCA&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 20&lt;br /&gt;
| DBAC&lt;br /&gt;
| CBDA&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 21&lt;br /&gt;
| DBCA&lt;br /&gt;
| DBCA&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 22&lt;br /&gt;
| DCAB&lt;br /&gt;
| CDBA&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 23&lt;br /&gt;
| DCBA&lt;br /&gt;
| DCBA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Encryption ==&lt;br /&gt;
&lt;br /&gt;
The encryption uses the [http://projectpokemon.org/wiki/PRNG_in_Pok%C3%A9mon pseudorandom number generator (PRNG)], a linear congruential generator.  Elements of the PRNG can be described with the recursive function:&lt;br /&gt;
: &#039;&#039;X[n+1] = (0x41C64E6D * X[n] + 0x6073)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To decrypt the data, given a function &#039;&#039;rand()&#039;&#039; which returns the upper 16 bits of consecutive results of the above given function:&lt;br /&gt;
# Seed the PRNG with the checksum (let &#039;&#039;X[n]&#039;&#039; be the checksum).&lt;br /&gt;
# Sequentially, for each 2-byte word &#039;&#039;Y&#039;&#039; from 0x08 to 0x87, apply the transformation: &#039;&#039;unencryptedByte = Y xor rand()&#039;&#039;&lt;br /&gt;
# Unshuffle the blocks using the block shuffling algorithm above.&lt;br /&gt;
&lt;br /&gt;
To encrypt the data:&lt;br /&gt;
# Shuffle the blocks using the block shuffling algorithm above.&lt;br /&gt;
# Seed the PRNG with the checksum (let &#039;&#039;X[n]&#039;&#039; be the checksum),&lt;br /&gt;
# Sequentially, for each 2-byte word &#039;&#039;Y&#039;&#039; from 0x08 to 0x87, apply the transformation: &#039;&#039;unencryptedByte = Y xor rand()&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Unencrypted bytes ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00-0x03&lt;br /&gt;
| [[Personality value]] (Also known as the [[PID]])&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04-0x05&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x06-0x07&lt;br /&gt;
| Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Encrypted bytes ==&lt;br /&gt;
=== Block A ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08-0x09 &lt;br /&gt;
| [[Nationaldex|National Pokédex ID]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0A-0x0B &lt;br /&gt;
| [[item index|Held Item]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C-0x0D&lt;br /&gt;
| [[Original Trainer|OT ID]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0E-0x0F &lt;br /&gt;
| [[Original Trainer|OT Secret ID]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10-0x13&lt;br /&gt;
| [[Experience Points|Experience points]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x14&lt;br /&gt;
| Friendship (Steps to Hatch if an egg)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x15&lt;br /&gt;
| [[Ability]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x16&lt;br /&gt;
| [[#Markings|Markings]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x17&lt;br /&gt;
| [[#Original Language|Original Language]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x18&lt;br /&gt;
| [[Effort Values#Hit Points|HP Effort Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x19&lt;br /&gt;
| [[Effort Values#Attack Points|Attack Effort Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1A&lt;br /&gt;
| [[Effort Values#Defense Points|Defense Effort Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1B&lt;br /&gt;
| [[Effort Values#Speed Points|Speed Effort Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1C&lt;br /&gt;
| [[Effort Values#Special Attack Points|SP Attack Effort Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1D&lt;br /&gt;
| [[Effort Values#Special Defense Points|SP Defense Effort Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1E&lt;br /&gt;
| [[Contest Stats#Cool|Cool Contest Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1F&lt;br /&gt;
| [[Contest Stats#Beauty|Beauty Contest Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| [[Contest Stats#Cute|Cute Contest Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x21&lt;br /&gt;
| [[Contest Stats#Smart|Smart Contest Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x22&lt;br /&gt;
| [[Contest Stats#Tough|Tough Contest Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x23&lt;br /&gt;
| [[Contest Stats#Sheen|Sheen Contest Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24-0x25&lt;br /&gt;
| [[#Sinnoh Ribbon Set 1|Sinnoh Ribbon Set 1]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26-0x27&lt;br /&gt;
| [[#Sinnoh Ribbon Set 2|Sinnoh Ribbon Set 2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Block B ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x28-0x29&lt;br /&gt;
| [[Pokemon Moves|Move 1 ID]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x2A-0x2B&lt;br /&gt;
| [[Pokemon Moves|Move 2 ID]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x2C-0x2D&lt;br /&gt;
| [[Pokemon Moves|Move 3 ID]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x2E-0x2F&lt;br /&gt;
| [[Pokemon Moves|Move 4 ID]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x30&lt;br /&gt;
| [[Pokemon Moves#Power Points|Move 1 Current PP]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x31&lt;br /&gt;
| [[Pokemon Moves#Power Points|Move 2 Current PP]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x32&lt;br /&gt;
| [[Pokemon Moves#Power Points|Move 3 Current PP]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x33&lt;br /&gt;
| [[Pokemon Moves#Power Points|Move 4 Current PP]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x34-0x37&lt;br /&gt;
| [[Pokemon Moves#Power Points|Move PP Ups]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x38-0x3B&lt;br /&gt;
| Bits 0-29 - [[Individual Values]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Hit Points|HP]] ( [0-31] &amp;lt;&amp;lt; 0 )&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Attack Points|Attack]] ( [0-31] &amp;lt;&amp;lt; 5 )&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Defense Points|Defense]] ( [0-31] &amp;lt;&amp;lt; 10 )&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Speed Points|Speed]] ( [0-31] &amp;lt;&amp;lt; 15 )&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Special Attack Points|SP Attack]] ( [0-31] &amp;lt;&amp;lt; 20 )&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Special Defense Points|SP Defense]] ( [0-31] &amp;lt;&amp;lt; 25 )&amp;lt;br&amp;gt;&lt;br /&gt;
Bit 30 - IsEgg Flag&amp;lt;br&amp;gt;Bit 31 - IsNicknamed Flag&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C-0x3D&lt;br /&gt;
| [[#Hoenn Ribbon Set 1|Hoenn Ribbon Set 1]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E-0x3F&lt;br /&gt;
| [[#Hoenn Ribbon Set 2|Hoenn Ribbon Set 2]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x40&lt;br /&gt;
| Bit 0 - Fateful Encounter Flag&amp;lt;br&amp;gt;Bit 1 - Female&amp;lt;br&amp;gt;Bit 2 - Genderless&amp;lt;br&amp;gt;Bit 1 &amp;amp; 2 - Male&amp;lt;br&amp;gt;Bit 3-7 - [[#Alternate Forms|Alternate Forms]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x41 &lt;br /&gt;
| Shiny Leaves (HGSS)&amp;lt;br&amp;gt;Bit 5 - Leaf Crown&amp;lt;br&amp;gt;Bits 0–4 - Leaves A–E (bit 0 is leftmost)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x42-0x43&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x44-0x45&lt;br /&gt;
| Egg [[Pokemon NDS Locations#Egg Locations|Location]] (Platinum)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x46-0x47&lt;br /&gt;
| Met at [[Pokemon NDS Locations|Location]] (Platinum)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Block C ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x48-0x5D&lt;br /&gt;
| Nickname&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x5E&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x5F&lt;br /&gt;
| [[Pokemon Hometown|Hometown]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60-0x61&lt;br /&gt;
| [[#Sinnoh Ribbon Set 3|Sinnoh Ribbon Set 3]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x62-0x63&lt;br /&gt;
| [[#Sinnoh Ribbon Set 4|Sinnoh Ribbon Set 4]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x64-0x67&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Block D ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x68-0x77 &lt;br /&gt;
| [[Original Trainer|OT Name]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x78-0x7A &lt;br /&gt;
| Date Egg Received&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7B-0x7D&lt;br /&gt;
| Date Met&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7E-0x7F&lt;br /&gt;
| Egg [[Pokemon NDS Locations|Location]] (Diamond/Pearl)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x80-0x81&lt;br /&gt;
| Met At [[Pokemon NDS Locations|Location]] (Diamond/Pearl)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x82&lt;br /&gt;
| [[Pokerus|Pokérus]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x83&lt;br /&gt;
| [http://projectpokemon.org/wiki/List_of_Diamond,_Pearl,_Platinum,_HeartGold_and_SoulSilver_Items_by_Index_Number#Balls Poké Ball]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x84&lt;br /&gt;
| Bit 0-6 - Met At Level&amp;lt;br&amp;gt;Bit 7 - Female OT Gender&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x85&lt;br /&gt;
| [[#Encounter Types|Encounter Type]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x86&lt;br /&gt;
|[http://projectpokemon.org/wiki/List_of_Diamond,_Pearl,_Platinum,_HeartGold_and_SoulSilver_Items_by_Index_Number#HeartGold_and_SoulSilver_exclusive_Balls HGSS Poké Ball]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x87&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Battle Stats ==&lt;br /&gt;
&lt;br /&gt;
The battle stats are encrypted in the same manner, however the seed is not the checksum, it is the PID.&lt;br /&gt;
&lt;br /&gt;
=== Encrypted Bytes ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x88&lt;br /&gt;
| Bits 0-2 - Asleep (0-7 rounds)&amp;lt;br&amp;gt;Bit 3 - Poisoned&amp;lt;br&amp;gt;Bit 4 - Burned&amp;lt;br&amp;gt;Bit 5 - Frozen&amp;lt;br&amp;gt;Bit 6 - Paralyzed&amp;lt;br&amp;gt;Bit 7 - Toxic&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x89&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039; - Flags - Max Value 0xF0&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x8A-0x8B&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x8C&lt;br /&gt;
| Level&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x8D&lt;br /&gt;
| Capsule Index (Seals)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x8E-0x8F&lt;br /&gt;
| Current HP&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x90-0x91&lt;br /&gt;
| Max HP&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x92-0x93&lt;br /&gt;
| Attack&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x94-0x95&lt;br /&gt;
| Defense&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x96-0x97&lt;br /&gt;
| Speed&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x98-0x99&lt;br /&gt;
| Special Attack&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x9A-0x9B&lt;br /&gt;
| Special Defense&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x9C-0xD3&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039; - Contains Trash Data&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xD4-0xEB&lt;br /&gt;
| Seal Coordinates&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Original Language ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Language&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1&lt;br /&gt;
| 日本語 (Japan)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x2&lt;br /&gt;
| English (US/UK/AU)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3&lt;br /&gt;
| Français (France/Québec)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Italiano (Italy)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x5&lt;br /&gt;
| Deutsch (Germany)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7&lt;br /&gt;
| Español (Spain/Latin Americas)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x8&lt;br /&gt;
| 한국어 (South Korea)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Markings ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Marking&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x01&lt;br /&gt;
| Circle&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x02&lt;br /&gt;
| Triangle&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04&lt;br /&gt;
| Square&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Heart&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| Star&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| Diamond&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Alternate Forms ==&lt;br /&gt;
Alternate forms are stored at offset 0x40 of the Pokemon structure.  Each form follows the pattern of &#039;&#039;index &amp;lt;&amp;lt; 3&#039;&#039; where index starts at zero for the main form.&lt;br /&gt;
&lt;br /&gt;
=== Unown&#039;s Forms ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| A&lt;br /&gt;
| 0x38&lt;br /&gt;
| H&lt;br /&gt;
| 0x70&lt;br /&gt;
| O&lt;br /&gt;
| 0xA8&lt;br /&gt;
| V&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| B&lt;br /&gt;
| 0x40&lt;br /&gt;
| I&lt;br /&gt;
| 0x78&lt;br /&gt;
| P&lt;br /&gt;
| 0xB0&lt;br /&gt;
| W&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| C&lt;br /&gt;
| 0x48&lt;br /&gt;
| J&lt;br /&gt;
| 0x80&lt;br /&gt;
| Q&lt;br /&gt;
| 0xB8&lt;br /&gt;
| X&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x18&lt;br /&gt;
| D&lt;br /&gt;
| 0x50&lt;br /&gt;
| K&lt;br /&gt;
| 0x88&lt;br /&gt;
| R&lt;br /&gt;
| 0xC0&lt;br /&gt;
| Y&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| E&lt;br /&gt;
| 0x58&lt;br /&gt;
| L&lt;br /&gt;
| 0x90&lt;br /&gt;
| S&lt;br /&gt;
| 0xC8&lt;br /&gt;
| Z&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x28&lt;br /&gt;
| F&lt;br /&gt;
| 0x60&lt;br /&gt;
| M&lt;br /&gt;
| 0x98&lt;br /&gt;
| T&lt;br /&gt;
| 0xD0&lt;br /&gt;
| !&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x30&lt;br /&gt;
| G&lt;br /&gt;
| 0x68&lt;br /&gt;
| N&lt;br /&gt;
| 0xA0&lt;br /&gt;
| U&lt;br /&gt;
| 0xD8&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deoxy&#039;s Forms ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Normal&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Attack&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| Defense&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x18&lt;br /&gt;
| Speed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Burmy&#039;s &amp;amp; Wormadam&#039;s Forms ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Plant&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Sandy&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| Trash&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shellos&#039; &amp;amp; Gastrodon&#039;s Forms ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| West&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| East&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rotom&#039;s Forms ===&lt;br /&gt;
Rotom&#039;s alternate forms will only be displayed in Pokemon Platinum.  Rotom may be traded between Diamond, Pearl, and Platinum without losing the alternate form.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Normal&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Heat&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| Wash&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x18&lt;br /&gt;
| Frost&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| Fan&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x28&lt;br /&gt;
| Cut&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Giratina&#039;s Forms ===&lt;br /&gt;
Giratina&#039;s Origin form will only be displayed in Pokemon Platinum.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Altered&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Origin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shaymin&#039;s Forms ===&lt;br /&gt;
Shaymin&#039;s Sky form will only be displayed in Pokemon Platinum.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Land&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Sky&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arceus&#039; Forms ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Normal&lt;br /&gt;
| 0x30&lt;br /&gt;
| Insect&lt;br /&gt;
| 0x60&lt;br /&gt;
| Zap&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Fist&lt;br /&gt;
| 0x38&lt;br /&gt;
| Spooky&lt;br /&gt;
| 0x68&lt;br /&gt;
| Mind&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| Sky&lt;br /&gt;
| 0x40&lt;br /&gt;
| Iron&lt;br /&gt;
| 0x70&lt;br /&gt;
| Icicle&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x18&lt;br /&gt;
| Toxic&lt;br /&gt;
| 0x48&lt;br /&gt;
| Flame&lt;br /&gt;
| 0x78&lt;br /&gt;
| Draco&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| Earth&lt;br /&gt;
| 0x50&lt;br /&gt;
| Splash&lt;br /&gt;
| 0x80&lt;br /&gt;
| Dread&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x28&lt;br /&gt;
| Stone&lt;br /&gt;
| 0x58&lt;br /&gt;
| Meadow&lt;br /&gt;
| 0x4C&lt;br /&gt;
| Curse&lt;br /&gt;
|}&lt;br /&gt;
== Encounter Types ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Country&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0&lt;br /&gt;
| Pal Park, Egg, Hatched, Special Event&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x2&lt;br /&gt;
| Tall Grass&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Dialga/Palkia In-Game Event&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x5&lt;br /&gt;
| Cave, Hall of Origin&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7&lt;br /&gt;
| Surfing, Fishing&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x9&lt;br /&gt;
| Building&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA&lt;br /&gt;
| Great Marsh (Safari Zone)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xC&lt;br /&gt;
| Starter, Fossil, Gift (Eevee)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ribbons ==&lt;br /&gt;
Diamond, Pearl, and Platinum store the ribbon information as [[Bitfields|bitfields]] in 1-byte words.  Given below are the bytewise representation of the ribbon bitfields.&lt;br /&gt;
&lt;br /&gt;
=== Sinnoh Ribbon Set 1 ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x01&lt;br /&gt;
| Sinnoh Champ Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x02&lt;br /&gt;
| Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x04&lt;br /&gt;
| Great Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x08&lt;br /&gt;
| Double Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x10&lt;br /&gt;
| Multi Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x20&lt;br /&gt;
| Pair Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x40&lt;br /&gt;
| World Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x80&lt;br /&gt;
| Alert Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x01&lt;br /&gt;
| Shock Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x02&lt;br /&gt;
| Downcast Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x04&lt;br /&gt;
| Careless Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x08&lt;br /&gt;
| Relax Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x10&lt;br /&gt;
| Snooze Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x20&lt;br /&gt;
| Smile Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x40&lt;br /&gt;
| Gorgeous Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x80&lt;br /&gt;
| Royal Ribbon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sinnoh Ribbon Set 2 ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x01&lt;br /&gt;
| Gorgeous Royal Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x02&lt;br /&gt;
| Footprint Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x04&lt;br /&gt;
| Record Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x08&lt;br /&gt;
| History Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x10&lt;br /&gt;
| Legend Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x20&lt;br /&gt;
| Red Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x40&lt;br /&gt;
| Green Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x80&lt;br /&gt;
| Blue Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x27 &amp;amp; 0x01&lt;br /&gt;
| Festival Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x27 &amp;amp; 0x02&lt;br /&gt;
| Carnival Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x27 &amp;amp; 0x04&lt;br /&gt;
| Classic Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x27 &amp;amp; 0x08&lt;br /&gt;
| Premier Ribbon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sinnoh Ribbon Set 3 ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x01&lt;br /&gt;
| Cool Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x02&lt;br /&gt;
| Cool Ribbon Great&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x04&lt;br /&gt;
| Cool Ribbon Ultra&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x08&lt;br /&gt;
| Cool Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x10&lt;br /&gt;
| Beauty Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x20&lt;br /&gt;
| Beauty Ribbon Great&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x40&lt;br /&gt;
| Beauty Ribbon Ultra&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x80&lt;br /&gt;
| Beauty Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x01&lt;br /&gt;
| Cute Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x02&lt;br /&gt;
| Cute Ribbon Great&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x04&lt;br /&gt;
| Cute Ribbon Ultra&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x08&lt;br /&gt;
| Cute Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x10&lt;br /&gt;
| Smart Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x20&lt;br /&gt;
| Smart Ribbon Great&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x40&lt;br /&gt;
| Smart Ribbon Ultra&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x80&lt;br /&gt;
| Smart Ribbon Master&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sinnoh Ribbon Set 4 ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x62 &amp;amp; 0x01&lt;br /&gt;
| Tough Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x62 &amp;amp; 0x02&lt;br /&gt;
| Tough Ribbon Great&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x62 &amp;amp; 0x04&lt;br /&gt;
| Tough Ribbon Ultra&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x62 &amp;amp; 0x08&lt;br /&gt;
| Tough Ribbon Master&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hoenn Ribbon Set 1 ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x01&lt;br /&gt;
| Cool Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x02&lt;br /&gt;
| Cool Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x04&lt;br /&gt;
| Cool Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x08&lt;br /&gt;
| Cool Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x10&lt;br /&gt;
| Beauty Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x20&lt;br /&gt;
| Beauty Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x40&lt;br /&gt;
| Beauty Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x80&lt;br /&gt;
| Beauty Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x01&lt;br /&gt;
| Cute Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x02&lt;br /&gt;
| Cute Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x04&lt;br /&gt;
| Cute Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x08&lt;br /&gt;
| Cute Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x10&lt;br /&gt;
| Smart Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x20&lt;br /&gt;
| Smart Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x40&lt;br /&gt;
| Smart Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x80&lt;br /&gt;
| Smart Ribbon Master&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hoenn Ribbon Set 2 ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x01&lt;br /&gt;
| Tough Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x02&lt;br /&gt;
| Tough Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x04&lt;br /&gt;
| Tough Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x08&lt;br /&gt;
| Tough Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x10&lt;br /&gt;
| Champion Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x20&lt;br /&gt;
| Winning Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x40&lt;br /&gt;
| Victory Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x80&lt;br /&gt;
| Artist Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x01&lt;br /&gt;
| Effort Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x02&lt;br /&gt;
| Marine Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x04&lt;br /&gt;
| Land Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x08&lt;br /&gt;
| Sky Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x10&lt;br /&gt;
| Country Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x20&lt;br /&gt;
| National Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x40&lt;br /&gt;
| Earth Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x80&lt;br /&gt;
| World Ribbon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Save File Location ==&lt;br /&gt;
The party Pokémon are stored in the [[Pokémon NDS Save File Structure|save file]] beginning at offset 0x00098 for the first small block, and 0x40098 for the second small block.&lt;br /&gt;
&lt;br /&gt;
In the first small save block, the first Daycare Pokémon is located at 0x0141C, and the second is located at 0x01508.  In the second small block, the first Daycare Pokémon is located at 0x4141C, and the second is located at 0x41508.&lt;br /&gt;
&lt;br /&gt;
In the first small save block, the Pal Park Pokémon are stored beginning at 0x0BA28.  In the second small save block, the Pal Park Pokémon are stored beginning at 0x4BA28.&lt;br /&gt;
&lt;br /&gt;
Each party, Daycare, and Pal Park Pokémon is 236 bytes in size.&lt;br /&gt;
&lt;br /&gt;
The PC storage Pokémon are stored in the save file from Box 1 to Box 18.  The offset starts at 0x0C104 for the first big block and 0x4C104 for the second big block.  Each PC stored Pokémon is 136 bytes in size.&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;br /&gt;
[[Category:ROM Research]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=496</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=496"/>
		<updated>2009-03-13T06:23:47Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* General Save File Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond and Pearl save file is divided into two pairs of blocks.  Each pair consists of one general block, one storage box block, and one hall of fame block.  The storage box block contains current information regarding [[Bebe|Bebe&#039;s]] storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  The general block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The hall of fame block contains information about the Pokémon used to defeat the Elite 4.  The other pair is a backup from the previous save.&lt;br /&gt;
&lt;br /&gt;
The first general block in the file begins at 0x00000.  The first storage block begins at 0x0C100.  The first hall of fame block starts at 0x20000.  The second general, storage, and hall of fame blocks are at the same address + 0x40000.  The current blocks are not always stored in linear order in the save file (i.e. if the second general block is the more current, the first or second storage box block can possibly be the current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 20 bytes of each general and storage box block is a footer.  The last 24 bytes of each hall of fame block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* The size of the block&lt;br /&gt;
* Whether the block is current or a backup.&lt;br /&gt;
* Which big &amp;amp; small blocks link together.&lt;br /&gt;
&lt;br /&gt;
===General/Storage Box Footer===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| [[Pokémon NDS Save File Checksum|Checksum]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Hall of Fame Footer===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x13&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x14 - 0x15&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x16 - 0x17&lt;br /&gt;
| [[Pokémon NDS Save File Checksum|Checksum]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Small block offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Limited to 0xF423F (999,999)&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
*Determines the sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Starter Pokémon - 0xDF0===&lt;br /&gt;
The [[Pokédex]] number of the starter chosen.&lt;br /&gt;
*Unsigned 16bit integer.&lt;br /&gt;
&lt;br /&gt;
===Fly Locations - 0x1112===&lt;br /&gt;
*9byte bit field&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
*List of [[Berry Tree#Locations|Berry Tree locations]]&lt;br /&gt;
{{main|Berry Tree(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*List of [[Safari Zone Pokémon#Pokémon list|Safari Zone Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*List of [[Swarm Pokémon#Pokémon list|Swarm Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Today - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Yesterday - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Yesterday&#039;s Pokémon can be caught after beating the [[Elite 4]] and receiving the [[National Pokédex upgrade]].&lt;br /&gt;
&lt;br /&gt;
===Honey Trees - 0x72E4===&lt;br /&gt;
*21 blocks of 8byte structures&lt;br /&gt;
*List of [[Honey Tree#Locations|Honey Tree locations]]&lt;br /&gt;
{{main|Honey Tree(Technical)|Honey Trees}}&lt;br /&gt;
&lt;br /&gt;
===GTS Pokémon - 0x73E8===&lt;br /&gt;
The Pokémon to be put up for GTS&lt;br /&gt;
*1 block of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=495</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=495"/>
		<updated>2009-03-13T06:23:07Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* General Save File Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond and Pearl save file is divided into two pairs of blocks.  Each pair consists of one general block, one storage box block, and one hall of fame block.  The storage box block contains current information regarding [[Bebe|Bebe&#039;s]] storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  The general block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The hall of fame block contains information about the Pokémon used to defeat the Elite 4.  The other pair of blocks is a backup from the previous save.&lt;br /&gt;
&lt;br /&gt;
The first general block in the file begins at 0x00000.  The first storage block begins at 0x0C100.  The first hall of fame block starts at 0x20000.  The second general, storage, and hall of fame blocks are at the same address + 0x40000.  The current blocks are not always stored in linear order in the save file (i.e. if the second general block is the more current, the first or second storage box block can possibly be the current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 20 bytes of each general and storage box block is a footer.  The last 24 bytes of each hall of fame block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* The size of the block&lt;br /&gt;
* Whether the block is current or a backup.&lt;br /&gt;
* Which big &amp;amp; small blocks link together.&lt;br /&gt;
&lt;br /&gt;
===General/Storage Box Footer===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| [[Pokémon NDS Save File Checksum|Checksum]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Hall of Fame Footer===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x13&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x14 - 0x15&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x16 - 0x17&lt;br /&gt;
| [[Pokémon NDS Save File Checksum|Checksum]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Small block offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Limited to 0xF423F (999,999)&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
*Determines the sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Starter Pokémon - 0xDF0===&lt;br /&gt;
The [[Pokédex]] number of the starter chosen.&lt;br /&gt;
*Unsigned 16bit integer.&lt;br /&gt;
&lt;br /&gt;
===Fly Locations - 0x1112===&lt;br /&gt;
*9byte bit field&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
*List of [[Berry Tree#Locations|Berry Tree locations]]&lt;br /&gt;
{{main|Berry Tree(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*List of [[Safari Zone Pokémon#Pokémon list|Safari Zone Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*List of [[Swarm Pokémon#Pokémon list|Swarm Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Today - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Yesterday - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Yesterday&#039;s Pokémon can be caught after beating the [[Elite 4]] and receiving the [[National Pokédex upgrade]].&lt;br /&gt;
&lt;br /&gt;
===Honey Trees - 0x72E4===&lt;br /&gt;
*21 blocks of 8byte structures&lt;br /&gt;
*List of [[Honey Tree#Locations|Honey Tree locations]]&lt;br /&gt;
{{main|Honey Tree(Technical)|Honey Trees}}&lt;br /&gt;
&lt;br /&gt;
===GTS Pokémon - 0x73E8===&lt;br /&gt;
The Pokémon to be put up for GTS&lt;br /&gt;
*1 block of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=494</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=494"/>
		<updated>2009-03-13T06:17:18Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* GTS Pokémon - 0x73E8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond and Pearl save file is divided into two pairs of blocks.  Each pair consists of one general block, one storage box block, and one hall of fame block.  The storage box block contains current information regarding the [[Bebe|Bebe&#039;s]] storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  The general block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The hall of fame block contains information about the Pokémon used to defeat the Elite 4.  The other pair of blocks is a backup from the previous save.&lt;br /&gt;
&lt;br /&gt;
The first general block in the file begins at 0x00000.  The first storage block begins at 0x0C100.  The first hall of fame block starts at 0x20000.  The second general, storage, and hall of fame blocks are at the same address + 0x40000.  The current blocks are not always stored in linear order in the save file (i.e. if the second general block is the more current, the first or second storage box block can possibly be the current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 20 bytes of each general and storage box block is a footer.  The last 24 bytes of each hall of fame block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* The size of the block&lt;br /&gt;
* Whether the block is current or a backup.&lt;br /&gt;
* Which big &amp;amp; small blocks link together.&lt;br /&gt;
&lt;br /&gt;
===General/Storage Box Footer===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| [[Pokémon NDS Save File Checksum|Checksum]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Hall of Fame Footer===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x13&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x14 - 0x15&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x16 - 0x17&lt;br /&gt;
| [[Pokémon NDS Save File Checksum|Checksum]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Small block offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Limited to 0xF423F (999,999)&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
*Determines the sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Starter Pokémon - 0xDF0===&lt;br /&gt;
The [[Pokédex]] number of the starter chosen.&lt;br /&gt;
*Unsigned 16bit integer.&lt;br /&gt;
&lt;br /&gt;
===Fly Locations - 0x1112===&lt;br /&gt;
*9byte bit field&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
*List of [[Berry Tree#Locations|Berry Tree locations]]&lt;br /&gt;
{{main|Berry Tree(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*List of [[Safari Zone Pokémon#Pokémon list|Safari Zone Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*List of [[Swarm Pokémon#Pokémon list|Swarm Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Today - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Yesterday - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Yesterday&#039;s Pokémon can be caught after beating the [[Elite 4]] and receiving the [[National Pokédex upgrade]].&lt;br /&gt;
&lt;br /&gt;
===Honey Trees - 0x72E4===&lt;br /&gt;
*21 blocks of 8byte structures&lt;br /&gt;
*List of [[Honey Tree#Locations|Honey Tree locations]]&lt;br /&gt;
{{main|Honey Tree(Technical)|Honey Trees}}&lt;br /&gt;
&lt;br /&gt;
===GTS Pokémon - 0x73E8===&lt;br /&gt;
The Pokémon to be put up for GTS&lt;br /&gt;
*1 block of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=493</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=493"/>
		<updated>2009-03-13T06:14:44Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Small block offsets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond and Pearl save file is divided into two pairs of blocks.  Each pair consists of one general block, one storage box block, and one hall of fame block.  The storage box block contains current information regarding the [[Bebe|Bebe&#039;s]] storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  The general block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The hall of fame block contains information about the Pokémon used to defeat the Elite 4.  The other pair of blocks is a backup from the previous save.&lt;br /&gt;
&lt;br /&gt;
The first general block in the file begins at 0x00000.  The first storage block begins at 0x0C100.  The first hall of fame block starts at 0x20000.  The second general, storage, and hall of fame blocks are at the same address + 0x40000.  The current blocks are not always stored in linear order in the save file (i.e. if the second general block is the more current, the first or second storage box block can possibly be the current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 20 bytes of each general and storage box block is a footer.  The last 24 bytes of each hall of fame block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* The size of the block&lt;br /&gt;
* Whether the block is current or a backup.&lt;br /&gt;
* Which big &amp;amp; small blocks link together.&lt;br /&gt;
&lt;br /&gt;
===General/Storage Box Footer===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| [[Pokémon NDS Save File Checksum|Checksum]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Hall of Fame Footer===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x13&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x14 - 0x15&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x16 - 0x17&lt;br /&gt;
| [[Pokémon NDS Save File Checksum|Checksum]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Small block offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Limited to 0xF423F (999,999)&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
*Determines the sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Starter Pokémon - 0xDF0===&lt;br /&gt;
The [[Pokédex]] number of the starter chosen.&lt;br /&gt;
*Unsigned 16bit integer.&lt;br /&gt;
&lt;br /&gt;
===Fly Locations - 0x1112===&lt;br /&gt;
*9byte bit field&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
*List of [[Berry Tree#Locations|Berry Tree locations]]&lt;br /&gt;
{{main|Berry Tree(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*List of [[Safari Zone Pokémon#Pokémon list|Safari Zone Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*List of [[Swarm Pokémon#Pokémon list|Swarm Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Today - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Yesterday - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Yesterday&#039;s Pokémon can be caught after beating the [[Elite 4]] and receiving the [[National Pokédex upgrade]].&lt;br /&gt;
&lt;br /&gt;
===Honey Trees - 0x72E4===&lt;br /&gt;
*21 blocks of 8byte structures&lt;br /&gt;
*List of [[Honey Tree#Locations|Honey Tree locations]]&lt;br /&gt;
{{main|Honey Tree(Technical)|Honey Trees}}&lt;br /&gt;
&lt;br /&gt;
===GTS Pokémon - 0x73E8===&lt;br /&gt;
The Pokémon to be put up for GTS&lt;br /&gt;
*1 block of 236bytes&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=492</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=492"/>
		<updated>2009-03-13T06:13:06Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Small block offsets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond and Pearl save file is divided into two pairs of blocks.  Each pair consists of one general block, one storage box block, and one hall of fame block.  The storage box block contains current information regarding the [[Bebe|Bebe&#039;s]] storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  The general block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The hall of fame block contains information about the Pokémon used to defeat the Elite 4.  The other pair of blocks is a backup from the previous save.&lt;br /&gt;
&lt;br /&gt;
The first general block in the file begins at 0x00000.  The first storage block begins at 0x0C100.  The first hall of fame block starts at 0x20000.  The second general, storage, and hall of fame blocks are at the same address + 0x40000.  The current blocks are not always stored in linear order in the save file (i.e. if the second general block is the more current, the first or second storage box block can possibly be the current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 20 bytes of each general and storage box block is a footer.  The last 24 bytes of each hall of fame block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* The size of the block&lt;br /&gt;
* Whether the block is current or a backup.&lt;br /&gt;
* Which big &amp;amp; small blocks link together.&lt;br /&gt;
&lt;br /&gt;
===General/Storage Box Footer===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| [[Pokémon NDS Save File Checksum|Checksum]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Hall of Fame Footer===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x13&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x14 - 0x15&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x16 - 0x17&lt;br /&gt;
| [[Pokémon NDS Save File Checksum|Checksum]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Small block offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Limited to 0xF423F (999,999)&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
*Determines the sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Fly Locations - 0x1112===&lt;br /&gt;
*9byte bit field&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
*List of [[Berry Tree#Locations|Berry Tree locations]]&lt;br /&gt;
{{main|Berry Tree(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*List of [[Safari Zone Pokémon#Pokémon list|Safari Zone Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*List of [[Swarm Pokémon#Pokémon list|Swarm Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Today - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Yesterday - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Yesterday&#039;s Pokémon can be caught after beating the [[Elite 4]] and receiving the [[National Pokédex upgrade]].&lt;br /&gt;
&lt;br /&gt;
===Honey Trees - 0x72E4===&lt;br /&gt;
*21 blocks of 8byte structures&lt;br /&gt;
*List of [[Honey Tree#Locations|Honey Tree locations]]&lt;br /&gt;
{{main|Honey Tree(Technical)|Honey Trees}}&lt;br /&gt;
&lt;br /&gt;
===GTS Pokémon - 0x73E8===&lt;br /&gt;
The Pokémon to be put up for GTS&lt;br /&gt;
*1 block of 236bytes&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=490</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=490"/>
		<updated>2009-03-12T19:52:50Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Block Footers */ - Added block 3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond and Pearl save file is divided into two pairs of blocks.  Each pair consists of one general block, one storage box block, and one hall of fame block.  The storage box block contains current information regarding the [[Bebe|Bebe&#039;s]] storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  The general block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The hall of fame block contains information about the Pokémon used to defeat the Elite 4.  The other pair of blocks is a backup from the previous save.&lt;br /&gt;
&lt;br /&gt;
The first general block in the file begins at 0x00000.  The first storage block begins at 0x0C100.  The first hall of fame block starts at 0x20000.  The second general, storage, and hall of fame blocks are at the same address + 0x40000.  The current blocks are not always stored in linear order in the save file (i.e. if the second general block is the more current, the first or second storage box block can possibly be the current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 20 bytes of each general and storage box block is a footer.  The last 24 bytes of each hall of fame block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* The size of the block&lt;br /&gt;
* Whether the block is current or a backup.&lt;br /&gt;
* Which big &amp;amp; small blocks link together.&lt;br /&gt;
&lt;br /&gt;
===General/Storage Box Footer===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| [[Pokémon NDS Save File Checksum|Checksum]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Hall of Fame Footer===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x13&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x14 - 0x15&lt;br /&gt;
| &#039;&#039;Run-time usage&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x16 - 0x17&lt;br /&gt;
| [[Pokémon NDS Save File Checksum|Checksum]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Small block offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Limited to 0xF423F (999,999)&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
*Determines the sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Fly Locations - 0x1112===&lt;br /&gt;
*9byte bit field&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
*List of [[Berry Tree#Locations|Berry Tree locations]]&lt;br /&gt;
{{main|Berry Tree(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*List of [[Safari Zone Pokémon#Pokémon list|Safari Zone Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*List of [[Swarm Pokémon#Pokémon list|Swarm Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Today - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Yesterday - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Yesterday&#039;s Pokémon can be caught after beating the [[Elite 4]] and receiving the [[National Pokédex upgrade]].&lt;br /&gt;
&lt;br /&gt;
===Honey Trees - 0x72E4===&lt;br /&gt;
*21 blocks of 8byte structures&lt;br /&gt;
*List of [[Honey Tree#Locations|Honey Tree locations]]&lt;br /&gt;
{{main|Honey Tree(Technical)|Honey Trees}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=489</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=489"/>
		<updated>2009-03-12T19:39:29Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* General Save File Structure */ - Added information regarding the third block&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond and Pearl save file is divided into two pairs of blocks.  Each pair consists of one general block, one storage box block, and one hall of fame block.  The storage box block contains current information regarding the [[Bebe|Bebe&#039;s]] storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  The general block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The hall of fame block contains information about the Pokémon used to defeat the Elite 4.  The other pair of blocks is a backup from the previous save.&lt;br /&gt;
&lt;br /&gt;
The first general block in the file begins at 0x00000.  The first storage block begins at 0x0C100.  The first hall of fame block starts at 0x20000.  The second general, storage, and hall of fame blocks are at the same address + 0x40000.  The current blocks are not always stored in linear order in the save file (i.e. if the second general block is the more current, the first or second storage box block can possibly be the current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 20 bytes of each save block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* Whether the block is big or small&lt;br /&gt;
* Whether the block is current or a backup.&lt;br /&gt;
* Which big &amp;amp; small blocks link together.&lt;br /&gt;
&lt;br /&gt;
Block footer structure:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| &#039;&#039;Run-time variable&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| &#039;&#039;Run-time variable&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| [[Pokémon NDS Save File Checksum|Checksum]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Small block offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Limited to 0xF423F (999,999)&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
*Determines the sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Fly Locations - 0x1112===&lt;br /&gt;
*9byte bit field&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
*List of [[Berry Tree#Locations|Berry Tree locations]]&lt;br /&gt;
{{main|Berry Tree(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*List of [[Safari Zone Pokémon#Pokémon list|Safari Zone Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*List of [[Swarm Pokémon#Pokémon list|Swarm Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Today - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Yesterday - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Yesterday&#039;s Pokémon can be caught after beating the [[Elite 4]] and receiving the [[National Pokédex upgrade]].&lt;br /&gt;
&lt;br /&gt;
===Honey Trees - 0x72E4===&lt;br /&gt;
*21 blocks of 8byte structures&lt;br /&gt;
*List of [[Honey Tree#Locations|Honey Tree locations]]&lt;br /&gt;
{{main|Honey Tree(Technical)|Honey Trees}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=482</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=482"/>
		<updated>2009-03-10T21:41:18Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* General Save File Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond and Pearl save file is divided into two pairs of blocks.  Each pair consists of one small block and one big block.  The big block contains current information regarding the PC storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  The small block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The other pair of blocks is a backup from the previous save.&lt;br /&gt;
&lt;br /&gt;
The first small block in the file begins at 0x00000.  The first big block begins at 0x0C100.  The second small and big blocks are at the same address + 0x40000.  The current small and current big blocks are not always stored in order in the save file (i.e. if the second small block is the more current, the first or second big block can possibly be the current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 20 bytes of each save block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* Whether the block is big or small&lt;br /&gt;
* Whether the block is current or a backup.&lt;br /&gt;
* Which big &amp;amp; small blocks link together.&lt;br /&gt;
&lt;br /&gt;
Block footer structure:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| &#039;&#039;Run-time variable&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| &#039;&#039;Run-time variable&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| [[Pokémon NDS Save File Checksum|Checksum]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Small block offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Limited to 0xF423F (99,999)&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
*Determines the sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Fly Locations - 0x1112===&lt;br /&gt;
*9byte bit field&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
*List of [[Berry Tree#Locations|Berry Tree locations]]&lt;br /&gt;
{{main|Berry Tree(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*List of [[Safari Zone Pokémon#Pokémon list|Safari Zone Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*List of [[Swarm Pokémon#Pokémon list|Swarm Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Today - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Yesterday - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Yesterday&#039;s Pokémon can be caught after beating the [[Elite 4]] and receiving the [[National Pokédex upgrade]].&lt;br /&gt;
&lt;br /&gt;
===Honey Trees - 0x72E4===&lt;br /&gt;
*21 blocks of 8byte structures&lt;br /&gt;
*List of [[Honey Tree#Locations|Honey Tree locations]]&lt;br /&gt;
{{main|Honey Tree(Technical)|Honey Trees}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=481</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=481"/>
		<updated>2009-03-10T21:39:31Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Block Footers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond, Pearl, and Platinum save file is broken down into two pairs of blocks.  Each pair consists of one small block and one big block.  One big block contains current information regarding the PC storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  One small block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The other pair of blocks is a backup of the saved information.&lt;br /&gt;
&lt;br /&gt;
The first small block in the file begins at 0x00000.  The first big block begins at 0x0C100.  The second small and big blocks are at the same address + 0x40000.  It is important to note that the current small and current big blocks are not always stored in order in the save file (i.e. if the second small block is the more current, the first or second big block can possibly be the more current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 20 bytes of each save block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* Whether the block is big or small&lt;br /&gt;
* Whether the block is current or a backup.&lt;br /&gt;
* Which big &amp;amp; small blocks link together.&lt;br /&gt;
&lt;br /&gt;
Block footer structure:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| &#039;&#039;Run-time variable&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| &#039;&#039;Run-time variable&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| [[Pokémon NDS Save File Checksum|Checksum]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Small block offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Limited to 0xF423F (99,999)&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
*Determines the sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Fly Locations - 0x1112===&lt;br /&gt;
*9byte bit field&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
*List of [[Berry Tree#Locations|Berry Tree locations]]&lt;br /&gt;
{{main|Berry Tree(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*List of [[Safari Zone Pokémon#Pokémon list|Safari Zone Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*List of [[Swarm Pokémon#Pokémon list|Swarm Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Today - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Yesterday - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Yesterday&#039;s Pokémon can be caught after beating the [[Elite 4]] and receiving the [[National Pokédex upgrade]].&lt;br /&gt;
&lt;br /&gt;
===Honey Trees - 0x72E4===&lt;br /&gt;
*21 blocks of 8byte structures&lt;br /&gt;
*List of [[Honey Tree#Locations|Honey Tree locations]]&lt;br /&gt;
{{main|Honey Tree(Technical)|Honey Trees}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=480</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=480"/>
		<updated>2009-03-10T21:37:55Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Block Footers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond, Pearl, and Platinum save file is broken down into two pairs of blocks.  Each pair consists of one small block and one big block.  One big block contains current information regarding the PC storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  One small block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The other pair of blocks is a backup of the saved information.&lt;br /&gt;
&lt;br /&gt;
The first small block in the file begins at 0x00000.  The first big block begins at 0x0C100.  The second small and big blocks are at the same address + 0x40000.  It is important to note that the current small and current big blocks are not always stored in order in the save file (i.e. if the second small block is the more current, the first or second big block can possibly be the more current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 0x14 bytes of each save block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* If it is a big or small block&lt;br /&gt;
* If it is a current block or a backup block.&lt;br /&gt;
* Which big/small block it links to.&lt;br /&gt;
&lt;br /&gt;
Here is the structure of the block footer:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| &#039;&#039;Run-time variable&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| &#039;&#039;Run-time variable&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| [[Pokémon NDS Save File Checksum|Checksum]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Small block offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Limited to 0xF423F (99,999)&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
*Determines the sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Fly Locations - 0x1112===&lt;br /&gt;
*9byte bit field&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
*List of [[Berry Tree#Locations|Berry Tree locations]]&lt;br /&gt;
{{main|Berry Tree(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*List of [[Safari Zone Pokémon#Pokémon list|Safari Zone Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*List of [[Swarm Pokémon#Pokémon list|Swarm Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Today - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Yesterday - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Yesterday&#039;s Pokémon can be caught after beating the [[Elite 4]] and receiving the [[National Pokédex upgrade]].&lt;br /&gt;
&lt;br /&gt;
===Honey Trees - 0x72E4===&lt;br /&gt;
*21 blocks of 8byte structures&lt;br /&gt;
*List of [[Honey Tree#Locations|Honey Tree locations]]&lt;br /&gt;
{{main|Honey Tree(Technical)|Honey Trees}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=479</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=479"/>
		<updated>2009-03-10T21:37:17Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Block Footers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond, Pearl, and Platinum save file is broken down into two pairs of blocks.  Each pair consists of one small block and one big block.  One big block contains current information regarding the PC storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  One small block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The other pair of blocks is a backup of the saved information.&lt;br /&gt;
&lt;br /&gt;
The first small block in the file begins at 0x00000.  The first big block begins at 0x0C100.  The second small and big blocks are at the same address + 0x40000.  It is important to note that the current small and current big blocks are not always stored in order in the save file (i.e. if the second small block is the more current, the first or second big block can possibly be the more current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 0x14 bytes of each save block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* If it is a big or small block&lt;br /&gt;
* If it is a current block or a backup block.&lt;br /&gt;
* Which big/small block it links to.&lt;br /&gt;
&lt;br /&gt;
Here is the structure of the block footer:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| [[Pokémon NDS Save File Checksum|Checksum]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Small block offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Limited to 0xF423F (99,999)&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
*Determines the sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Fly Locations - 0x1112===&lt;br /&gt;
*9byte bit field&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
*List of [[Berry Tree#Locations|Berry Tree locations]]&lt;br /&gt;
{{main|Berry Tree(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*List of [[Safari Zone Pokémon#Pokémon list|Safari Zone Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*List of [[Swarm Pokémon#Pokémon list|Swarm Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Today - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Yesterday - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Yesterday&#039;s Pokémon can be caught after beating the [[Elite 4]] and receiving the [[National Pokédex upgrade]].&lt;br /&gt;
&lt;br /&gt;
===Honey Trees - 0x72E4===&lt;br /&gt;
*21 blocks of 8byte structures&lt;br /&gt;
*List of [[Honey Tree#Locations|Honey Tree locations]]&lt;br /&gt;
{{main|Honey Tree(Technical)|Honey Trees}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_NDS_Save_File_Structure&amp;diff=478</id>
		<title>Pokémon NDS Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_NDS_Save_File_Structure&amp;diff=478"/>
		<updated>2009-03-10T21:36:19Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page disambiguates between the Pokémon NDS file save structure for Pokémon [[Pokémon Diamond|Diamond]], [[Pokémon Pearl|Pearl]], and [[Pokémon Platinum|Platinum]].&lt;br /&gt;
&lt;br /&gt;
* Pokémon Diamond &amp;amp; Pearl [[Pokémon DP Save File Structure|save file structure]]&lt;br /&gt;
* Pokémon Platinum [[Pokémon Pt Save File Structure|save file structure]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_NDS_Save_File_Structure&amp;diff=477</id>
		<title>Pokémon NDS Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_NDS_Save_File_Structure&amp;diff=477"/>
		<updated>2009-03-10T21:35:41Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page disambiguates between the Pokémon NDS file save structure for Pokémon [[Pokémon Diamond|Diamond]], [[Pokémon Pearl|Pearl]], and [[Pokémon Platinum|Platinum]].&lt;br /&gt;
&lt;br /&gt;
* Pokémon Diamond &amp;amp; Pearl [[Pokémon DP Save Structure|save structure]]&lt;br /&gt;
* Pokémon Platinum [[Pokémon Pt Save Structure|save structure]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_NDS_Save_File_Checksum&amp;diff=476</id>
		<title>Pokémon NDS Save File Checksum</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_NDS_Save_File_Checksum&amp;diff=476"/>
		<updated>2009-03-10T21:29:09Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Determining the checksum */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pokémon NDS uses a {{wplink|checksum|checksum}} at the footer each block in the [[Pokémon NDS Save File Structure|save file]] to ensure consistent data.&lt;br /&gt;
&lt;br /&gt;
==Diamong &amp;amp; Pearl usage==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 filestream.Seek( 0xCF0E, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( smallblock1 ); //small block 1&lt;br /&gt;
 filestream.Seek( 0x1E2DE, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( bigblock1 ); //big block 1&lt;br /&gt;
 filestream.Seek( 0x4CF0E, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( smallblock2 ); //small block 2&lt;br /&gt;
 filestream.Seek( 0x5E2DE, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( bigblock2 ); //big block 2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Platinum usage==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 filestream.Seek( 0xCF2A, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( smallblock1 ); //small block 1&lt;br /&gt;
 filestream.Seek( 0x1F10E, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( bigblock1 ); //big block 1&lt;br /&gt;
 filestream.Seek( 0x4CF2A, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( smallblock2 ); //small block 2&lt;br /&gt;
 filestream.Seek( 0x5F10E, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( bigblock2 ); //big block 2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Determining the seeds==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 		public static int[] SeedTable;&lt;br /&gt;
 &lt;br /&gt;
 		public static void GetSeeds()&lt;br /&gt;
 		{&lt;br /&gt;
 			SeedTable = new int[0x100];&lt;br /&gt;
 &lt;br /&gt;
 			int index = 0;&lt;br /&gt;
 			int result = 0;&lt;br /&gt;
 &lt;br /&gt;
 			do&lt;br /&gt;
 			{&lt;br /&gt;
 				result = index &amp;lt;&amp;lt; 8;&lt;br /&gt;
 				int index2 = 0;&lt;br /&gt;
 				do&lt;br /&gt;
 				{&lt;br /&gt;
 					if (((byte)(result&amp;gt;&amp;gt;8) &amp;amp; 0x80)!=0)&lt;br /&gt;
 						result = (2 * result )^ 0x1021;&lt;br /&gt;
 					else&lt;br /&gt;
 						result *= 2;&lt;br /&gt;
 				}&lt;br /&gt;
 				while (++index &amp;lt; 8);&lt;br /&gt;
 &lt;br /&gt;
 				seeds[index++] = (ushort)(result);&lt;br /&gt;
 			} while (index &amp;lt;= 0xFF);&lt;br /&gt;
 		}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Also a static list can be used with the following values:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 		public static readonly int[] SeedTable = new int[]&lt;br /&gt;
 			{&lt;br /&gt;
 				0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7,&lt;br /&gt;
 				0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF,&lt;br /&gt;
 				0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6,&lt;br /&gt;
 				0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE,&lt;br /&gt;
 				0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485,&lt;br /&gt;
 				0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D,&lt;br /&gt;
 				0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4,&lt;br /&gt;
 				0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC,&lt;br /&gt;
 				0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823,&lt;br /&gt;
 				0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B,&lt;br /&gt;
 				0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12,&lt;br /&gt;
 				0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A,&lt;br /&gt;
 				0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41,&lt;br /&gt;
 				0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49,&lt;br /&gt;
 				0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70,&lt;br /&gt;
 				0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78,&lt;br /&gt;
 				0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F,&lt;br /&gt;
 				0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067,&lt;br /&gt;
 				0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E,&lt;br /&gt;
 				0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256,&lt;br /&gt;
 				0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D,&lt;br /&gt;
 				0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,&lt;br /&gt;
 				0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C,&lt;br /&gt;
 				0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634,&lt;br /&gt;
 				0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB,&lt;br /&gt;
 				0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3,&lt;br /&gt;
 				0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A,&lt;br /&gt;
 				0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92,&lt;br /&gt;
 				0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9,&lt;br /&gt;
 				0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1,&lt;br /&gt;
 				0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8,&lt;br /&gt;
 				0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0&lt;br /&gt;
 			};&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Determining the checksum==&lt;br /&gt;
*&#039;&#039;data&#039;&#039; is a byte array for a small block or big block.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 		public ushort GetCheckSum( byte[] data )&lt;br /&gt;
 		{&lt;br /&gt;
 			int sum = 0xFFFF;&lt;br /&gt;
 &lt;br /&gt;
 			for ( int i = 0; i &amp;lt; data.Length; i++ )&lt;br /&gt;
 				sum = (sum &amp;lt;&amp;lt; 8) ^ SeedTable[ (byte)(data[i] ^ (byte)(sum&amp;gt;&amp;gt;8)) ];&lt;br /&gt;
 &lt;br /&gt;
 			return (ushort)sum;&lt;br /&gt;
 		}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_NDS_Save_File_Checksum&amp;diff=475</id>
		<title>Pokémon NDS Save File Checksum</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_NDS_Save_File_Checksum&amp;diff=475"/>
		<updated>2009-03-10T21:27:59Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Determining the seeds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pokémon NDS uses a {{wplink|checksum|checksum}} at the footer each block in the [[Pokémon NDS Save File Structure|save file]] to ensure consistent data.&lt;br /&gt;
&lt;br /&gt;
==Diamong &amp;amp; Pearl usage==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 filestream.Seek( 0xCF0E, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( smallblock1 ); //small block 1&lt;br /&gt;
 filestream.Seek( 0x1E2DE, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( bigblock1 ); //big block 1&lt;br /&gt;
 filestream.Seek( 0x4CF0E, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( smallblock2 ); //small block 2&lt;br /&gt;
 filestream.Seek( 0x5E2DE, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( bigblock2 ); //big block 2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Platinum usage==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 filestream.Seek( 0xCF2A, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( smallblock1 ); //small block 1&lt;br /&gt;
 filestream.Seek( 0x1F10E, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( bigblock1 ); //big block 1&lt;br /&gt;
 filestream.Seek( 0x4CF2A, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( smallblock2 ); //small block 2&lt;br /&gt;
 filestream.Seek( 0x5F10E, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( bigblock2 ); //big block 2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Determining the seeds==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 		public static int[] SeedTable;&lt;br /&gt;
 &lt;br /&gt;
 		public static void GetSeeds()&lt;br /&gt;
 		{&lt;br /&gt;
 			SeedTable = new int[0x100];&lt;br /&gt;
 &lt;br /&gt;
 			int index = 0;&lt;br /&gt;
 			int result = 0;&lt;br /&gt;
 &lt;br /&gt;
 			do&lt;br /&gt;
 			{&lt;br /&gt;
 				result = index &amp;lt;&amp;lt; 8;&lt;br /&gt;
 				int index2 = 0;&lt;br /&gt;
 				do&lt;br /&gt;
 				{&lt;br /&gt;
 					if (((byte)(result&amp;gt;&amp;gt;8) &amp;amp; 0x80)!=0)&lt;br /&gt;
 						result = (2 * result )^ 0x1021;&lt;br /&gt;
 					else&lt;br /&gt;
 						result *= 2;&lt;br /&gt;
 				}&lt;br /&gt;
 				while (++index &amp;lt; 8);&lt;br /&gt;
 &lt;br /&gt;
 				seeds[index++] = (ushort)(result);&lt;br /&gt;
 			} while (index &amp;lt;= 0xFF);&lt;br /&gt;
 		}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Also a static list can be used with the following values:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 		public static readonly int[] SeedTable = new int[]&lt;br /&gt;
 			{&lt;br /&gt;
 				0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7,&lt;br /&gt;
 				0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF,&lt;br /&gt;
 				0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6,&lt;br /&gt;
 				0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE,&lt;br /&gt;
 				0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485,&lt;br /&gt;
 				0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D,&lt;br /&gt;
 				0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4,&lt;br /&gt;
 				0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC,&lt;br /&gt;
 				0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823,&lt;br /&gt;
 				0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B,&lt;br /&gt;
 				0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12,&lt;br /&gt;
 				0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A,&lt;br /&gt;
 				0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41,&lt;br /&gt;
 				0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49,&lt;br /&gt;
 				0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70,&lt;br /&gt;
 				0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78,&lt;br /&gt;
 				0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F,&lt;br /&gt;
 				0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067,&lt;br /&gt;
 				0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E,&lt;br /&gt;
 				0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256,&lt;br /&gt;
 				0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D,&lt;br /&gt;
 				0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,&lt;br /&gt;
 				0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C,&lt;br /&gt;
 				0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634,&lt;br /&gt;
 				0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB,&lt;br /&gt;
 				0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3,&lt;br /&gt;
 				0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A,&lt;br /&gt;
 				0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92,&lt;br /&gt;
 				0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9,&lt;br /&gt;
 				0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1,&lt;br /&gt;
 				0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8,&lt;br /&gt;
 				0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0&lt;br /&gt;
 			};&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Determining the checksum==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 		public ushort GetCheckSum( byte[] data )&lt;br /&gt;
 		{&lt;br /&gt;
 			int sum = 0xFFFF;&lt;br /&gt;
 &lt;br /&gt;
 			for ( int i = 0; i &amp;lt; data.Length; i++ )&lt;br /&gt;
 				sum = (sum &amp;lt;&amp;lt; 8) ^ SeedTable[ (byte)(data[i] ^ (byte)(sum&amp;gt;&amp;gt;8)) ];&lt;br /&gt;
 &lt;br /&gt;
 			return (ushort)sum;&lt;br /&gt;
 		}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_NDS_Save_File_Checksum&amp;diff=474</id>
		<title>Pokémon NDS Save File Checksum</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_NDS_Save_File_Checksum&amp;diff=474"/>
		<updated>2009-03-10T21:26:32Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: New page: Pokémon NDS uses a {{wplink|checksum|checksum}} at the footer each block in the save file to ensure consistent data.  ==Diamong &amp;amp; Pearl usage== &amp;lt;code&amp;gt;...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pokémon NDS uses a {{wplink|checksum|checksum}} at the footer each block in the [[Pokémon NDS Save File Structure|save file]] to ensure consistent data.&lt;br /&gt;
&lt;br /&gt;
==Diamong &amp;amp; Pearl usage==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 filestream.Seek( 0xCF0E, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( smallblock1 ); //small block 1&lt;br /&gt;
 filestream.Seek( 0x1E2DE, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( bigblock1 ); //big block 1&lt;br /&gt;
 filestream.Seek( 0x4CF0E, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( smallblock2 ); //small block 2&lt;br /&gt;
 filestream.Seek( 0x5E2DE, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( bigblock2 ); //big block 2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Platinum usage==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 filestream.Seek( 0xCF2A, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( smallblock1 ); //small block 1&lt;br /&gt;
 filestream.Seek( 0x1F10E, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( bigblock1 ); //big block 1&lt;br /&gt;
 filestream.Seek( 0x4CF2A, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( smallblock2 ); //small block 2&lt;br /&gt;
 filestream.Seek( 0x5F10E, SeekOrigin.Begin );&lt;br /&gt;
 GetCheckSum( bigblock2 ); //big block 2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Determining the seeds==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 		public static int[] SeedTable;&lt;br /&gt;
 &lt;br /&gt;
 		public static void GetSeeds()&lt;br /&gt;
 		{&lt;br /&gt;
 			SeedTable = new int[0x100];&lt;br /&gt;
 &lt;br /&gt;
 			int index = 0;&lt;br /&gt;
 			int result = 0;&lt;br /&gt;
 &lt;br /&gt;
 			do&lt;br /&gt;
 			{&lt;br /&gt;
 				result = index &amp;lt;&amp;lt; 8;&lt;br /&gt;
 				int index2 = 0;&lt;br /&gt;
 				do&lt;br /&gt;
 				{&lt;br /&gt;
 					if (((byte)(result&amp;gt;&amp;gt;8) &amp;amp; 0x80)!=0)&lt;br /&gt;
 						result = (2 * result )^ 0x1021;&lt;br /&gt;
 					else&lt;br /&gt;
 						result *= 2;&lt;br /&gt;
 				}&lt;br /&gt;
 				while (++index &amp;lt; 8);&lt;br /&gt;
 &lt;br /&gt;
 				seeds[index++] = (ushort)(result);&lt;br /&gt;
 			} while (index &amp;lt;= 0xFF);&lt;br /&gt;
 		}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Determining the checksum==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 		public ushort GetCheckSum( byte[] data )&lt;br /&gt;
 		{&lt;br /&gt;
 			int sum = 0xFFFF;&lt;br /&gt;
 &lt;br /&gt;
 			for ( int i = 0; i &amp;lt; data.Length; i++ )&lt;br /&gt;
 				sum = (sum &amp;lt;&amp;lt; 8) ^ SeedTable[ (byte)(data[i] ^ (byte)(sum&amp;gt;&amp;gt;8)) ];&lt;br /&gt;
 &lt;br /&gt;
 			return (ushort)sum;&lt;br /&gt;
 		}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Talk:Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=473</id>
		<title>Talk:Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Talk:Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=473"/>
		<updated>2009-03-10T20:31:50Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* CheckSum Algorithm */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I just updated this page with slightly revised information on how the game determines which save blocks are most current.  Turns out even Pokésav isn&#039;t programmed to pick up on an instance where both big blocks have the same ID number, which means my programs now read the save file more accurately than Pokésav.  Interesting.  --[[User:Codemonkey85|Codemonkey85]], 02/19/09 4:49 AM EST&lt;br /&gt;
&lt;br /&gt;
Sabresite, I noticed your comment in the Bulbapedia page on the Pokémon NDS save file structure.  I&#039;m not terribly competent at wiki markup, so if you want to make either page look prettier, that&#039;s cool... as for content, would it be okay to copy the info from this page to the Bulbapedia one?  I wrote both (with help from loadingNOW), so I don&#039;t see a problem, but I know you guys are trying to keep this wiki under wraps.&lt;br /&gt;
&lt;br /&gt;
Also, I&#039;d really like to add the save block checksum algorithms, but I can&#039;t really do it without either posting it in VB.Net (which everyone hates), or directly plagiarizing loadingNOW by posting it in C++.  Unless there&#039;s a more language-independent way to format it.--[[User:Codemonkey85|Codemonkey85]], 02/26/09 12:22 PM EST&lt;br /&gt;
&lt;br /&gt;
== CheckSum Algorithm ==&lt;br /&gt;
&lt;br /&gt;
Please post the checksum algorithm in C++-like syntax.  The code loadingNOW used was standard pseudo-language. [[User:Sabresite|Sabresite]] 20:44, 4 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
So it&#039;s okay to use loadingNOW&#039;s example?  Otherwise I&#039;ll just run my code in a converter and see what pops out. --[[User:Codemonkey85|Codemonkey85]] 12:01, 6 March 2009 (EST)&lt;br /&gt;
&lt;br /&gt;
I am pretty sure loadingNOW would have no qualms with his code being posted. But we can always ask him. Of course, it might be a good idea to link to his document in a credits sections. [[User:SCV|SCV]] 17:43, 6 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[LoadingNOW]] said its okay to use his document. We can also link to it so people can see the original. [[User:SCV|SCV]] 23:59, 7 March 2009 (UTC)&lt;br /&gt;
:This is now a moot point since we optimized a checksum algorithm for both games.  What we should do is put it into a separate article, so that both DP/Platinum save file structure files can link to it.[[User:Sabresite|Sabresite]] 20:31, 10 March 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Talk:Pok%C3%A9mon_NDS_Save_File_Structure&amp;diff=472</id>
		<title>Talk:Pokémon NDS Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Talk:Pok%C3%A9mon_NDS_Save_File_Structure&amp;diff=472"/>
		<updated>2009-03-10T20:30:30Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: Talk:Pokémon NDS Save File Structure moved to Talk:Pokémon DP Save File Structure&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Talk:Pokémon DP Save File Structure]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Talk:Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=471</id>
		<title>Talk:Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Talk:Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=471"/>
		<updated>2009-03-10T20:30:30Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: Talk:Pokémon NDS Save File Structure moved to Talk:Pokémon DP Save File Structure&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I just updated this page with slightly revised information on how the game determines which save blocks are most current.  Turns out even Pokésav isn&#039;t programmed to pick up on an instance where both big blocks have the same ID number, which means my programs now read the save file more accurately than Pokésav.  Interesting.  --[[User:Codemonkey85|Codemonkey85]], 02/19/09 4:49 AM EST&lt;br /&gt;
&lt;br /&gt;
Sabresite, I noticed your comment in the Bulbapedia page on the Pokémon NDS save file structure.  I&#039;m not terribly competent at wiki markup, so if you want to make either page look prettier, that&#039;s cool... as for content, would it be okay to copy the info from this page to the Bulbapedia one?  I wrote both (with help from loadingNOW), so I don&#039;t see a problem, but I know you guys are trying to keep this wiki under wraps.&lt;br /&gt;
&lt;br /&gt;
Also, I&#039;d really like to add the save block checksum algorithms, but I can&#039;t really do it without either posting it in VB.Net (which everyone hates), or directly plagiarizing loadingNOW by posting it in C++.  Unless there&#039;s a more language-independent way to format it.--[[User:Codemonkey85|Codemonkey85]], 02/26/09 12:22 PM EST&lt;br /&gt;
&lt;br /&gt;
== CheckSum Algorithm ==&lt;br /&gt;
&lt;br /&gt;
Please post the checksum algorithm in C++-like syntax.  The code loadingNOW used was standard pseudo-language. [[User:Sabresite|Sabresite]] 20:44, 4 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
So it&#039;s okay to use loadingNOW&#039;s example?  Otherwise I&#039;ll just run my code in a converter and see what pops out. --[[User:Codemonkey85|Codemonkey85]] 12:01, 6 March 2009 (EST)&lt;br /&gt;
&lt;br /&gt;
I am pretty sure loadingNOW would have no qualms with his code being posted. But we can always ask him. Of course, it might be a good idea to link to his document in a credits sections. [[User:SCV|SCV]] 17:43, 6 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[LoadingNOW]] said its okay to use his document. We can also link to it so people can see the original. [[User:SCV|SCV]] 23:59, 7 March 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_NDS_Save_File_Structure&amp;diff=470</id>
		<title>Pokémon NDS Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_NDS_Save_File_Structure&amp;diff=470"/>
		<updated>2009-03-10T20:30:29Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: Pokémon NDS Save File Structure moved to Pokémon DP Save File Structure&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Pokémon DP Save File Structure]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=469</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=469"/>
		<updated>2009-03-10T20:30:29Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: Pokémon NDS Save File Structure moved to Pokémon DP Save File Structure&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond, Pearl, and Platinum save file is broken down into two pairs of blocks.  Each pair consists of one small block and one big block.  One big block contains current information regarding the PC storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  One small block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The other pair of blocks is a backup of the saved information.&lt;br /&gt;
&lt;br /&gt;
The first small block in the file begins at 0x00000.  The first big block begins at 0x0C100.  The second small and big blocks are at the same address + 0x40000.  It is important to note that the current small and current big blocks are not always stored in order in the save file (i.e. if the second small block is the more current, the first or second big block can possibly be the more current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 0x14 bytes of each save block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* If it is a big or small block&lt;br /&gt;
* If it is a current block or a backup block.&lt;br /&gt;
* Which big/small block it links to.&lt;br /&gt;
&lt;br /&gt;
Here is the structure of the block footer:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Small block offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Limited to 0xF423F (99,999)&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
*Determines the sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Fly Locations - 0x1112===&lt;br /&gt;
*9byte bit field&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
*List of [[Berry Tree#Locations|Berry Tree locations]]&lt;br /&gt;
{{main|Berry Tree(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*List of [[Safari Zone Pokémon#Pokémon list|Safari Zone Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*List of [[Swarm Pokémon#Pokémon list|Swarm Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Today - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Yesterday - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Yesterday&#039;s Pokémon can be caught after beating the [[Elite 4]] and receiving the [[National Pokédex upgrade]].&lt;br /&gt;
&lt;br /&gt;
===Honey Trees - 0x72E4===&lt;br /&gt;
*21 blocks of 8byte structures&lt;br /&gt;
*List of [[Honey Tree#Locations|Honey Tree locations]]&lt;br /&gt;
{{main|Honey Tree(Technical)|Honey Trees}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=468</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=468"/>
		<updated>2009-03-10T20:30:01Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Small block offsets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond, Pearl, and Platinum save file is broken down into two pairs of blocks.  Each pair consists of one small block and one big block.  One big block contains current information regarding the PC storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  One small block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The other pair of blocks is a backup of the saved information.&lt;br /&gt;
&lt;br /&gt;
The first small block in the file begins at 0x00000.  The first big block begins at 0x0C100.  The second small and big blocks are at the same address + 0x40000.  It is important to note that the current small and current big blocks are not always stored in order in the save file (i.e. if the second small block is the more current, the first or second big block can possibly be the more current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 0x14 bytes of each save block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* If it is a big or small block&lt;br /&gt;
* If it is a current block or a backup block.&lt;br /&gt;
* Which big/small block it links to.&lt;br /&gt;
&lt;br /&gt;
Here is the structure of the block footer:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Small block offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Limited to 0xF423F (99,999)&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
*Determines the sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Fly Locations - 0x1112===&lt;br /&gt;
*9byte bit field&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
*List of [[Berry Tree#Locations|Berry Tree locations]]&lt;br /&gt;
{{main|Berry Tree(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*List of [[Safari Zone Pokémon#Pokémon list|Safari Zone Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*List of [[Swarm Pokémon#Pokémon list|Swarm Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Today - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Yesterday - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Yesterday&#039;s Pokémon can be caught after beating the [[Elite 4]] and receiving the [[National Pokédex upgrade]].&lt;br /&gt;
&lt;br /&gt;
===Honey Trees - 0x72E4===&lt;br /&gt;
*21 blocks of 8byte structures&lt;br /&gt;
*List of [[Honey Tree#Locations|Honey Tree locations]]&lt;br /&gt;
{{main|Honey Tree(Technical)|Honey Trees}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=467</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=467"/>
		<updated>2009-03-10T20:22:29Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Multiplayer Avatar - 0x7F */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond, Pearl, and Platinum save file is broken down into two pairs of blocks.  Each pair consists of one small block and one big block.  One big block contains current information regarding the PC storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  One small block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The other pair of blocks is a backup of the saved information.&lt;br /&gt;
&lt;br /&gt;
The first small block in the file begins at 0x00000.  The first big block begins at 0x0C100.  The second small and big blocks are at the same address + 0x40000.  It is important to note that the current small and current big blocks are not always stored in order in the save file (i.e. if the second small block is the more current, the first or second big block can possibly be the more current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 0x14 bytes of each save block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* If it is a big or small block&lt;br /&gt;
* If it is a current block or a backup block.&lt;br /&gt;
* Which big/small block it links to.&lt;br /&gt;
&lt;br /&gt;
Here is the structure of the block footer:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Small block offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Limited to 0xF423F (99,999)&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
*Determines the sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
*List of [[Berry Tree#Locations|Berry Tree locations]]&lt;br /&gt;
{{main|Berry Tree(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*List of [[Safari Zone Pokémon#Pokémon list|Safari Zone Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*List of [[Swarm Pokémon#Pokémon list|Swarm Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Today - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Yesterday - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Yesterday&#039;s Pokémon can be caught after beating the [[Elite 4]] and receiving the [[National Pokédex upgrade]].&lt;br /&gt;
&lt;br /&gt;
===Honey Trees - 0x72E4===&lt;br /&gt;
*21 blocks of 8byte structures&lt;br /&gt;
*List of [[Honey Tree#Locations|Honey Tree locations]]&lt;br /&gt;
{{main|Honey Tree(Technical)|Honey Trees}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=466</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=466"/>
		<updated>2009-03-10T20:10:14Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Small block offsets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond, Pearl, and Platinum save file is broken down into two pairs of blocks.  Each pair consists of one small block and one big block.  One big block contains current information regarding the PC storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  One small block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The other pair of blocks is a backup of the saved information.&lt;br /&gt;
&lt;br /&gt;
The first small block in the file begins at 0x00000.  The first big block begins at 0x0C100.  The second small and big blocks are at the same address + 0x40000.  It is important to note that the current small and current big blocks are not always stored in order in the save file (i.e. if the second small block is the more current, the first or second big block can possibly be the more current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 0x14 bytes of each save block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* If it is a big or small block&lt;br /&gt;
* If it is a current block or a backup block.&lt;br /&gt;
* Which big/small block it links to.&lt;br /&gt;
&lt;br /&gt;
Here is the structure of the block footer:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Small block offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Limited to 0xF423F (99,999)&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Determines the sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
*List of [[Berry Tree#Locations|Berry Tree locations]]&lt;br /&gt;
{{main|Berry Tree(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each {{wplink|word_(computing)|word}} represents a character in the game&#039;s [[Pokémon NDS Character Table|character table]].&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*List of [[Safari Zone Pokémon#Pokémon list|Safari Zone Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*List of [[Swarm Pokémon#Pokémon list|Swarm Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Today - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Yesterday - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Yesterday&#039;s Pokémon can be caught after beating the [[Elite 4]] and receiving the [[National Pokédex upgrade]].&lt;br /&gt;
&lt;br /&gt;
===Honey Trees - 0x72E4===&lt;br /&gt;
*21 blocks of 8byte structures&lt;br /&gt;
*List of [[Honey Tree#Locations|Honey Tree locations]]&lt;br /&gt;
{{main|Honey Tree(Technical)|Honey Trees}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Template:Wplink&amp;diff=465</id>
		<title>Template:Wplink</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Template:Wplink&amp;diff=465"/>
		<updated>2009-03-10T20:08:20Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: Protected &amp;quot;Template:Wplink&amp;quot; [edit=sysop:move=sysop]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.wikipedia.org/wiki/{{{1}}} {{{2}}}]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Template:Wplink&amp;diff=464</id>
		<title>Template:Wplink</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Template:Wplink&amp;diff=464"/>
		<updated>2009-03-10T20:08:11Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: New page: [http://www.wikipedia.org/wiki/{{{1}}} {{{2}}}]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.wikipedia.org/wiki/{{{1}}} {{{2}}}]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=463</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=463"/>
		<updated>2009-03-10T20:03:28Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Multiplayer Avatar - 0x7F */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond, Pearl, and Platinum save file is broken down into two pairs of blocks.  Each pair consists of one small block and one big block.  One big block contains current information regarding the PC storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  One small block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The other pair of blocks is a backup of the saved information.&lt;br /&gt;
&lt;br /&gt;
The first small block in the file begins at 0x00000.  The first big block begins at 0x0C100.  The second small and big blocks are at the same address + 0x40000.  It is important to note that the current small and current big blocks are not always stored in order in the save file (i.e. if the second small block is the more current, the first or second big block can possibly be the more current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 0x14 bytes of each save block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* If it is a big or small block&lt;br /&gt;
* If it is a current block or a backup block.&lt;br /&gt;
* Which big/small block it links to.&lt;br /&gt;
&lt;br /&gt;
Here is the structure of the block footer:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Small block offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each two byte word represents a character in the game&#039;s character table.&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Limited to 0xF423F (99,999)&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Determines the sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
*List of [[Berry Tree#Locations|Berry Tree locations]]&lt;br /&gt;
{{main|Berry Tree(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each two byte word represents a character in the game&#039;s character table.&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*List of [[Safari Zone Pokémon#Pokémon list|Safari Zone Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*List of [[Swarm Pokémon#Pokémon list|Swarm Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Today - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Yesterday - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Yesterday&#039;s Pokémon can be caught after beating the [[Elite 4]] and receiving the [[National Pokédex upgrade]].&lt;br /&gt;
&lt;br /&gt;
===Honey Trees - 0x72E4===&lt;br /&gt;
*21 blocks of 8byte structures&lt;br /&gt;
*List of [[Honey Tree#Locations|Honey Tree locations]]&lt;br /&gt;
{{main|Honey Tree(Technical)|Honey Trees}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=462</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=462"/>
		<updated>2009-03-10T20:01:36Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Money - 0x78 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond, Pearl, and Platinum save file is broken down into two pairs of blocks.  Each pair consists of one small block and one big block.  One big block contains current information regarding the PC storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  One small block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The other pair of blocks is a backup of the saved information.&lt;br /&gt;
&lt;br /&gt;
The first small block in the file begins at 0x00000.  The first big block begins at 0x0C100.  The second small and big blocks are at the same address + 0x40000.  It is important to note that the current small and current big blocks are not always stored in order in the save file (i.e. if the second small block is the more current, the first or second big block can possibly be the more current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 0x14 bytes of each save block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* If it is a big or small block&lt;br /&gt;
* If it is a current block or a backup block.&lt;br /&gt;
* Which big/small block it links to.&lt;br /&gt;
&lt;br /&gt;
Here is the structure of the block footer:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Small block offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each two byte word represents a character in the game&#039;s character table.&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Limited to 0xF423F (99,999)&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Determines sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
*List of [[Berry Tree#Locations|Berry Tree locations]]&lt;br /&gt;
{{main|Berry Tree(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each two byte word represents a character in the game&#039;s character table.&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*List of [[Safari Zone Pokémon#Pokémon list|Safari Zone Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*List of [[Swarm Pokémon#Pokémon list|Swarm Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Today - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Yesterday - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Yesterday&#039;s Pokémon can be caught after beating the [[Elite 4]] and receiving the [[National Pokédex upgrade]].&lt;br /&gt;
&lt;br /&gt;
===Honey Trees - 0x72E4===&lt;br /&gt;
*21 blocks of 8byte structures&lt;br /&gt;
*List of [[Honey Tree#Locations|Honey Tree locations]]&lt;br /&gt;
{{main|Honey Tree(Technical)|Honey Trees}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=461</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=461"/>
		<updated>2009-03-10T19:57:04Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Offsets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond, Pearl, and Platinum save file is broken down into two pairs of blocks.  Each pair consists of one small block and one big block.  One big block contains current information regarding the PC storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  One small block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The other pair of blocks is a backup of the saved information.&lt;br /&gt;
&lt;br /&gt;
The first small block in the file begins at 0x00000.  The first big block begins at 0x0C100.  The second small and big blocks are at the same address + 0x40000.  It is important to note that the current small and current big blocks are not always stored in order in the save file (i.e. if the second small block is the more current, the first or second big block can possibly be the more current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 0x14 bytes of each save block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* If it is a big or small block&lt;br /&gt;
* If it is a current block or a backup block.&lt;br /&gt;
* Which big/small block it links to.&lt;br /&gt;
&lt;br /&gt;
Here is the structure of the block footer:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Small block offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each two byte word represents a character in the game&#039;s character table.&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 24bit integer.&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Determines sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
*List of [[Berry Tree#Locations|Berry Tree locations]]&lt;br /&gt;
{{main|Berry Tree(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each two byte word represents a character in the game&#039;s character table.&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*List of [[Safari Zone Pokémon#Pokémon list|Safari Zone Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*List of [[Swarm Pokémon#Pokémon list|Swarm Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Today - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Yesterday - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Yesterday&#039;s Pokémon can be caught after beating the [[Elite 4]] and receiving the [[National Pokédex upgrade]].&lt;br /&gt;
&lt;br /&gt;
===Honey Trees - 0x72E4===&lt;br /&gt;
*21 blocks of 8byte structures&lt;br /&gt;
*List of [[Honey Tree#Locations|Honey Tree locations]]&lt;br /&gt;
{{main|Honey Tree(Technical)|Honey Trees}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=460</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=460"/>
		<updated>2009-03-10T19:54:06Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Offsets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond, Pearl, and Platinum save file is broken down into two pairs of blocks.  Each pair consists of one small block and one big block.  One big block contains current information regarding the PC storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  One small block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The other pair of blocks is a backup of the saved information.&lt;br /&gt;
&lt;br /&gt;
The first small block in the file begins at 0x00000.  The first big block begins at 0x0C100.  The second small and big blocks are at the same address + 0x40000.  It is important to note that the current small and current big blocks are not always stored in order in the save file (i.e. if the second small block is the more current, the first or second big block can possibly be the more current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 0x14 bytes of each save block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* If it is a big or small block&lt;br /&gt;
* If it is a current block or a backup block.&lt;br /&gt;
* Which big/small block it links to.&lt;br /&gt;
&lt;br /&gt;
Here is the structure of the block footer:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each two byte word represents a character in the game&#039;s character table.&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 24bit integer.&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Determines sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
*List of [[Berry Tree#Locations|Berry Tree locations]]&lt;br /&gt;
{{main|Berry Tree(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each two byte word represents a character in the game&#039;s character table.&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*List of [[Safari Zone Pokémon#Pokémon list|Safari Zone Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*List of [[Swarm Pokémon#Pokémon list|Swarm Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Today - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Yesterday - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*List of [[Daily Trophy Pokémon#Pokémon list|Daily Trophy Pokémon]]&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Yesterday&#039;s Pokémon can be caught after beating the [[Elite 4]] and receiving the [[National Pokédex upgrade]].&lt;br /&gt;
&lt;br /&gt;
===Honey Trees - 0x72E4===&lt;br /&gt;
*21 blocks of 8byte structures&lt;br /&gt;
*List of [[Honey Tree#Locations|Honey Tree locations]]&lt;br /&gt;
{{main|Honey Tree(Technical)|Honey Trees}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=459</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=459"/>
		<updated>2009-03-10T19:45:08Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Offsets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond, Pearl, and Platinum save file is broken down into two pairs of blocks.  Each pair consists of one small block and one big block.  One big block contains current information regarding the PC storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  One small block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The other pair of blocks is a backup of the saved information.&lt;br /&gt;
&lt;br /&gt;
The first small block in the file begins at 0x00000.  The first big block begins at 0x0C100.  The second small and big blocks are at the same address + 0x40000.  It is important to note that the current small and current big blocks are not always stored in order in the save file (i.e. if the second small block is the more current, the first or second big block can possibly be the more current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 0x14 bytes of each save block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* If it is a big or small block&lt;br /&gt;
* If it is a current block or a backup block.&lt;br /&gt;
* Which big/small block it links to.&lt;br /&gt;
&lt;br /&gt;
Here is the structure of the block footer:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each two byte word represents a character in the game&#039;s character table.&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 24bit integer.&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Determines sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
{{main|Berry Trees(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each two byte word represents a character in the game&#039;s character table.&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*{{slink|Safari Zone Pokémon|Safari Zone Pokémon index}} list&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*{{slink|Swarm Pokémon|Swarm Pokémon index}} list&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Today - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*{{slink|Daily Trophy Pokémon|Daily Trophy Pokémon index}} list&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon Yesterday - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*{{slink|Daily Trophy Pokémon|Daily Trophy Pokémon index}} list&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Yesterday&#039;s Pokémon can be caught after beating the [[Elite 4]] and receiving the [[National Pokédex upgrade]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=458</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=458"/>
		<updated>2009-03-10T19:26:30Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Offsets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond, Pearl, and Platinum save file is broken down into two pairs of blocks.  Each pair consists of one small block and one big block.  One big block contains current information regarding the PC storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  One small block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The other pair of blocks is a backup of the saved information.&lt;br /&gt;
&lt;br /&gt;
The first small block in the file begins at 0x00000.  The first big block begins at 0x0C100.  The second small and big blocks are at the same address + 0x40000.  It is important to note that the current small and current big blocks are not always stored in order in the save file (i.e. if the second small block is the more current, the first or second big block can possibly be the more current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 0x14 bytes of each save block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* If it is a big or small block&lt;br /&gt;
* If it is a current block or a backup block.&lt;br /&gt;
* Which big/small block it links to.&lt;br /&gt;
&lt;br /&gt;
Here is the structure of the block footer:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each two byte word represents a character in the game&#039;s character table.&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 24bit integer.&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Determines sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Berry Trees - 0x1E84===&lt;br /&gt;
*128 blocks of 14byte structures&lt;br /&gt;
{{main|Berry Trees(Technical)|Berry Trees}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each two byte word represents a character in the game&#039;s character table.&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four daily safari zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*{{slink|Safari Zone Pokémon|Safari Zone Pokémon index}} list&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One daily swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*{{slink|Swarm Pokémon|Swarm Pokémon index}} list&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon 1 - 0x72DC===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*First daily trophy garden Pokémon&lt;br /&gt;
*{{slink|Daily Trophy Pokémon|Daily Trophy Pokémon index}} list&lt;br /&gt;
&lt;br /&gt;
===Daily Trophy Pokémon 2 - 0x72DE===&lt;br /&gt;
*Unsigned 8bit integer&lt;br /&gt;
*Second daily trophy garden Pokémon&lt;br /&gt;
*{{slink|Daily Trophy Pokémon|Daily Trophy Pokémon index}} list&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=457</id>
		<title>Pokémon DP Save File Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pok%C3%A9mon_DP_Save_File_Structure&amp;diff=457"/>
		<updated>2009-03-10T19:15:07Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Offsets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Save File Structure ==&lt;br /&gt;
&lt;br /&gt;
A Pokémon Diamond, Pearl, and Platinum save file is broken down into two pairs of blocks.  Each pair consists of one small block and one big block.  One big block contains current information regarding the PC storage system, including stored Pokémon, box names, box wallpapers, and the current open box.  One small block contains current information on every other aspect of the game&#039;s progress, such as the trainer&#039;s name, ID number, acquired badges, party Pokémon, items, and much more.  The other pair of blocks is a backup of the saved information.&lt;br /&gt;
&lt;br /&gt;
The first small block in the file begins at 0x00000.  The first big block begins at 0x0C100.  The second small and big blocks are at the same address + 0x40000.  It is important to note that the current small and current big blocks are not always stored in order in the save file (i.e. if the second small block is the more current, the first or second big block can possibly be the more current as well).&lt;br /&gt;
&lt;br /&gt;
== Block Footers ==&lt;br /&gt;
&lt;br /&gt;
The last 0x14 bytes of each save block is a footer.  The footer is used to determine:&lt;br /&gt;
&lt;br /&gt;
* If it is a big or small block&lt;br /&gt;
* If it is a current block or a backup block.&lt;br /&gt;
* Which big/small block it links to.&lt;br /&gt;
&lt;br /&gt;
Here is the structure of the block footer:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00 - 0x03&lt;br /&gt;
| Save ID number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04 - 0x07&lt;br /&gt;
| Save index number&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08 - 0x0B&lt;br /&gt;
| Size of block&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C - 0x0F&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10 - 0x11&lt;br /&gt;
| Unknown&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x12 - 0x13&lt;br /&gt;
| Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Loading/Saving A Save File ==&lt;br /&gt;
&lt;br /&gt;
When the game loads the save file, it first compares the save index number of each small block.  If the small block with the highest save index number has a correct checksum, then the game checks to see which big block has a matching ID number.  If both big blocks have the same ID number as the small block, then the big block with the highest save index number is chosen.  If the big block chosen by the save file has a correct checksum, then the game loads successfully.  If the checksum is incorrect in either the small or big block, the game reverts to the other block pair.  If either of their checksums are incorrect, then no data is loaded, and a new game must be started.&lt;br /&gt;
&lt;br /&gt;
When the game saves data, the save index number is incremented + 1 from the current save index number, and the backup small block is overwritten with the new data.&lt;br /&gt;
&lt;br /&gt;
If nothing in the big block has changed, then the save ID number in both blocks is retained.  However, if changes have been made to the big block, then the backup big block is overwritten with the new data, and a new save ID number is generated, which is then written to the new small block.  This is the reason why the game varies on how long it takes to save.&lt;br /&gt;
&lt;br /&gt;
Thus, either small block can be linked with either big block, and the current pair is identified using the footer information.&lt;br /&gt;
&lt;br /&gt;
==Offsets==&lt;br /&gt;
&lt;br /&gt;
===Adventure Started - 0x34===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Pokémon League Champ Date - 0x3C===&lt;br /&gt;
*Unsigned 32bit integer.&lt;br /&gt;
*Number of seconds since 1/1/2000 00:00:00&lt;br /&gt;
&lt;br /&gt;
===Trainer Name - 0x64===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each two byte word represents a character in the game&#039;s character table.&lt;br /&gt;
&lt;br /&gt;
===Trainer ID - 0x74===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
*The visible identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Secret ID - 0x76===&lt;br /&gt;
*Random unsigned 16bit integer&lt;br /&gt;
* The hidden identification number of a trainer&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
*Determines variation in the game.&lt;br /&gt;
&lt;br /&gt;
===Money - 0x78===&lt;br /&gt;
*Unsigned 24bit integer.&lt;br /&gt;
&lt;br /&gt;
===Trainer Gender - 0x7C===&lt;br /&gt;
*0 if male, 1 if female.&lt;br /&gt;
*Determines ownership of Pokémon.&lt;br /&gt;
&lt;br /&gt;
===Multiplayer Avatar - 0x7F===&lt;br /&gt;
*Determines sprite seen by other players in a multiplayer environment such as the Union Room.&lt;br /&gt;
: 0x00 = None&lt;br /&gt;
: 0x03 = School Kid&lt;br /&gt;
: 0x05 = Bug Catcher&lt;br /&gt;
: 0x06 = Lass&lt;br /&gt;
: 0x07 = Battle Girl&lt;br /&gt;
: 0x0B = Ace Trainer Male&lt;br /&gt;
: 0x0D = Beauty&lt;br /&gt;
: 0x0E = Ace Trainer Female&lt;br /&gt;
: 0x0F = Roughneck&lt;br /&gt;
: 0x1F = Pop Idol&lt;br /&gt;
: 0x23 = Social&lt;br /&gt;
: 0x25 = Cowgirl&lt;br /&gt;
: 0x2A = Ruin Maniac&lt;br /&gt;
: 0x32 = Black Belt&lt;br /&gt;
: 0x3E = Rich Boy&lt;br /&gt;
: 0x3F = Lady&lt;br /&gt;
: 0x46 = Psychic&lt;br /&gt;
&lt;br /&gt;
===Number of Current Party Pokémon - 0x94===&lt;br /&gt;
*Unsigned 8bit integer.&lt;br /&gt;
&lt;br /&gt;
===Party Pokémon - 0x98===&lt;br /&gt;
The Pokémon in the trainer&#039;s party.&lt;br /&gt;
*6 blocks of 236 byte structures&lt;br /&gt;
{{main|Pokemon NDS Structure}}&lt;br /&gt;
&lt;br /&gt;
===Rival&#039;s Name - 0x25A8===&lt;br /&gt;
*8 unsigned 16bit integers.&lt;br /&gt;
*Each two byte word represents a character in the game&#039;s character table.&lt;br /&gt;
&lt;br /&gt;
===Safari Zone Pokémon - 0x72D0===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*Four Daily Safari Zone Pokémon&lt;br /&gt;
*&#039;&#039;Index&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&#039;&#039; = ( &#039;&#039;ARNG&#039;&#039; &amp;gt;&amp;gt; ( &#039;&#039;n&#039;&#039; * 0x5 ) ) &amp;amp; 0x1F&lt;br /&gt;
*{{slink|Safari Zone Pokémon|Safari Zone Pokémon index}} list&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both Safari Zone Pokémon and [[#Swarm Pokémon - 0x72D0|Swarm Pokémon]] have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
===Swarm Pokémon - 0x72D4===&lt;br /&gt;
*Unsigned 32bit integer result from the [[ARNG]].&lt;br /&gt;
*One Daily Swarm Pokémon&lt;br /&gt;
*&#039;&#039;Index&#039;&#039; = &#039;&#039;ARNG&#039;&#039; % 0x1C&lt;br /&gt;
*{{slink|Swarm Pokémon|Swarm Pokémon index}} list&lt;br /&gt;
*&#039;&#039;Notes&#039;&#039;: Both [[#Safari Zone Pokémon - 0x72D0|Safari Zone Pokémon]] and Swarm Pokémon have the same [[ARNG]] value.&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pokemon_Save_Structure&amp;diff=456</id>
		<title>Pokemon Save Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pokemon_Save_Structure&amp;diff=456"/>
		<updated>2009-03-10T19:03:40Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Save File Location */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pokémon in the games Pokémon [[Pokemon Diamond|Diamond]], [[Pokemon Pearl|Pearl]], and [[Pokemon Platinum|Platinum]] are stored in a 136 byte or 236 byte structures.  All unencrypted values are stored in [[little-endian|little-endian]] format.  The game encrypts the data when it is stored in the [[Pokemon NDS Save Structure|save file]].  Party Pokémon have additional values to hold current battle stats and conditions.  The information below describes the Pokémon data format.&lt;br /&gt;
&lt;br /&gt;
== Checksum ==&lt;br /&gt;
&lt;br /&gt;
The checksum serves two purposes:&lt;br /&gt;
# It validates the data after decryption, and&lt;br /&gt;
# It serves as the encryption key for the data.&lt;br /&gt;
&lt;br /&gt;
The checksum is calculated in three steps:&lt;br /&gt;
# Split the unencrypted data from offsets 0x08 to 0x87 into two-byte words,&lt;br /&gt;
# Take the sum of the words, and&lt;br /&gt;
# Truncate the sum to 16 bits.&lt;br /&gt;
&lt;br /&gt;
== Block Shuffling ==&lt;br /&gt;
&lt;br /&gt;
The 128 bytes of Pokémon data are split into four 32-byte blocks for shuffling.  The blocks are shuffled according to a shift value derived from the [[personality value]].  Given the personality value &#039;&#039;pv&#039;&#039;, the expression yielding the shift value is:&lt;br /&gt;
: &#039;&#039;((pv &amp;gt;&amp;gt; 0xD) &amp;amp; 0x1F) % 24&#039;&#039;&lt;br /&gt;
The right shifting (pv &amp;gt;&amp;gt; 0xD) is equivalent to a division of 8192.&lt;br /&gt;
&lt;br /&gt;
To shuffle the blocks, take the four blocks of unencrypted data, &#039;&#039;A&#039;&#039;, &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039;, and &#039;&#039;D&#039;&#039;.  The blocks shall be rearranged in the encrypted data according to this table:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Shift Value (decimal)&lt;br /&gt;
! Block Order&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 00&lt;br /&gt;
| ABCD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 01&lt;br /&gt;
| ABDC&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 02&lt;br /&gt;
| ACBD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 03&lt;br /&gt;
| ACDB&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 04&lt;br /&gt;
| ADBC&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 05&lt;br /&gt;
| ADCB&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 06&lt;br /&gt;
| BACD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 07&lt;br /&gt;
| BADC&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 08&lt;br /&gt;
| BCAD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 09&lt;br /&gt;
| BCDA&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 10&lt;br /&gt;
| BDAC&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 11&lt;br /&gt;
| BDCA&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 12&lt;br /&gt;
| CABD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 13&lt;br /&gt;
| CADB&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 14&lt;br /&gt;
| CBAD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 15&lt;br /&gt;
| CBDA&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 16&lt;br /&gt;
| CDAB&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 17&lt;br /&gt;
| CDBA&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 18&lt;br /&gt;
| DABC&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 19&lt;br /&gt;
| DACB&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 20&lt;br /&gt;
| DBAC&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 21&lt;br /&gt;
| DBCA&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 22&lt;br /&gt;
| DCAB&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 23&lt;br /&gt;
| DCBA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Encryption ==&lt;br /&gt;
&lt;br /&gt;
The encryption uses the pseudorandom number generator (PRNG), a linear congruential generator.  Elements of the PRNG can be described with the recursive function:&lt;br /&gt;
: &#039;&#039;X[n+1] = (0x41C64E6D * X[n] + 0x6073)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To decrypt the data, given a function &#039;&#039;rand()&#039;&#039; which returns the upper 16 bits of consecutive results of the above given function:&lt;br /&gt;
# Seed the PRNG with the checksum (let &#039;&#039;X[n]&#039;&#039; be the checksum).&lt;br /&gt;
# Sequentially, for each 2-byte word &#039;&#039;Y&#039;&#039; from 0x08 to 0x87, apply the transformation: &#039;&#039;unencryptedByte = Y xor rand()&#039;&#039;&lt;br /&gt;
# Unshuffle the blocks using the block shuffling algorithm above.&lt;br /&gt;
&lt;br /&gt;
To encrypt the data:&lt;br /&gt;
# Shuffle the blocks using the block shuffling algorithm above.&lt;br /&gt;
# Seed the PRNG with the checksum (let &#039;&#039;X[n]&#039;&#039; be the checksum),&lt;br /&gt;
# Sequentially, for each 2-byte word &#039;&#039;Y&#039;&#039; from 0x08 to 0x87, apply the transformation: &#039;&#039;unencryptedByte = Y xor rand()&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Unencrypted bytes ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00-0x03&lt;br /&gt;
| [[Personality value]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04-0x05&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x06-0x07&lt;br /&gt;
| Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Encrypted bytes ==&lt;br /&gt;
=== Block A ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08-0x09 &lt;br /&gt;
| [[PokeDex|National PokéDex ID]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0A-0x0B &lt;br /&gt;
| [[Pokemon Items|Held Item]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C-0x0D&lt;br /&gt;
| [[Original Trainer|OT ID]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0E-0x0F &lt;br /&gt;
| [[Original Trainer|OT Secret ID]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10-0x13&lt;br /&gt;
| [[Experience Points|Experience points]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x14&lt;br /&gt;
| Friendship (Steps to Hatch if an egg)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x15&lt;br /&gt;
| [[Ability]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x16&lt;br /&gt;
| [[#Markings|Markings]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x17&lt;br /&gt;
| [[#Original Language|Original Language]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x18&lt;br /&gt;
| [[Effort Values#Hit Points|HP Effort Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x19&lt;br /&gt;
| [[Effort Values#Attack Points|Attack Effort Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1A&lt;br /&gt;
| [[Effort Values#Defense Points|Defense Effort Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1B&lt;br /&gt;
| [[Effort Values#Speed Points|Speed Effort Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1C&lt;br /&gt;
| [[Effort Values#Special Attack Points|SP Attack Effort Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1D&lt;br /&gt;
| [[Effort Values#Special Defense Points|SP Defense Effort Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1E&lt;br /&gt;
| [[Contest Stats#Cool|Cool Contest Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1F&lt;br /&gt;
| [[Contest Stats#Beauty|Beauty Contest Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| [[Contest Stats#Cute|Cute Contest Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x21&lt;br /&gt;
| [[Contest Stats#Smart|Smart Contest Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x22&lt;br /&gt;
| [[Contest Stats#Tough|Tough Contest Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x23&lt;br /&gt;
| [[Contest Stats#Sheen|Sheen Contest Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24-0x25&lt;br /&gt;
| [[#Sinnoh Ribbon Set 1|Sinnoh Ribbon Set 1]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26-0x27&lt;br /&gt;
| [[#Sinnoh Ribbon Set 2|Sinnoh Ribbon Set 2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Block B ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x28-0x29&lt;br /&gt;
| [[Pokemon Moves|Move 1 ID]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x2A-0x2B&lt;br /&gt;
| [[Pokemon Moves|Move 2 ID]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x2C-0x2D&lt;br /&gt;
| [[Pokemon Moves|Move 3 ID]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x2E-0x2F&lt;br /&gt;
| [[Pokemon Moves|Move 4 ID]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x30&lt;br /&gt;
| [[Pokemon Moves#Power Points|Move 1 Current PP]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x31&lt;br /&gt;
| [[Pokemon Moves#Power Points|Move 2 Current PP]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x32&lt;br /&gt;
| [[Pokemon Moves#Power Points|Move 3 Current PP]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x33&lt;br /&gt;
| [[Pokemon Moves#Power Points|Move 4 Current PP]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x34-0x37&lt;br /&gt;
| [[Pokemon Moves#Power Points|Move PP Ups]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x38-0x3B&lt;br /&gt;
| Bit 0 - IsEgg Flag&amp;lt;br&amp;gt;Bit 1 - IsNicknamed Flag&lt;br /&gt;
Bits 2-31 - [[Individual Values]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Hit Points|HP]] ( [0-31] &amp;lt;&amp;lt; 25 )&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Attack Points|Attack]] ( [0-31] &amp;lt;&amp;lt; 20 )&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Defense Points|Defense]] ( [0-31] &amp;lt;&amp;lt; 15 )&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Speed Points|Speed]] ( [0-31] &amp;lt;&amp;lt; 10 )&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Special Attack Points|SP Attack]] ( [0-31] &amp;lt;&amp;lt; 5 )&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Special Defense Points|SP Defense]] ( [0-31] &amp;lt;&amp;lt; 0 )&amp;lt;br&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C-0x3D&lt;br /&gt;
| [[#Hoenn Ribbon Set 1|Hoenn Ribbon Set 1]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E-0x3F&lt;br /&gt;
| [[#Hoenn Ribbon Set 2|Hoenn Ribbon Set 2]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x40-0x41&lt;br /&gt;
| Bit 0 - Fateful Encounter Flag&amp;lt;br&amp;gt;Bit 1 - Female&amp;lt;br&amp;gt;Bit 2 - Genderless&amp;lt;br&amp;gt;Bit 3-15 - [[#Alternate Forms|Alternate Forms]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x42-0x43&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x44-0x45&lt;br /&gt;
| Egg [[Pokemon NDS Locations#Egg Locations|Location]] (Platinum)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x46-0x47&lt;br /&gt;
| Met at [[Pokemon NDS Locations|Location]] (Platinum)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Block C ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x48-0x5D&lt;br /&gt;
| Nickname&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x5E&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x5F&lt;br /&gt;
| [[Pokemon Hometown|Hometown]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60-0x61&lt;br /&gt;
| [[#Sinnoh Ribbon Set 3|Sinnoh Ribbon Set 3]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x62-0x63&lt;br /&gt;
| [[#Sinnoh Ribbon Set 4|Sinnoh Ribbon Set 4]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x64-0x67&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Block D ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x68-0x77 &lt;br /&gt;
| [[Original Trainer|OT Name]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x78-0x7A &lt;br /&gt;
| Date Egg Received&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7B-0x7D&lt;br /&gt;
| Date Met&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7E-0x7F&lt;br /&gt;
| Egg [[Pokemon NDS Locations|Location]] (Diamond/Pearl)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x80-0x81&lt;br /&gt;
| Met At [[Pokemon NDS Locations|Location]] (Diamond/Pearl)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x82&lt;br /&gt;
| [[Pokerus|Pokérus]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x83&lt;br /&gt;
| [[Pokeball|PokéBall]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x84&lt;br /&gt;
| Bit 0-6 - Met At Level&amp;lt;br&amp;gt;Bit 7 - Female OT Gender&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x85&lt;br /&gt;
| [[#Encounter Types|Encounter Type]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x86-0x87&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Battle Stats ==&lt;br /&gt;
&lt;br /&gt;
The battle stats are encrypted in the same manner, however the seed is not the checksum, it is 0.&lt;br /&gt;
&lt;br /&gt;
=== Encrypted Bytes ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x88&lt;br /&gt;
| Bits 0-2 - Asleep (0-7 rounds)&amp;lt;br&amp;gt;Bit 4 - Poisoned&amp;lt;br&amp;gt;Bit 5 - Burned&amp;lt;br&amp;gt;Bit 6 - Frozen&amp;lt;br&amp;gt;Bit 7 - Paralyzed&amp;lt;br&amp;gt;Bit 8 - Toxic&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x89&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039; - Flags - Max Value 0xF0&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x8A-0x8B&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x8C&lt;br /&gt;
| Level&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x8D&lt;br /&gt;
| Capsule Index (Seals)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x8E-0x8F&lt;br /&gt;
| Current HP&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x90-0x91&lt;br /&gt;
| Max HP&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x92-0x93&lt;br /&gt;
| Attack&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x94-0x95&lt;br /&gt;
| Defense&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x96-0x97&lt;br /&gt;
| Speed&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x98-0x99&lt;br /&gt;
| Special Attack&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x9A-0x9B&lt;br /&gt;
| Special Defense&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x9C-0xEB&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039; - Contains Trash Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Original Language ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Language&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1&lt;br /&gt;
| 日本語 (Japan)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x2&lt;br /&gt;
| English (US/UK/AU)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3&lt;br /&gt;
| Français (France/Québec)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Italiano (Italy)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x5&lt;br /&gt;
| Deutsch (Germany)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7&lt;br /&gt;
| Español (Spain/Latin Americas)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x8&lt;br /&gt;
| 한국어 (South Korea)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Markings ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Marking&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x01&lt;br /&gt;
| Circle&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x02&lt;br /&gt;
| Triangle&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04&lt;br /&gt;
| Square&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Heart&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| Star&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| Diamond&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Alternate Forms ==&lt;br /&gt;
Alternate forms are stored at offset 0x40 of the Pokemon structure.  Each form follows the pattern of &#039;&#039;index &amp;lt;&amp;lt; 3&#039;&#039; where index starts at zero for the main form.&lt;br /&gt;
&lt;br /&gt;
=== Unown&#039;s Forms ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| A&lt;br /&gt;
| 0x38&lt;br /&gt;
| H&lt;br /&gt;
| 0x70&lt;br /&gt;
| O&lt;br /&gt;
| 0xA8&lt;br /&gt;
| V&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| B&lt;br /&gt;
| 0x40&lt;br /&gt;
| I&lt;br /&gt;
| 0x78&lt;br /&gt;
| P&lt;br /&gt;
| 0xB0&lt;br /&gt;
| W&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| C&lt;br /&gt;
| 0x48&lt;br /&gt;
| J&lt;br /&gt;
| 0x80&lt;br /&gt;
| Q&lt;br /&gt;
| 0xB8&lt;br /&gt;
| X&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x18&lt;br /&gt;
| D&lt;br /&gt;
| 0x50&lt;br /&gt;
| K&lt;br /&gt;
| 0x88&lt;br /&gt;
| R&lt;br /&gt;
| 0xC0&lt;br /&gt;
| Y&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| E&lt;br /&gt;
| 0x58&lt;br /&gt;
| L&lt;br /&gt;
| 0x90&lt;br /&gt;
| S&lt;br /&gt;
| 0xC8&lt;br /&gt;
| Z&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x28&lt;br /&gt;
| F&lt;br /&gt;
| 0x60&lt;br /&gt;
| M&lt;br /&gt;
| 0x98&lt;br /&gt;
| T&lt;br /&gt;
| 0xD0&lt;br /&gt;
| !&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x30&lt;br /&gt;
| G&lt;br /&gt;
| 0x68&lt;br /&gt;
| N&lt;br /&gt;
| 0xA0&lt;br /&gt;
| U&lt;br /&gt;
| 0xD8&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deoxy&#039;s Forms ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Normal&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Attack&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| Defense&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x18&lt;br /&gt;
| Speed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Burmy&#039;s &amp;amp; Wormadam&#039;s Forms ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Plant&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Sandy&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| Trash&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shellos&#039; &amp;amp; Gastrodon&#039;s Forms ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| West&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| East&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rotom&#039;s Forms ===&lt;br /&gt;
Rotom&#039;s alternate forms will only be displayed in Pokemon Platinum.  Rotom may be traded between Diamond, Pearl, and Platinum without losing the alternate form.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Normal&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Heat&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| Cut&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x18&lt;br /&gt;
| Wash&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| Frost&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x28&lt;br /&gt;
| Spin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Giratina&#039;s Forms ===&lt;br /&gt;
Giratina&#039;s alternate form will only be displayed in Pokemon Platinum.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Alternate&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Origine&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shaymin&#039;s Forms ===&lt;br /&gt;
Shaymin&#039;s alternate form will only be displayed in Pokemon Platinum.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Land&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Sky&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arceus&#039; Forms ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Normal&lt;br /&gt;
| 0x38&lt;br /&gt;
| Insect&lt;br /&gt;
| 0x68&lt;br /&gt;
| Zap&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Fist&lt;br /&gt;
| 0x40&lt;br /&gt;
| Spooky&lt;br /&gt;
| 0x70&lt;br /&gt;
| Mind&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| Sky&lt;br /&gt;
| 0x48&lt;br /&gt;
| Iron&lt;br /&gt;
| 0x78&lt;br /&gt;
| Icicle&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x18&lt;br /&gt;
| Toxic&lt;br /&gt;
| 0x50&lt;br /&gt;
| Flame&lt;br /&gt;
| 0x80&lt;br /&gt;
| Draco&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| Earth&lt;br /&gt;
| 0x58&lt;br /&gt;
| Splash&lt;br /&gt;
| 0x88&lt;br /&gt;
| Dread&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x28&lt;br /&gt;
| Stone&lt;br /&gt;
| 0x60&lt;br /&gt;
| Meadow&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Encounter Types ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Country&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0&lt;br /&gt;
| Pal Park, Egg, Hatched, Special Event&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x2&lt;br /&gt;
| Tall Grass&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Dialga/Palkia In-Game Event&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x5&lt;br /&gt;
| Cave, Hall of Origin&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7&lt;br /&gt;
| Surfing, Fishing&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x9&lt;br /&gt;
| Building&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA&lt;br /&gt;
| Great Marsh (Safari Zone)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xC&lt;br /&gt;
| Starter, Fossil, Gift (Eevee)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ribbons ==&lt;br /&gt;
Diamond, Pearl, and Platinum store the ribbon information as [[Bitfields|bitfields]] in 1-byte words.  Given below are the bytewise representation of the ribbon bitfields.&lt;br /&gt;
&lt;br /&gt;
=== Sinnoh Ribbon Set 1 ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x01&lt;br /&gt;
| Sinnoh Champ Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x02&lt;br /&gt;
| Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x04&lt;br /&gt;
| Great Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x08&lt;br /&gt;
| Double Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x10&lt;br /&gt;
| Multi Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x20&lt;br /&gt;
| Pair Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x40&lt;br /&gt;
| World Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x80&lt;br /&gt;
| Alert Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x01&lt;br /&gt;
| Shock Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x02&lt;br /&gt;
| Downcast Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x04&lt;br /&gt;
| Careless Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x08&lt;br /&gt;
| Relax Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x10&lt;br /&gt;
| Snooze Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x20&lt;br /&gt;
| Smile Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x40&lt;br /&gt;
| Gorgeous Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x80&lt;br /&gt;
| Royal Ribbon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sinnoh Ribbon Set 2 ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x01&lt;br /&gt;
| Gorgeous Royal Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x02&lt;br /&gt;
| Footprint Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x04&lt;br /&gt;
| Record Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x08&lt;br /&gt;
| History Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x10&lt;br /&gt;
| Legend Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x20&lt;br /&gt;
| Red Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x40&lt;br /&gt;
| Green Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x80&lt;br /&gt;
| Blue Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x27 &amp;amp; 0x01&lt;br /&gt;
| Festival Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x27 &amp;amp; 0x02&lt;br /&gt;
| Carnival Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x27 &amp;amp; 0x04&lt;br /&gt;
| Classic Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x27 &amp;amp; 0x08&lt;br /&gt;
| Premier Ribbon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sinnoh Ribbon Set 3 ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x01&lt;br /&gt;
| Cool Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x02&lt;br /&gt;
| Cool Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x04&lt;br /&gt;
| Cool Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x08&lt;br /&gt;
| Cool Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x10&lt;br /&gt;
| Beauty Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x20&lt;br /&gt;
| Beauty Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x40&lt;br /&gt;
| Beauty Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x80&lt;br /&gt;
| Beauty Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x01&lt;br /&gt;
| Cute Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x02&lt;br /&gt;
| Cute Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x04&lt;br /&gt;
| Cute Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x08&lt;br /&gt;
| Cute Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x10&lt;br /&gt;
| Smart Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x20&lt;br /&gt;
| Smart Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x40&lt;br /&gt;
| Smart Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x80&lt;br /&gt;
| Smart Ribbon Master&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sinnoh Ribbon Set 4 ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x62 &amp;amp; 0x01&lt;br /&gt;
| Tough Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x62 &amp;amp; 0x02&lt;br /&gt;
| Tough Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x62 &amp;amp; 0x04&lt;br /&gt;
| Tough Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x62 &amp;amp; 0x08&lt;br /&gt;
| Tough Ribbon Master&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hoenn Ribbon Set 1 ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x01&lt;br /&gt;
| Cool Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x02&lt;br /&gt;
| Cool Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x04&lt;br /&gt;
| Cool Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x08&lt;br /&gt;
| Cool Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x10&lt;br /&gt;
| Beauty Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x20&lt;br /&gt;
| Beauty Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x40&lt;br /&gt;
| Beauty Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x80&lt;br /&gt;
| Beauty Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x01&lt;br /&gt;
| Cute Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x02&lt;br /&gt;
| Cute Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x04&lt;br /&gt;
| Cute Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x08&lt;br /&gt;
| Cute Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x10&lt;br /&gt;
| Smart Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x20&lt;br /&gt;
| Smart Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x40&lt;br /&gt;
| Smart Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x80&lt;br /&gt;
| Smart Ribbon Master&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hoenn Ribbon Set 2 ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x01&lt;br /&gt;
| Tough Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x02&lt;br /&gt;
| Tough Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x04&lt;br /&gt;
| Tough Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x08&lt;br /&gt;
| Tough Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x10&lt;br /&gt;
| Champion Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x20&lt;br /&gt;
| Winning Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x40&lt;br /&gt;
| Victory Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x80&lt;br /&gt;
| Artist Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x01&lt;br /&gt;
| Effort Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x02&lt;br /&gt;
| Marine Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x04&lt;br /&gt;
| Land Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x08&lt;br /&gt;
| Sky Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x10&lt;br /&gt;
| Country Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x20&lt;br /&gt;
| National Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x40&lt;br /&gt;
| Earth Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x80&lt;br /&gt;
| World Ribbon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Save File Location ==&lt;br /&gt;
The party Pokémon are stored in the [[Pokémon NDS Save File Structure|save file]] beginning at offset 0x00098 for the first small block, and 0x40098 for the second small block.&lt;br /&gt;
&lt;br /&gt;
In the first small save block, the first Daycare Pokémon is located at 0x0141C, and the second is located at 0x01508.  In the second small block, the first Daycare Pokémon is located at 0x4141C, and the second is located at 0x41508.&lt;br /&gt;
&lt;br /&gt;
In the first small save block, the Pal Park Pokémon are stored beginning at 0x0BA28.  In the second small save block, the Pal Park Pokémon are stored beginning at 0x4BA28.&lt;br /&gt;
&lt;br /&gt;
Each party, Daycare, and Pal Park Pokémon is 236 bytes in size.&lt;br /&gt;
&lt;br /&gt;
The PC storage Pokémon are stored in the save file from Box 1 to Box 18.  The offset starts at 0x0C104 for the first big block and 0x4C104 for the second big block.  Each PC stored Pokémon is 136 bytes in size.&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Pokemon_Save_Structure&amp;diff=444</id>
		<title>Pokemon Save Structure</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Pokemon_Save_Structure&amp;diff=444"/>
		<updated>2009-03-09T23:24:07Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: /* Encrypted Bytes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pokémon in the games Pokémon [[Pokemon Diamond|Diamond]], [[Pokemon Pearl|Pearl]], and [[Pokemon Platinum|Platinum]] are stored in a 136 byte or 236 byte structures.  All unencrypted values are stored in [[little-endian|little-endian]] format.  The game encrypts the data when it is stored in the [[Pokemon NDS Save Structure|save file]].  Party Pokémon have additional values to hold current battle stats and conditions.  The information below describes the Pokémon data format.&lt;br /&gt;
&lt;br /&gt;
== Checksum ==&lt;br /&gt;
&lt;br /&gt;
The checksum serves two purposes:&lt;br /&gt;
# It validates the data after decryption, and&lt;br /&gt;
# It serves as the encryption key for the data.&lt;br /&gt;
&lt;br /&gt;
The checksum is calculated in three steps:&lt;br /&gt;
# Split the unencrypted data from offsets 0x08 to 0x87 into two-byte words,&lt;br /&gt;
# Take the sum of the words, and&lt;br /&gt;
# Truncate the sum to 16 bits.&lt;br /&gt;
&lt;br /&gt;
== Block Shuffling ==&lt;br /&gt;
&lt;br /&gt;
The 128 bytes of Pokémon data are split into four 32-byte blocks for shuffling.  The blocks are shuffled according to a shift value derived from the [[personality value]].  Given the personality value &#039;&#039;pv&#039;&#039;, the expression yielding the shift value is:&lt;br /&gt;
: &#039;&#039;((pv &amp;gt;&amp;gt; 0xD) &amp;amp; 0x1F) % 24&#039;&#039;&lt;br /&gt;
The right shifting (pv &amp;gt;&amp;gt; 0xD) is equivalent to a division of 8192.&lt;br /&gt;
&lt;br /&gt;
To shuffle the blocks, take the four blocks of unencrypted data, &#039;&#039;A&#039;&#039;, &#039;&#039;B&#039;&#039;, &#039;&#039;C&#039;&#039;, and &#039;&#039;D&#039;&#039;.  The blocks shall be rearranged in the encrypted data according to this table:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Shift Value (decimal)&lt;br /&gt;
! Block Order&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 00&lt;br /&gt;
| ABCD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 01&lt;br /&gt;
| ABDC&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 02&lt;br /&gt;
| ACBD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 03&lt;br /&gt;
| ACDB&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 04&lt;br /&gt;
| ADBC&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 05&lt;br /&gt;
| ADCB&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 06&lt;br /&gt;
| BACD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 07&lt;br /&gt;
| BADC&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 08&lt;br /&gt;
| BCAD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 09&lt;br /&gt;
| BCDA&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 10&lt;br /&gt;
| BDAC&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 11&lt;br /&gt;
| BDCA&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 12&lt;br /&gt;
| CABD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 13&lt;br /&gt;
| CADB&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 14&lt;br /&gt;
| CBAD&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 15&lt;br /&gt;
| CBDA&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 16&lt;br /&gt;
| CDAB&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 17&lt;br /&gt;
| CDBA&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 18&lt;br /&gt;
| DABC&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 19&lt;br /&gt;
| DACB&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 20&lt;br /&gt;
| DBAC&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 21&lt;br /&gt;
| DBCA&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 22&lt;br /&gt;
| DCAB&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 23&lt;br /&gt;
| DCBA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Encryption ==&lt;br /&gt;
&lt;br /&gt;
The encryption uses the pseudorandom number generator (PRNG), a linear congruential generator.  Elements of the PRNG can be described with the recursive function:&lt;br /&gt;
: &#039;&#039;X[n+1] = (0x41C64E6D * X[n] + 0x6073)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To decrypt the data, given a function &#039;&#039;rand()&#039;&#039; which returns the upper 16 bits of consecutive results of the above given function:&lt;br /&gt;
# Seed the PRNG with the checksum (let &#039;&#039;X[n]&#039;&#039; be the checksum).&lt;br /&gt;
# Sequentially, for each 2-byte word &#039;&#039;Y&#039;&#039; from 0x08 to 0x87, apply the transformation: &#039;&#039;unencryptedByte = Y xor rand()&#039;&#039;&lt;br /&gt;
# Unshuffle the blocks using the block shuffling algorithm above.&lt;br /&gt;
&lt;br /&gt;
To encrypt the data:&lt;br /&gt;
# Shuffle the blocks using the block shuffling algorithm above.&lt;br /&gt;
# Seed the PRNG with the checksum (let &#039;&#039;X[n]&#039;&#039; be the checksum),&lt;br /&gt;
# Sequentially, for each 2-byte word &#039;&#039;Y&#039;&#039; from 0x08 to 0x87, apply the transformation: &#039;&#039;unencryptedByte = Y xor rand()&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Unencrypted bytes ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00-0x03&lt;br /&gt;
| [[Personality value]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04-0x05&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x06-0x07&lt;br /&gt;
| Checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Encrypted bytes ==&lt;br /&gt;
=== Block A ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08-0x09 &lt;br /&gt;
| [[PokeDex|National PokéDex ID]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0A-0x0B &lt;br /&gt;
| [[Pokemon Items|Held Item]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0C-0x0D&lt;br /&gt;
| [[Original Trainer|OT ID]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0E-0x0F &lt;br /&gt;
| [[Original Trainer|OT Secret ID]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10-0x13&lt;br /&gt;
| [[Experience Points|Experience points]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x14&lt;br /&gt;
| Friendship (Steps to Hatch if an egg)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x15&lt;br /&gt;
| [[Ability]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x16&lt;br /&gt;
| [[#Markings|Markings]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x17&lt;br /&gt;
| [[#Original Language|Original Language]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x18&lt;br /&gt;
| [[Effort Values#Hit Points|HP Effort Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x19&lt;br /&gt;
| [[Effort Values#Attack Points|Attack Effort Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1A&lt;br /&gt;
| [[Effort Values#Defense Points|Defense Effort Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1B&lt;br /&gt;
| [[Effort Values#Speed Points|Speed Effort Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1C&lt;br /&gt;
| [[Effort Values#Special Attack Points|SP Attack Effort Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1D&lt;br /&gt;
| [[Effort Values#Special Defense Points|SP Defense Effort Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1E&lt;br /&gt;
| [[Contest Stats#Cool|Cool Contest Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1F&lt;br /&gt;
| [[Contest Stats#Beauty|Beauty Contest Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| [[Contest Stats#Cute|Cute Contest Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x21&lt;br /&gt;
| [[Contest Stats#Smart|Smart Contest Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x22&lt;br /&gt;
| [[Contest Stats#Tough|Tough Contest Value]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x23&lt;br /&gt;
| [[Contest Stats#Sheen|Sheen Contest Value]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24-0x25&lt;br /&gt;
| [[#Sinnoh Ribbon Set 1|Sinnoh Ribbon Set 1]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26-0x27&lt;br /&gt;
| [[#Sinnoh Ribbon Set 2|Sinnoh Ribbon Set 2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Block B ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x28-0x29&lt;br /&gt;
| [[Pokemon Moves|Move 1 ID]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x2A-0x2B&lt;br /&gt;
| [[Pokemon Moves|Move 2 ID]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x2C-0x2D&lt;br /&gt;
| [[Pokemon Moves|Move 3 ID]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x2E-0x2F&lt;br /&gt;
| [[Pokemon Moves|Move 4 ID]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x30&lt;br /&gt;
| [[Pokemon Moves#Power Points|Move 1 Current PP]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x31&lt;br /&gt;
| [[Pokemon Moves#Power Points|Move 2 Current PP]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x32&lt;br /&gt;
| [[Pokemon Moves#Power Points|Move 3 Current PP]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x33&lt;br /&gt;
| [[Pokemon Moves#Power Points|Move 4 Current PP]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x34-0x37&lt;br /&gt;
| [[Pokemon Moves#Power Points|Move PP Ups]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x38-0x3B&lt;br /&gt;
| Bit 0 - IsEgg Flag&amp;lt;br&amp;gt;Bit 1 - IsNicknamed Flag&lt;br /&gt;
Bits 2-31 - [[Individual Values]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Hit Points|HP]] ( [0-31] &amp;lt;&amp;lt; 25 )&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Attack Points|Attack]] ( [0-31] &amp;lt;&amp;lt; 20 )&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Defense Points|Defense]] ( [0-31] &amp;lt;&amp;lt; 15 )&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Speed Points|Speed]] ( [0-31] &amp;lt;&amp;lt; 10 )&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Special Attack Points|SP Attack]] ( [0-31] &amp;lt;&amp;lt; 5 )&amp;lt;br&amp;gt;&lt;br /&gt;
[[Individual Values#Special Defense Points|SP Defense]] ( [0-31] &amp;lt;&amp;lt; 0 )&amp;lt;br&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C-0x3D&lt;br /&gt;
| [[#Hoenn Ribbon Set 1|Hoenn Ribbon Set 1]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E-0x3F&lt;br /&gt;
| [[#Hoenn Ribbon Set 2|Hoenn Ribbon Set 2]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x40-0x41&lt;br /&gt;
| Bit 0 - Fateful Encounter Flag&amp;lt;br&amp;gt;Bit 1 - Female&amp;lt;br&amp;gt;Bit 2 - Genderless&amp;lt;br&amp;gt;Bit 3-15 - [[#Alternate Forms|Alternate Forms]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x42-0x43&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x44-0x45&lt;br /&gt;
| Egg [[Pokemon NDS Locations#Egg Locations|Location]] (Platinum)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x46-0x47&lt;br /&gt;
| Met at [[Pokemon NDS Locations|Location]] (Platinum)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Block C ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x48-0x5D&lt;br /&gt;
| Nickname&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x5E&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x5F&lt;br /&gt;
| [[Pokemon Hometown|Hometown]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60-0x61&lt;br /&gt;
| [[#Sinnoh Ribbon Set 3|Sinnoh Ribbon Set 3]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x62-0x63&lt;br /&gt;
| [[#Sinnoh Ribbon Set 4|Sinnoh Ribbon Set 4]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x64-0x67&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Block D ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x68-0x77 &lt;br /&gt;
| [[Original Trainer|OT Name]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x78-0x7A &lt;br /&gt;
| Date Egg Received&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7B-0x7D&lt;br /&gt;
| Date Met&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7E-0x7F&lt;br /&gt;
| Egg [[Pokemon NDS Locations|Location]] (Diamond/Pearl)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x80-0x81&lt;br /&gt;
| Met At [[Pokemon NDS Locations|Location]] (Diamond/Pearl)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x82&lt;br /&gt;
| [[Pokerus|Pokérus]]&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x83&lt;br /&gt;
| [[Pokeball|PokéBall]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x84&lt;br /&gt;
| Bit 0-6 - Met At Level&amp;lt;br&amp;gt;Bit 7 - Female OT Gender&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x85&lt;br /&gt;
| [[#Encounter Types|Encounter Type]]&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x86-0x87&lt;br /&gt;
| &#039;&#039;Unused&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Battle Stats ==&lt;br /&gt;
&lt;br /&gt;
The battle stats are encrypted in the same manner, however the seed is not the checksum, it is 0.&lt;br /&gt;
&lt;br /&gt;
=== Encrypted Bytes ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ccc;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Contents&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x88&lt;br /&gt;
| Bits 0-2 - Asleep (0-7 rounds)&amp;lt;br&amp;gt;Bit 4 - Poisoned&amp;lt;br&amp;gt;Bit 5 - Burned&amp;lt;br&amp;gt;Bit 6 - Frozen&amp;lt;br&amp;gt;Bit 7 - Paralyzed&amp;lt;br&amp;gt;Bit 8 - Toxic&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x89&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039; - Flags - Max Value 0xF0&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x8A-0x8B&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x8C&lt;br /&gt;
| Level&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x8D&lt;br /&gt;
| Capsule Index (Seals)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x8E-0x8F&lt;br /&gt;
| Current HP&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x90-0x91&lt;br /&gt;
| Max HP&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x92-0x93&lt;br /&gt;
| Attack&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x94-0x95&lt;br /&gt;
| Defense&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x96-0x97&lt;br /&gt;
| Speed&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x98-0x99&lt;br /&gt;
| Special Attack&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x9A-0x9B&lt;br /&gt;
| Special Defense&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x9C-0xEB&lt;br /&gt;
| &#039;&#039;Unknown&#039;&#039; - Contains Trash Data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Original Language ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Language&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x1&lt;br /&gt;
| 日本語 (Japan)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x2&lt;br /&gt;
| English (US/UK/AU)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3&lt;br /&gt;
| Français (France/Québec)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Italiano (Italy)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x5&lt;br /&gt;
| Deutsch (Germany)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7&lt;br /&gt;
| Español (Spain/Latin Americas)&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x8&lt;br /&gt;
| 한국어 (South Korea)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Markings ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Marking&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x01&lt;br /&gt;
| Circle&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x02&lt;br /&gt;
| Triangle&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x04&lt;br /&gt;
| Square&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Heart&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| Star&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| Diamond&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Alternate Forms ==&lt;br /&gt;
Alternate forms are stored at offset 0x40 of the Pokemon structure.  Each form follows the pattern of &#039;&#039;index &amp;lt;&amp;lt; 3&#039;&#039; where index starts at zero for the main form.&lt;br /&gt;
&lt;br /&gt;
=== Unown&#039;s Forms ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| A&lt;br /&gt;
| 0x38&lt;br /&gt;
| H&lt;br /&gt;
| 0x70&lt;br /&gt;
| O&lt;br /&gt;
| 0xA8&lt;br /&gt;
| V&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| B&lt;br /&gt;
| 0x40&lt;br /&gt;
| I&lt;br /&gt;
| 0x78&lt;br /&gt;
| P&lt;br /&gt;
| 0xB0&lt;br /&gt;
| W&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| C&lt;br /&gt;
| 0x48&lt;br /&gt;
| J&lt;br /&gt;
| 0x80&lt;br /&gt;
| Q&lt;br /&gt;
| 0xB8&lt;br /&gt;
| X&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x18&lt;br /&gt;
| D&lt;br /&gt;
| 0x50&lt;br /&gt;
| K&lt;br /&gt;
| 0x88&lt;br /&gt;
| R&lt;br /&gt;
| 0xC0&lt;br /&gt;
| Y&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| E&lt;br /&gt;
| 0x58&lt;br /&gt;
| L&lt;br /&gt;
| 0x90&lt;br /&gt;
| S&lt;br /&gt;
| 0xC8&lt;br /&gt;
| Z&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x28&lt;br /&gt;
| F&lt;br /&gt;
| 0x60&lt;br /&gt;
| M&lt;br /&gt;
| 0x98&lt;br /&gt;
| T&lt;br /&gt;
| 0xD0&lt;br /&gt;
| !&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x30&lt;br /&gt;
| G&lt;br /&gt;
| 0x68&lt;br /&gt;
| N&lt;br /&gt;
| 0xA0&lt;br /&gt;
| U&lt;br /&gt;
| 0xD8&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Deoxy&#039;s Forms ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Normal&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Attack&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| Defense&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x18&lt;br /&gt;
| Speed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Burmy&#039;s &amp;amp; Wormadam&#039;s Forms ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Plant&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Sandy&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| Trash&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shellos&#039; &amp;amp; Gastrodon&#039;s Forms ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| West&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| East&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rotom&#039;s Forms ===&lt;br /&gt;
Rotom&#039;s alternate forms will only be displayed in Pokemon Platinum.  Rotom may be traded between Diamond, Pearl, and Platinum without losing the alternate form.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Normal&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Heat&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| Cut&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x18&lt;br /&gt;
| Wash&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| Frost&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x28&lt;br /&gt;
| Spin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Giratina&#039;s Forms ===&lt;br /&gt;
Giratina&#039;s alternate form will only be displayed in Pokemon Platinum.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Alternate&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Origine&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shaymin&#039;s Forms ===&lt;br /&gt;
Shaymin&#039;s alternate form will only be displayed in Pokemon Platinum.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Land&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Sky&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arceus&#039; Forms ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
! Bit&lt;br /&gt;
! Form&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00&lt;br /&gt;
| Normal&lt;br /&gt;
| 0x38&lt;br /&gt;
| Insect&lt;br /&gt;
| 0x68&lt;br /&gt;
| Zap&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x08&lt;br /&gt;
| Fist&lt;br /&gt;
| 0x40&lt;br /&gt;
| Spooky&lt;br /&gt;
| 0x70&lt;br /&gt;
| Mind&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x10&lt;br /&gt;
| Sky&lt;br /&gt;
| 0x48&lt;br /&gt;
| Iron&lt;br /&gt;
| 0x78&lt;br /&gt;
| Icicle&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x18&lt;br /&gt;
| Toxic&lt;br /&gt;
| 0x50&lt;br /&gt;
| Flame&lt;br /&gt;
| 0x80&lt;br /&gt;
| Draco&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x20&lt;br /&gt;
| Earth&lt;br /&gt;
| 0x58&lt;br /&gt;
| Splash&lt;br /&gt;
| 0x88&lt;br /&gt;
| Dread&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x28&lt;br /&gt;
| Stone&lt;br /&gt;
| 0x60&lt;br /&gt;
| Meadow&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Encounter Types ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Country&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x0&lt;br /&gt;
| Pal Park, Egg, Hatched, Special Event&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x2&lt;br /&gt;
| Tall Grass&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x4&lt;br /&gt;
| Dialga/Palkia In-Game Event&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x5&lt;br /&gt;
| Cave, Hall of Origin&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x7&lt;br /&gt;
| Surfing, Fishing&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x9&lt;br /&gt;
| Building&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xA&lt;br /&gt;
| Great Marsh (Safari Zone)&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0xC&lt;br /&gt;
| Starter, Fossil, Gift (Eevee)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ribbons ==&lt;br /&gt;
Diamond, Pearl, and Platinum store the ribbon information as [[Bitfields|bitfields]] in 1-byte words.  Given below are the bytewise representation of the ribbon bitfields.&lt;br /&gt;
&lt;br /&gt;
=== Sinnoh Ribbon Set 1 ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x01&lt;br /&gt;
| Sinnoh Champ Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x02&lt;br /&gt;
| Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x04&lt;br /&gt;
| Great Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x08&lt;br /&gt;
| Double Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x10&lt;br /&gt;
| Multi Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x20&lt;br /&gt;
| Pair Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x40&lt;br /&gt;
| World Ability Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x24 &amp;amp; 0x80&lt;br /&gt;
| Alert Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x01&lt;br /&gt;
| Shock Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x02&lt;br /&gt;
| Downcast Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x04&lt;br /&gt;
| Careless Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x08&lt;br /&gt;
| Relax Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x10&lt;br /&gt;
| Snooze Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x20&lt;br /&gt;
| Smile Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x40&lt;br /&gt;
| Gorgeous Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x25 &amp;amp; 0x80&lt;br /&gt;
| Royal Ribbon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sinnoh Ribbon Set 2 ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x01&lt;br /&gt;
| Gorgeous Royal Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x02&lt;br /&gt;
| Footprint Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x04&lt;br /&gt;
| Record Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x08&lt;br /&gt;
| History Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x10&lt;br /&gt;
| Legend Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x20&lt;br /&gt;
| Red Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x40&lt;br /&gt;
| Green Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x26 &amp;amp; 0x80&lt;br /&gt;
| Blue Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x27 &amp;amp; 0x01&lt;br /&gt;
| Festival Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x27 &amp;amp; 0x02&lt;br /&gt;
| Carnival Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x27 &amp;amp; 0x04&lt;br /&gt;
| Classic Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x27 &amp;amp; 0x08&lt;br /&gt;
| Premier Ribbon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sinnoh Ribbon Set 3 ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x01&lt;br /&gt;
| Cool Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x02&lt;br /&gt;
| Cool Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x04&lt;br /&gt;
| Cool Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x08&lt;br /&gt;
| Cool Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x10&lt;br /&gt;
| Beauty Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x20&lt;br /&gt;
| Beauty Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x40&lt;br /&gt;
| Beauty Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x60 &amp;amp; 0x80&lt;br /&gt;
| Beauty Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x01&lt;br /&gt;
| Cute Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x02&lt;br /&gt;
| Cute Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x04&lt;br /&gt;
| Cute Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x08&lt;br /&gt;
| Cute Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x10&lt;br /&gt;
| Smart Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x20&lt;br /&gt;
| Smart Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x40&lt;br /&gt;
| Smart Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x61 &amp;amp; 0x80&lt;br /&gt;
| Smart Ribbon Master&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sinnoh Ribbon Set 4 ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x62 &amp;amp; 0x01&lt;br /&gt;
| Tough Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x62 &amp;amp; 0x02&lt;br /&gt;
| Tough Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x62 &amp;amp; 0x04&lt;br /&gt;
| Tough Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x62 &amp;amp; 0x08&lt;br /&gt;
| Tough Ribbon Master&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hoenn Ribbon Set 1 ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x01&lt;br /&gt;
| Cool Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x02&lt;br /&gt;
| Cool Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x04&lt;br /&gt;
| Cool Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x08&lt;br /&gt;
| Cool Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x10&lt;br /&gt;
| Beauty Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x20&lt;br /&gt;
| Beauty Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x40&lt;br /&gt;
| Beauty Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3C &amp;amp; 0x80&lt;br /&gt;
| Beauty Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x01&lt;br /&gt;
| Cute Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x02&lt;br /&gt;
| Cute Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x04&lt;br /&gt;
| Cute Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x08&lt;br /&gt;
| Cute Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x10&lt;br /&gt;
| Smart Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x20&lt;br /&gt;
| Smart Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x40&lt;br /&gt;
| Smart Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3D &amp;amp; 0x80&lt;br /&gt;
| Smart Ribbon Master&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Hoenn Ribbon Set 2 ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #999; border-collapse: collapse;&amp;quot;&lt;br /&gt;
! Bit&lt;br /&gt;
! Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x01&lt;br /&gt;
| Tough Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x02&lt;br /&gt;
| Tough Ribbon Super&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x04&lt;br /&gt;
| Tough Ribbon Hyper&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x08&lt;br /&gt;
| Tough Ribbon Master&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x10&lt;br /&gt;
| Champion Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x20&lt;br /&gt;
| Winning Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x40&lt;br /&gt;
| Victory Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3F &amp;amp; 0x80&lt;br /&gt;
| Artist Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x01&lt;br /&gt;
| Effort Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x02&lt;br /&gt;
| Marine Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x04&lt;br /&gt;
| Land Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x08&lt;br /&gt;
| Sky Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x10&lt;br /&gt;
| Country Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x20&lt;br /&gt;
| National Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #eee;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x40&lt;br /&gt;
| Earth Ribbon&lt;br /&gt;
|- style=&amp;quot;background: #ddd;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x3E &amp;amp; 0x80&lt;br /&gt;
| World Ribbon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Save File Location ==&lt;br /&gt;
The party Pokémon are stored in the [[Pokemon NDS Save Structure|save file]] beginning at offset 0x00098 for the first small block, and 0x40098 for the second small block.&lt;br /&gt;
&lt;br /&gt;
In the first small save block, the first Daycare Pokémon is located at 0x0141C, and the second is located at 0x01508.  In the second small block, the first Daycare Pokémon is located at 0x4141C, and the second is located at 0x41508.&lt;br /&gt;
&lt;br /&gt;
In the first small save block, the Pal Park Pokémon are stored beginning at 0x0BA28.  In the second small save block, the Pal Park Pokémon are stored beginning at 0x4BA28.&lt;br /&gt;
&lt;br /&gt;
Each party, Daycare, and Pal Park Pokémon is 236 bytes in size.&lt;br /&gt;
&lt;br /&gt;
The PC storage Pokémon are stored in the save file from Box 1 to Box 18.  The offset starts at 0x0C104 for the first big block and 0x4C104 for the second big block.  Each PC stored Pokémon is 136 bytes in size.&lt;br /&gt;
&lt;br /&gt;
[[Category:Structures]]&lt;br /&gt;
[[Category:Game Mechanics]]&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Template:Innacurate&amp;diff=427</id>
		<title>Template:Innacurate</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Template:Innacurate&amp;diff=427"/>
		<updated>2009-03-06T09:39:32Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table align=&amp;quot;center&amp;quot; style=&amp;quot;background: #FFCCCC; border: 2px solid #333333; width: 100%; -moz-border-radius: 30px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;This article has inaccurate information.&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
{{ #if:{{{1|}}}|&amp;lt;tr&amp;gt;&amp;lt;td align=&amp;quot;left&amp;quot;&amp;gt;{{{1}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; }}&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;big&amp;gt;Help [[PP:About|Project Pokemon]] stay a useful resource by keeping this article accurate and up to date.&amp;lt;/big&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;[[Category:Innacurate Articles]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;[[Category:Notice Templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Template:Adds&amp;diff=426</id>
		<title>Template:Adds</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Template:Adds&amp;diff=426"/>
		<updated>2009-03-06T09:38:15Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[{{{1}}}|{{{1}}}{{{2|s}}}]]&amp;lt;noinclude&amp;gt;[[Category:Templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Template:Adds&amp;diff=425</id>
		<title>Template:Adds</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Template:Adds&amp;diff=425"/>
		<updated>2009-03-06T09:34:28Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[{{{1}}}|{{{1}}}{{#if: {{{2}}} | {{{2}}} | s }}]]&amp;lt;noinclude&amp;gt;[[Category:Templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Template:Adds&amp;diff=424</id>
		<title>Template:Adds</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Template:Adds&amp;diff=424"/>
		<updated>2009-03-06T09:33:09Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: Protected &amp;quot;Template:Adds&amp;quot; [edit=sysop:move=sysop]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[{{{1}}}|{{{1}}}s]]&amp;lt;noinclude&amp;gt;[[Category:Templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Template:Adds&amp;diff=423</id>
		<title>Template:Adds</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Template:Adds&amp;diff=423"/>
		<updated>2009-03-06T09:33:05Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: New page: {{{1}}}s&amp;lt;noinclude&amp;gt;Category:Templates&amp;lt;/noinclude&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[{{{1}}}|{{{1}}}s]]&amp;lt;noinclude&amp;gt;[[Category:Templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
	<entry>
		<id>https://projectpokemon.org/wiki/index.php?title=Template:Innacurate&amp;diff=420</id>
		<title>Template:Innacurate</title>
		<link rel="alternate" type="text/html" href="https://projectpokemon.org/wiki/index.php?title=Template:Innacurate&amp;diff=420"/>
		<updated>2009-03-06T09:30:13Z</updated>

		<summary type="html">&lt;p&gt;Sabresite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table align=&amp;quot;center&amp;quot; style=&amp;quot;background: #FFCCCC; border: 2px solid #333333; width: 100%; -moz-border-radius: 30px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;This article has inaccurate information.&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
{{ #if:{{{1}}}|&amp;lt;tr&amp;gt;&amp;lt;td align=&amp;quot;left&amp;quot;&amp;gt;{{{1}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; }}&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;big&amp;gt;Help [[PP:About|Project Pokemon]] stay a useful resource by keeping this article accurate and up to date.&amp;lt;/big&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;[[Category:Innacurate Articles]]&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;[[Category:Notice Templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sabresite</name></author>
	</entry>
</feed>