6th Generation Pokemon Link Map: Difference between revisions
Line 8: | Line 8: | ||
Also, for ramsav users: | Also, for ramsav users: | ||
* ramsav.bin offset | * ramsav.bin offset Pokémon X/Y: 0x1CF9F | ||
* ramsav.bin offset | * ramsav.bin offset Pokémon OR/AS: 0x1E05B | ||
== Pokémon Link Data == | == Pokémon Link Data == |
Revision as of 19:12, 11 October 2015
Savegame Offsets
Pokémon Link Data starts in the following offsets for decrypted savegame files and is 2631 bytes long:
- Pokémon X/Y: 0x1FFFF
- Pokémon OR/AS: 0x20FFF
Modifying this data requires checksum #30 to be updated.
Also, for ramsav users:
- ramsav.bin offset Pokémon X/Y: 0x1CF9F
- ramsav.bin offset Pokémon OR/AS: 0x1E05B
Pokémon Link Data
Offset | Description |
---|---|
0x00 | Pokémon Link flag
(0x00 disabled, 0x80 enabled) |
0x01-0x6C | Name of application that produce Pokémon Link Data |
0x6D-0x6E | NULL terminator? |
0x6F-0x94 | Unknown/Unused |
0x95-0x98 | Unknown/Unused (0x00000000) |
0x99-0x9C | Pokémon transfer flags?1 (see notes) |
0x9D-0x13C | Pokémon slot 1 (160 bytes 2 see notes) |
0x13D-0x140 | Unknown/Unused (0x00000000) |
0x141-0x144 | Pokémon transfer flags?1 (see notes) |
0x145-0x1E4 | Pokémon slot 2 (160 bytes 2 see notes) |
0x1E5-0x1E8 | Unknown/Unused (0x00000000) |
0x1E9-0x1EC | Pokémon transfer flags?1 (see notes) |
0x1ED-0x28C | Pokémon slot 3 (160 bytes 2 see notes) |
0x28D-0x290 | Unknown/Unused (0x00000000) |
0x291-0x294 | Pokémon transfer flags?1 (see notes) |
0x295-0x334 | Pokémon slot 4 (160 bytes 2 see notes) |
0x335-0x338 | Unknown/Unused (0x00000000) |
0x339-0x33C | Pokémon transfer flags?1 (see notes) |
0x33D-0x3DC | Pokémon slot 5 (160 bytes 2 see notes) |
0x3DD-0x3E0 | Unknown/Unused (0x00000000) |
0x3E1-0x3E4 | Pokémon transfer flags?1 (see notes) |
0x3E5-0x484 | Pokémon slot 6 (160 bytes 2 see notes) |
0x485-0x488 | Unknown/Unused (0x00000000) |
0x489-0x48A | Item 1 (3 see notes) |
0x48B-0x48C | Item 1 quantity |
0x48D-0x48E | Item 2 (3 see notes) |
0x48F-0x490 | Item 2 quantity |
0x491-0x492 | Item 3 (3 see notes) |
0x493-0x494 | Item 3 quantity |
0x495-0x496 | Item 4 (3 see notes) |
0x497-0x498 | Item 4 quantity |
0x499-0x49A | Item 5 (3 see notes) |
0x49B-0x49C | Item 5 quantity |
0x49D-0x49E | Item 6 (3 see notes) |
0x49F-0x4A0 | Item 6 quantity |
0x4A1-0x4A2 | Battle Points (max. value 9999) |
0x4A3-0x4A4 | Poké Miles |
0x4A5-0xA44 | Unknown/Unused (All 0x00) |
0xA45-0xA46 | CRC-16/CCITT checksum for 0x01-0xA44 data |
Pokémon slot structure
Offset | Description |
---|---|
0x00-0x01 | TID |
0x02-0x03 | SID |
0x04 | Pokemon Origin Game (OT Game ID)
00 for Game Received in |
0x05-0x07 | Unknown/Unused (0x000000) |
0x08-0x0B | [Pokemon] Encryption Constant
Unset = 00000000 |
0x0C | Primary Ribbons
Ribbon data available below. |
0x0D | Secondary Ribbons
Ribbon data available below. |
0x0E | PokéBall |
0x0F | Unused/Unknown |
0x10-0x11 | Held Item |
0x12-0x13 | Move ID #1 |
0x14-0x15 | Move ID #2 |
0x16-0x17 | Move ID #3 |
0x18-0x19 | Move ID #4 |
0x1A-0x1B | PokéDex Number (4 see notes) |
0x1C | Form No. |
0x0D | Language 00 for Game Received In |
0x0E-0x37 | Pokémon Nickname Null terminator for last two bytes. |
0x38 | Nature FF - Unset |
0x39 | Pokémon Gender 00 - Male |
0x3A | Pokémon Ability 00 - Ability 1 |
0x3B | PID Toggle 00 - Generate Specified PID (from 0x6C-0x6F) |
0x3C-0x3D | Egg Met Location (5 see notes) |
0x3E-0x3F | Met Location of Pokémon (5 see notes) |
0x40 | Met Level |
0x41-0x46 | Contest Stats Last byte is Sheen |
0x47-0x4C | IVs FFs for unset IVs |
0x4D | OT Gender 00 - Male |
0x4E-0x67 | OT Name Null terminator for last two bytes. |
0x68 | Current Level(random if set to 0) |
0x69 | Egg Flag 00 - Is Not Egg |
0x6A-0x6B | 'Unknown' |
0x6C-0x6F | PID (used if PID toogle is 00) |
0x70-0x71 | Relearn Move 1 |
0x72-0x73 | Relearn Move 2 |
0x74-0x75 | Relearn Move 3 |
0x76-0x77 | Relearn Move 4 |
0x78 | OT Memory Intensity |
0x79 | OT Memory Line |
0x7A-0x7B | OT Memory TextVar |
0x7C | OT Memory Feeling |
0x7D-0x9F | Unknown/Unused/Reserved bytes |
Ribbon Set
Flag Value | 0x74 | 0x75 |
---|---|---|
0x01 | Battle Champ Ribbon | World Champ Ribbon |
0x02 | Regional Champ Ribbon | Birthday Ribbon |
0x04 | National Champ Ribbon | Special Ribbon |
0x08 | Country Ribbon | Souvenir Ribbon |
0x10 | National Ribbon | Wishing Ribbon |
0x20 | Earth Ribbon | Classic Ribbon |
0x40 | World Ribbon | Premier Ribbon |
0x80 | Event Ribbon | Empty |
Notes
- Pokémon transfer flags: for ORAS demo Glalie/Steelix this is set to 0x0001 0x0001; for Celebi and Johto starters 0x0000 0x0000. Seems to somehow control how many pokemon slots will be imported from pokemon link, but can't figure out how this works. Pokemon ORAS Demo seems to use it to only allow 1 pokemon to be read from pokemon link data; bank Celebi and bank Johto starters use placeholder data with 0x0000 pokédex number (thus making that data not being imported). Having all data set to 00 works too, and these values don't seem to have any impact in the generated pokémon.
- The statement that pokemon data is 160 bytes long is made due to this data being essentially the same as in wondercard data, which is 160 bytes long from TID to end of file.
- If item is not valid, it won't be obtained.
- If pokemon species is not valid (i.e 0x0000), no pokemon will be generated.
- Pokemon link will set egg met location to "Pokemon Link" and met at location to "Pokemon Link" regardless of the value in the data.