Pokémon ORAS Save File Structure

From ProjectPokemon Wiki
Revision as of 02:21, 6 December 2014 by SciresM (talk | contribs) (Basic framework to fill details into.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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 ????
0001 5800 00000B90 75E22 ????
0002 6400 0000002C 75E2A ????
0003 6600 00000038 75E32 ????
0004 6800 00000150 75E3A ????
0005 6A00 00000004 75E42 ????
0006 6C00 00000008 75E4A ????
0007 6E00 000001C0 75E52 ????
0008 7000 000000BE 75E5A ????
0009 7200 00000024 75E62 ????
000A 7400 00002100 75E6A ????
000B 9600 00000130 75E72 ????
000C 9800 00000440 75E7A ????
000D 9E00 00000574 75E82 ????
000E A400 00004E28 75E8A ????
000F F400 00004E28 75E92 ????
0010 14400 00004E28 75E9A ????
0011 19400 00000170 75EA2 ????
0012 19600 0000061C 75EAA ????
0013 19E00 00000504 75EB2 ????
0014 1A400 000011CC 75EBA ????
0015 1B600 00000644 75EC2 ????
0016 1BE00 00000104 75ECA ????
0017 1C000 00000004 75ED2 ????
0018 1C200 00000420 75EDA ????
0019 1C800 00000064 75EE2 ????
001A 1CA00 000003F0 75EEA ????
001B 1CE00 0000070C 75EF2 ????
001C 1D600 00000180 75EFA ????
001D 1D800 00000004 75F02 ????
001E 1DA00 0000000C 75F0A ????
001F 1DC00 00000048 75F12 ????
0020 1DE00 00000054 75F1A ????
0021 1E000 00000644 75F22 ????
0022 1E800 000005C8 75F2A ????
0023 1EE00 000002F8 75F32 ????
0024 1F200 00001B40 75F3A ????
0025 20E00 000001F4 75F42 ????
0026 21000 000003E0 75F4A ????
0027 21400 00000216 75F52 ????
0028 21800 00000640 75F5A ????
0029 22000 00001A90 75F62 ????
002A 23C00 00000400 75F6A ????
002B 24000 00000618 75F72 ????
002C 24800 0000025C 75F7A ????
002D 24C00 00000834 75F82 ????
002E 25600 00000318 75F8A ????
002F 25A00 000007D0 75F92 ????
0030 26200 00000C48 75F9A ????
0031 27000 00000078 75FA2 ????
0032 27200 00000200 75FAA ????
0033 27400 00000C84 75FB2 ????
0034 28200 00000628 75FBA ????
0035 28A00 00000400 75FC2 ????
0036 28E00 00007AD0 75FCA ????
0037 30A00 000078B0 75FD2 ????
0038 38400 00034AD0 75FDA ????
0039 6D000 0000E058 75FE2 ????
---- 75E00 00000800 ----- Checksum Storage
[0x14] Header: u64 savetime1 & u64 savetime2, 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