Jump to content
  • About Technical Documentation

    Most of these articles were previously on our wiki. We are currently in the process of migrating these articles, so please excuse any formatting or credit issues that may be present. If you wish to report a specific issue, please open a thread in the Wiki Feedback forum.

  • Technical Documentation:
    Generation 6

    Sign in to follow this  

    ORAS Save Structure


    SciresM

    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


    [0x22] Box Name (* 31) 
    [0x01] Box Background *31 
    [0x03] Background Unlock Flags

    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


    19E78 - Ash Counter 
    0x1A0FC-0x1A27B - Event Bitflags (0x180 * 8)

    0014 1A400 000011CC 75EBA Pokedex & Encounter Count


    0x1A400 - Constant? 0x2F120F17 
    0x1A004 - u32 counter (?) 
    0x1A408 - 0x60 Region 1 - Owned 
    0x1A468 - 0x60 Region 2 - Encountered Male 
    0x1A4C8 - 0x60 Region 3 - Encountered Female 
    0x1A528 - 0x60 Region 4 - Encountered Male * 
    0x1A588 - 0x60 Region 5 - Encountered Female * 
    0x1A5E8 - 0x60 Region 6 - Displayed Male 
    0x1A648 - 0x60 Region 7 - Displayed Female 
    0x1A6A8 - 0x60 Region 8 - Displayed Male * 
    0x1A708 - 0x60 Region 9 - Displayed Female * 
    0x1A768 - 0x26 Form Bitflag Region 1 - Encountered form 
    0x1A78E - 0x26 Form Bitflag Region 2 - Encountered form * 
    0x1A7B4 - 0x26 Form Bitflag Region 3 - Displayed form 
    0x1A7DA - 0x26 Form Bitflag Region 4 - Displayed form* 
    0x1A800 - 0x27C 7bit/entry flags (Language) 
    0x1AA7C - u32 ??? 0? 
    0x1AA80 - Spinda Spot Pattern (First EC encountered) 
    0x1AA86 - Encounter Counts

    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)


    0x48 per Pokemon Slot; capped with 4 bytes at end (total 0x1B4) 
    0x00 - Species 
    0x02 - Held Item 
    0x04 - Move 1 
    0x06 - Move 2 
    0x08 - Move 3 
    0x0A - Move 4 
    0x0C - Encryption Key 
    0x10 - TID 
    0x12 - SID 
    0x14 - [Nicknamed,1][Shiny,1][Level,7][Gender,2][Form,5] bits 
    0x16 - Unused 
    0x18 - Nickname (0x16) + 0x3F80 end 
    0x30 - Trainer Name (0x16) + 0x3F80 end 

    Last 4 bytes: 
    0x00 - # of Hall of Fame Victory 
    0x01 - [Unk,1][Day of Month,5][Month,4][Year,8] bits

    0025 20E00 000001F4 75F42 Maison Data


    205C0 - u16 Current Singles Streak 
    205C2 - u16 Current Super Singles Streak 
    205C4 - u16 Best Singles Streak 
    205C6 - u16 Best Super Singles Streak 
    205C8 - u16 Current Doubles Streak 
    205CA - u16 Current Super Doubles Streak 
    205CC - u16 Best Doubles Streak 
    205CE - u16 Best Super Doubles Streak 
    205D0 - u16 Current Triples Streak 
    205D2 - u16 Current Super Triples Streak 
    205D4 - u16 Best Triples Streak 
    205D6 - u16 Best Super Triples Streak 
    205D8 - u16 Current Rotation Streak 
    205DA - u16 Current Super Rotation Streak 
    205DC - u16 Best Rotation Streak 
    205DE - u16 Best Super Multi Streak 
    205E0 - u16 Current Multi Streak 
    205E2 - u16 Current Super Multi Streak 
    205E4 - u16 Best Multi Streaks 
    205E6 - u16 Best Super Multi Streak

    0026 21000 000003E0 75F4A Daycare Data (Larger than XY)


    u32 (Slot 1) Occupied Flag 
    u32 (Slot 1) Steps Taken Since Depositing1 
    xE8 (Slot 1) Box EK6 1 
    u32 (Slot 2) Occupied Flag 
    u32 (Slot 2) Steps Taken Since Depositing2 
    xE8 (Slot 2) Box EK6 2 
    u64 Flag (egg available) 
    u64 RNG Seed

    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
    24970 (0x20) - Pokemon Bank (application?) data
    002D 24C00 00000834 75F82 PSS Friend Data [0x15]*100 entries
    002E 25600 00000318 75F8A Super Training Data


    24610 - Mission Best Times (seconds as 4 byte floats)*30 
    24788 - u32 Species That Scored Best Time*30 
    24908 - Bag Inventory (12 bags)

    002F 25A00 000007D0 75F92 ????
    0030 26200 00000C48 75F9A Pokemon Link 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

    Form Dex Index

    Forms follow the same index as used in the pokémon data structure (i.e. first unown form is "A"...)
    Mega Pokémon have a flag for non-mega form (regardless of gender) and for mega form.
    Parenthesis indicates how many form flags there are.

    • Unown (28)
    • Deoxys (4)
    • Shaymin (2)
    • Giratina (2)
    • Rotom (6)
    • Shellos (2)
    • Gastrodon (2)
    • Burmy (3)
    • Wormadan (3)
    • Castform (4)
    • Cherrim (2)
    • Deerling (4)
    • Sawsbuck (4)
    • Meloetta (2)
    • Darmanitan (2)
    • Basculin (2)
    • Kyurem (3)
    • Keldeo (2)
    • Thundurus (2)
    • Tornadus (2)
    • Landorus (2)
    • Vivillion (20)
    • Flabebé (5)
    • Floette (6)
    • Florges (5)
    • Pumkaboo (4)
    • Gourgeist (4)
    • Aegislash (2)
    • Xerneas (2)
    • Venusaur (2)
    • Charizard (3)
    • Blastoise (2)
    • Alakazam (2)
    • Gengar (2)
    • Kangaskhan (2)
    • Pinsir (2)
    • Gyarados (2)
    • Aerodactyl (2)
    • Mewtwo (3)
    • Ampharos (2)
    • Scizor (2)
    • Heracross (2)
    • Houndoom (2)
    • Tyranitar (2)
    • Blaziken (2)
    • Gardevoir (2)
    • Mawile (2)
    • Aggron (2)
    • Medicham (2)
    • Manectric (2)
    • Banette (2)
    • Absol (2)
    • Latias (2)
    • Latios (2)
    • Garchomp (2)
    • Lucario (2)
    • Abomasnow (2)
    • Pikachu (1)
    • 5 unused bits --> (unused cosplay pikachu formes probably?)
    • Cosplay Pikachu (1)
    • Hoopa (2)
    • Beedrill (2)
    • Pidgeot (2)
    • Slowbro (2)
    • Steelix (2)
    • Sceptile (2)
    • Swampert (2)
    • Sableye (2)
    • Sharpedo (2)
    • Camerupt (2)
    • Altaria (2)
    • Glalie (2)
    • Salamence (2)
    • Metagross (2)
    • Rayquaza (2)
    • Lopunny (2)
    • Gallade (2)
    • Audino (2)
    • Diancie (2)
    • Kyogre (2)
    • Groudon (2)
    • Arceus (18)
    • Genesect (5)
    • Furfrow (10)
     

    Pokémon Bank (application?) data

    This region is written every time Pokemon Bank saves. It is a copy of first 0x20 bytes of Pokemon Bank savefile (turtle). Maybe this is used to store information of the last application used with the game, but currently no other application that interacts with ORAS savegame writes this data (Pokémon ORAS Special Demo does not write to this region).

    Offset Description
    0x00-0x04 Pokemon Bank unique ID? (seems linked to nnid)
    0x05-0x08 Unknown (0x00)
    0x09-0x0F Unknown, only present in turtle file (0x00 on game's savegame)
    0x10-0x14 Bank usage counter backup (previous counter)
    0x15-0x18 Bank usage counter
    0x19-0x1F Pokemon Bank signature? (always 48CA0A0002000000)

    Edited by evandixon
    Update formatting

    Sign in to follow this  


    User Feedback

    Recommended Comments

    There are no comments to display.


×
×
  • Create New...