Pokémon ORAS Save File Structure: Difference between revisions
(secvalue) |
|||
| Line 241: | Line 241: | ||
| 0039||6D000||0000E058||75FE2||Picture Data (JPEG Exif Ver 2.2) | | 0039||6D000||0000E058||75FE2||Picture Data (JPEG Exif Ver 2.2) | ||
|- | |- | ||
| ----||75E00||00000800||-----||Checksum Storage<br>[0x14] Header: u64 savetime1 & u64 savetime2, u16 BEEF magic<br>[0x10] Checksum Entries: u32 len, u16 ID, u16 checksum (ccitt16, 0xFFFF initial) | | ----||75E00||00000800||-----||Checksum Storage<br>[0x14] Header: u64 savetime1 & u64 savetime2 (First five bytes Anti-Savegame Restore Secure Value), u16 BEEF magic<br>[0x10] Checksum Entries: u32 len, u16 ID, u16 checksum (ccitt16, 0xFFFF initial) | ||
|- | |- | ||
|} | |} | ||
Revision as of 21:18, 3 April 2015
OR/AS Save files are comprised of 4 sections, the latter two storing the contents of the two savegames.
The structure of the save is extremely similar to Pokemon X/Y's, with the majority of structural changes being the shifting of the positions of partitions.
The game alternates between the two game saves similar to Generations 3 & 4 and X/Y.
Save files are 0x100000 (1MB). The area between sections is either FF or 00, for Cartridges and Digital saves respectively.
Single Partition Save File
http://3dbrew.org/wiki/Savegames
Image Header (0x00000-0x00460)
| Offset | Length | Hash Details | Description |
| 00000 | 0x10 | 0x0: Uses the AES Engine & KeyY | AES MAC Header |
| 00100 | 0x100 | 0x16C: (SHA256) 0x000-0x12C of active DIFI | DISA |
| 00200 | 0x12C | 0x30C: (SHA256) 1st IVFC Hash copied to 0x200 zero array | DIFI Blob 1 |
| 00330 | 0x12C | 0x43C: (SHA256) 1st IVFC Hash copied to 0x200 zero array | DIFI Blob 2 |
First Partition (0x01000-0x01107)
| Offset | Description |
| 01000 | DPFS Partition |
Save File 1 (0x02000 - 0x75FFF)
(420 KB)
| Offset | Description |
| 02000 | IVFC Hash Region |
| 03000 | SAVE Header (0x3F0 medias, 0x200 length) = 0x7E000 total |
| 03100 | SAVE Data |
| ID | Start | Length | CHK | Description |
| 0000 | 5400 | 000002C8 | 75E1A | 05400 - Pokepuff Inventory (Index * 100ct) 05464 - u32 Received Counter |
| 0001 | 5800 | 00000B90 | 75E22 | 05800 - Items Pocket 05E40 - Key Items Pocket 05FC0 - TM Pocket 06170- Medicine Pocket 06270 - Berry Pocket |
| 0002 | 6400 | 0000002C | 75E2A | Select Bound Items |
| 0003 | 6600 | 00000038 | 75E32 | ???? |
| 0004 | 6800 | 00000150 | 75E3A | Trainer Stat Tracking |
| 0005 | 6A00 | 00000004 | 75E42 | ???? |
| 0006 | 6C00 | 00000008 | 75E4A | u32 Time Played + u32 Adventure Started |
| 0007 | 6E00 | 000001C0 | 75E52 | Wardrobe (Bitflags) & Saved Outfits (Index #s) - Unused in ORAS |
| 0008 | 7000 | 000000BE | 75E5A | u16/u8 storage |
| 0009 | 7200 | 00000024 | 75E62 | FFFFFFFF |
| 000A | 7400 | 00002100 | 75E6A | Overworld Data 0x108 per Overworld Entity |
| 000B | 9600 | 00000130 | 75E72 | Trainer Information ($) |
| 000C | 9800 | 00000440 | 75E7A | Box Names
|
| 000D | 9E00 | 00000574 | 75E82 | Battle Box |
| 000E | A400 | 00004E28 | 75E8A | PSS Data - Friends |
| 000F | F400 | 00004E28 | 75E92 | PSS Data - Acquaintances |
| 0010 | 14400 | 00004E28 | 75E9A | PSS Data - Passerby |
| 0011 | 19400 | 00000170 | 75EA2 | Trainer Card (ID/SID/OT/Greeting) |
| 0012 | 19600 | 0000061C | 75EAA | Party Members |
| 0013 | 19E00 | 00000504 | 75EB2 | Constant & Event Flags
|
| 0014 | 1A400 | 000011CC | 75EBA | Pokedex & Encounter Count
|
| 0015 | 1B600 | 00000644 | 75EC2 | Sorted Variables |
| 0016 | 1BE00 | 00000104 | 75ECA | Fused Zekrom/Reshiram Storage |
| 0017 | 1C000 | 00000004 | 75ED2 | ???? |
| 0018 | 1C200 | 00000420 | 75EDA | ???? |
| 0019 | 1C800 | 00000064 | 75EE2 | O-Power Flags |
| 001A | 1CA00 | 000003F0 | 75EEA | ???? |
| 001B | 1CE00 | 0000070C | 75EF2 | User Metadata |
| 001C | 1D600 | 00000180 | 75EFA | GTS Upload & Match Criteria |
| 001D | 1D800 | 00000004 | 75F02 | 87B1A23F const |
| 001E | 1DA00 | 0000000C | 75F0A | ???? |
| 001F | 1DC00 | 00000048 | 75F12 | Repel Info, (Swarm?) and other overworld info |
| 0020 | 1DE00 | 00000054 | 75F1A | ???? |
| 0021 | 1E000 | 00000644 | 75F22 | WiFi Tournament Data |
| 0022 | 1E800 | 000005C8 | 75F2A | Live Tournament Data |
| 0023 | 1EE00 | 000002F8 | 75F32 | MAC Address & Network Connection Logging (0x98 per entry) |
| 0024 | 1F200 | 00001B40 | 75F3A | Hall of Fame Data (First Game Clear + 15 Latest)
|
| 0025 | 20E00 | 000001F4 | 75F42 | Maison Data
|
| 0026 | 21000 | 000003E0 | 75F4A | Daycare Data (Larger than XY)
|
| 0027 | 21400 | 00000216 | 75F52 | Index Number Related Data |
| 0028 | 21800 | 00000640 | 75F5A | Berry Field Data (0x10 per tree, 100 trees) |
| 0029 | 22000 | 00001A90 | 75F62 | Wondercard Data 0x100 bitflag-card received storage Wondercard slots (0x108 between) |
| 002A | 23C00 | 00000400 | 75F6A | SUBE data (XY: Old Man) - purpose unknown. |
| 002B | 24000 | 00000618 | 75F72 | Friend Safari Data |
| 002C | 24800 | 0000025C | 75F7A | PSS Data |
| 002D | 24C00 | 00000834 | 75F82 | PSS Friend Data [0x15]*100 entries |
| 002E | 25600 | 00000318 | 75F8A | Super Training Data
|
| 002F | 25A00 | 000007D0 | 75F92 | ???? |
| 0030 | 26200 | 00000C48 | 75F9A | Pokemon Bank Gifts 0x25E44 - u16 checksum (ccitt16, 0xFFFF initial) of 0x25400-0x25E43 |
| 0031 | 27000 | 00000078 | 75FA2 | Index Number Related Data |
| 0032 | 27200 | 00000200 | 75FAA | PGL Promotion Gifts |
| 0033 | 27400 | 00000C84 | 75FB2 | ???? |
| 0034 | 28200 | 00000628 | 75FBA | Data Block (Purpose Unknown) u64 Length byte[Length] data |
| 0035 | 28A00 | 00000400 | 75FC2 | Contest Data |
| 0036 | 28E00 | 00007AD0 | 75FCA | Secret Base (Favorites) |
| 0037 | 30A00 | 000078B0 | 75FD2 | Secret Base (Passerby) & Passerby Event Values |
| 0038 | 38400 | 00034AD0 | 75FDA | Box Data (31 Boxes, 30 Slots, 232 bytes each) |
| 0039 | 6D000 | 0000E058 | 75FE2 | Picture Data (JPEG Exif Ver 2.2) |
| ---- | 75E00 | 00000800 | ----- | Checksum Storage [0x14] Header: u64 savetime1 & u64 savetime2 (First five bytes Anti-Savegame Restore Secure Value), u16 BEEF magic [0x10] Checksum Entries: u32 len, u16 ID, u16 checksum (ccitt16, 0xFFFF initial) |
Save File 2 (0x81000 - 0xF1FFF)
(420 KB)
Same as Game Save 1's offsets; add 0x7F000.
IVFC Hash Region
SHA256 Hash over a 0x1000 large block (4096 bytes).
| Start | End | Hash Location |
| 2020 | 203F | 2000 - First Hash: Copied to 0x200 zero array. |
| 2040 | 2FFF | 2020 - Second Hash: Copied to 0x1000 zero array. |
| 3000 | 3FFF | 2040 |
| 4000 | 4FFF | 2060 |
| 5000 | 5FFF | 2080 |
| 6000 | 6FFF | 20A0 |
| 7000 | 7FFF | 20C0 |
| 8000 | 8FFF | 20E0 |
| 9000 | 9FFF | 2100 |
| A000 | AFFF | 2120 |
| B000 | BFFF | 2140 |
| C000 | CFFF | 2160 |
| D000 | DFFF | 2180 |
| E000 | EFFF | 21A0 |
| F000 | FFFF | 21C0 |
| 10000 | 10FFF | 21E0 |
| 11000 | 11FFF | 2200 |
| 12000 | 12FFF | 2220 |
| 13000 | 13FFF | 2240 |
| 14000 | 14FFF | 2260 |
| 15000 | 15FFF | 2280 |
| 16000 | 16FFF | 22A0 |
| 17000 | 17FFF | 22C0 |
| 18000 | 18FFF | 22E0 |
| 19000 | 19FFF | 2300 |
| 1A000 | 1AFFF | 2320 |
| 1B000 | 1BFFF | 2340 |
| 1C000 | 1CFFF | 2360 |
| 1D000 | 1DFFF | 2380 |
| 1E000 | 1EFFF | 23A0 |
| 1F000 | 1FFFF | 23C0 |
| 20000 | 20FFF | 23E0 |
| 21000 | 21FFF | 2400 |
| 22000 | 22FFF | 2420 |
| 23000 | 23FFF | 2440 |
| 24000 | 24FFF | 2460 |
| 25000 | 25FFF | 2480 |
| 26000 | 26FFF | 24A0 |
| 27000 | 27FFF | 24C0 |
| 28000 | 28FFF | 24E0 |
| 29000 | 29FFF | 2500 |
| 2A000 | 2AFFF | 2520 |
| 2B000 | 2BFFF | 2540 |
| 2C000 | 2CFFF | 2560 |
| 2D000 | 2DFFF | 2580 |
| 2E000 | 2EFFF | 25A0 |
| 2F000 | 2FFFF | 25C0 |
| 30000 | 30FFF | 25E0 |
| 31000 | 31FFF | 2600 |
| 32000 | 32FFF | 2620 |
| 33000 | 33FFF | 2640 |
| 34000 | 34FFF | 2660 |
| 35000 | 35FFF | 2680 |
| 36000 | 36FFF | 26A0 |
| 37000 | 37FFF | 26C0 |
| 38000 | 38FFF | 26E0 |
| 39000 | 39FFF | 2700 |
| 3A000 | 3AFFF | 2720 |
| 3B000 | 3BFFF | 2740 |
| 3C000 | 3CFFF | 2760 |
| 3D000 | 3DFFF | 2780 |
| 3E000 | 3EFFF | 27A0 |
| 3F000 | 3FFFF | 27C0 |
| 40000 | 40FFF | 27E0 |
| 41000 | 41FFF | 2800 |
| 42000 | 42FFF | 2820 |
| 43000 | 43FFF | 2840 |
| 44000 | 44FFF | 2860 |
| 45000 | 45FFF | 2880 |
| 46000 | 46FFF | 28A0 |
| 47000 | 47FFF | 28C0 |
| 48000 | 48FFF | 28E0 |
| 49000 | 49FFF | 2900 |
| 4A000 | 4AFFF | 2920 |
| 4B000 | 4BFFF | 2940 |
| 4C000 | 4CFFF | 2960 |
| 4D000 | 4DFFF | 2980 |
| 4E000 | 4EFFF | 29A0 |
| 4F000 | 4FFFF | 29C0 |
| 50000 | 50FFF | 29E0 |
| 51000 | 51FFF | 2A00 |
| 52000 | 52FFF | 2A20 |
| 53000 | 53FFF | 2A40 |
| 54000 | 54FFF | 2A60 |
| 55000 | 55FFF | 2A80 |
| 56000 | 56FFF | 2AA0 |
| 57000 | 57FFF | 2AC0 |
| 58000 | 58FFF | 2AE0 |
| 59000 | 59FFF | 2B00 |
| 5A000 | 5AFFF | 2B20 |
| 5B000 | 5BFFF | 2B40 |
| 5C000 | 5CFFF | 2B60 |
| 5D000 | 5DFFF | 2B80 |
| 5E000 | 5EFFF | 2BA0 |
| 5F000 | 5FFFF | 2BC0 |
| 60000 | 60FFF | 2BE0 |
| 61000 | 61FFF | 2C00 |
| 62000 | 62FFF | 2C20 |
| 63000 | 63FFF | 2C40 |
| 64000 | 64FFF | 2C60 |
| 65000 | 65FFF | 2C80 |
| 66000 | 66FFF | 2CA0 |
| 67000 | 67FFF | 2CC0 |
| 68000 | 68FFF | 2CE0 |
| 69000 | 69FFF | 2D00 |
| 6A000 | 6AFFF | 2D20 |
| 6B000 | 6BFFF | 2D40 |
| 6C000 | 6CFFF | 2D60 |
| 6D000 | 6DFFF | 2D80 |
| 6E000 | 6EFFF | 2DA0 |
| 6F000 | 6FFFF | 2DC0 |
| 70000 | 70FFF | 2DE0 |
| 71000 | 71FFF | 2E00 |
| 72000 | 72FFF | 2E20 |
| 73000 | 73FFF | 2E40 |
| 74000 | 74FFF | 2E60 |
| 75000 | 75FFF | 2E80 |
Pokepuff Index Numbers
| Index | Name |
| 00 | Empty |
| 01 | Sweet Basic Pokepuff |
| 02 | Mint Basic Pokepuff |
| 03 | Citrus Basic Pokepuff |
| 04 | Mocha Basic Pokepuff |
| 05 | Spice Basic Pokepuff |
| 06 | Sweet Frosted Pokepuff |
| 07 | Mint Frosted Pokepuff |
| 08 | Citrus Frosted Pokepuff |
| 09 | Mocha Frosted Pokepuff |
| 0A | Spice Frosted Pokepuff |
| 0B | Sweet Fancy Pokepuff |
| 0C | Mint Fancy Pokepuff |
| 0D | Citrus Fancy Pokepuff |
| 0E | Mocha Fancy Pokepuff |
| 0F | Spice Fancy Pokepuff |
| 10 | Sweet Deluxe Pokepuff |
| 11 | Mint Deluxe Pokepuff |
| 12 | Citrus Deluxe Pokepuff |
| 13 | Mocha Deluxe Pokepuff |
| 14 | Spice Deluxe Pokepuff |
| 15 | Wish Supreme Pokepuff |
| 16 | Honor Supreme Pokepuff |
| 17 | Spring Supreme Pokepuff |
| 18 | Summer Supreme Pokepuff |
| 19 | Fall Supreme Pokepuff |
| 1A | Winter Supreme Pokepuff |
Super Training Bag Index Numbers
| Index | Name |
| 00 | Empty |
| 01 | HP Bag S |
| 02 | HP Bag M |
| 03 | HP Bag L |
| 04 | ATK Bag S |
| 05 | ATK Bag M |
| 06 | ATK Bag L |
| 07 | Def Bag S |
| 08 | Def Bag M |
| 09 | Def Bag L |
| 0A | Sp.A Bag S |
| 0B | Sp.A Bag M |
| 0C | Sp.A Bag L |
| 0D | Sp.D Bag S |
| 0E | Sp.D Bag M |
| 0F | Sp.D Bag L |
| 10 | Speed Bag S |
| 11 | Speed Bag M |
| 12 | Speed Bag L |
| 13 | Strength Bag |
| 14 | Toughen Up Bag |
| 15 | Swiftness Bag |
| 16 | Big-Shot Bag |
| 17 | Double-Up Bag |
| 18 | Team Flare Bag |
| 19 | Reset Bag |
| 1A | Soothing Bag |