User:Dualie: Difference between revisions

From Inkipedia, the Splatoon wiki
No edit summary
(Replaced content with "Hi, I'm Dualie. Maybe there are some useful stuffs here? If you're looking for save data related info, the page has been moved to https://wiki.oatmealdome.me/Save")
Tag: Replaced
 
Line 1: Line 1:
Hi, I'm Dualie. Maybe there are some useful stuffs here?
Hi, I'm Dualie. Maybe there are some useful stuffs here?


== Save data offsets ==
If you're looking for save data related info, the page has been moved to https://wiki.oatmealdome.me/Save
Lots of credits to [https://github.com/WulfyStylez/switch-save-work/blob/master/Splatoon2.txt WulfyStylez] for finding a bunch of stuffs and openly documenting it!<br />
If you want to contribute in finding save stuffs and need a save decryptor, you can find mine [https://github.com/3096/effective-spoon/releases/tag/splatsave here].<br /><br />
'''Save Header:'''
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
! Value
|-
| 0x0
| 4
| (Save Version)
| 0, 1, 2 or 3, etc
|-
| 0x4
| 4
| (Dev Save Version?)
|
|-
| 0x8
| 4
| crc32 of save body (everything between header and footer)
| DEADBEAF
|-
| 0xC
| 4
| (Padding)
| 0
|}
----
'''Save Body Structure'''
{| class="wikitable" border="1"
|-
! Offset
! Absolute Offset
! Size
! Description
|-
| 0x0
| 0x10
| 0x2B210
| SaveDataCmn
|-
| 0x2B210
| 0x2B220
| 0xC750
| SaveDataVss
|-
| 0x37960
| 0x37970
| 0x33E8
| SaveDataLocal
|-
| 0x3AD48
| 0x3AD58
| 0x5E78
| SaveDataMsn
|-
| 0x40BC0
| 0x40BD0
| 0x2D00
| SaveDataShop
|-
| 0x438C0
| 0x438D0
| 0x49C0
| SaveDataCoop
|-
| 0x48280
| 0x48290
| 0x11C
| SaveDataFest
|-
| 0x4839C
| 0x483AC
| 0x3E460
| SaveDataStats
|-
| 0x867FC
| 0x8680C
|
| SaveDataMsnOcta
|}
----
'''SaveDataCmn(0x10):'''
{| class="wikitable" border="1"
|-
! Offset
! Absolute Offset
! Size
! Description
! Value
|-
| 0x0
| 0x10
| 4
| PlayerModelType (Gender, basically)
| |0: Woomy | 1: Ngyes | 2: Veemo | 3: NO, 2 is better
|-
| 0x4
| 0x14
| 4
| PlayerHairId
| See Mush/HairInfo.byml
|-
| 0x8
| 0x18
| 4
| PlayerBottomId
| See Mush/BottomInfo.byml
|-
| 0xC
| 0x1C
| 4
| PlayerSkinColorId
| 0 to 6, 0 being lightest and 6 darkest
|-
| 0x10
| 0x20
| 4
| PlayerEyeColorId
| [https://pm1.narvii.com/6517/c094628ac4f3c695a65c14ca30099219a5c35f61_hq.jpg 0 to 13, each value represents a color]
|-
| 0x14
| 0x24
| 4
| Weapon (Equipped Main Weapon Id)
| See Mush/WeaponInfo_Main.byml
|-
| 0x18
| 0x28
| 4
| Weapon (Equipped Sub Weapon Id)
| See Mush/WeaponInfo_Sub.byml
|-
| 0x1C
| 0x2C
| 4
| Weapon (Equipped Special Weapon Id)
| See Mush/WeaponInfo_Special.byml
|-
| 0x20
| 0x30
| 4
| Weapon (Equipped Weapon Turf inked)
| 1234567
|-
| 0x24
| 0x34
| 4
| unk (padding?)
| 0?
|}
 
Weapon Inventory part:
{| class="wikitable" border="1"
|-
! Offset
! Absolute Offset
! Size of Each Entry (HaveWeapon)
! Total Size
! Description
|-
| 0x28
| 0x38
| 0x130
| 0x13000
| (Weapon Inventory)
|}
 
Structure of Entry (HaveWeapon)
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
! Value
|-
| 0x0
| 4
| Weapon (WeaponMain id)
| See Mush/WeaponInfo_Main.byml
|-
| 0x4
| 4
| Weapon (WeaponSub id)
| See Mush/WeaponInfo_Sub.byml
|-
| 0x8
| 4
| Weapon (WeaponSp id)
| See Mush/WeaponInfo_Special.byml
|-
| 0xC
| 4
| Weapon (Turf inked)
| 1234567
|-
| 0x10
| 0x8
| (Time. Last used time?)
| UNIX Epoch time
|-
| 0x18
| 0x4
| unk
|
|-
| 0x1C
| 0x4
| unk
|
|-
| 0x20
| 0x108
| unk (Some weird block, likely represents various flags)
| A buncha 0x55555555, bit flipped to 0xAAAAAAAA at some places
|-
| 0x128
| 4
| (New or not)
| 0 = new, 1 = not new
|-
| 0x12C
| 4
| unk (padding?)
| 0?
|}
 
SaveDataCmn (Cont'd):
 
{| class="wikitable" border="1"
|-
! Offset
! Absolute Offset
! Size
! Description
! Value
|-
| 0x13028
| 0x13038
| 4
| (EquippedShoeId)
| See Mush/GearInfo_Shoes.byml
|-
| 0x1302C
| 0x1303C
| 4
| (EquippedClothesId)
| See Mush/GearInfo_Clothes.byml
|-
| 0x13030
| 0x13040
| 4
| (EquippedHeadGearId)
| See Mush/GearInfo_Head.byml
|-
| 0x13034
| 0x13044
| 4
| unk (padding?)
| 0?
|}
 
Gear Inventory part:
 
{| class="wikitable" border="1"
|-
! Offset
! Absolute Offset
! Size of Each Entry (HaveGear)
! Total Size
! Description
|-
| 0x13038
| 0x13048
| 0x30
| 0x6000
| (Shoe Inventory)
|-
| 0x19038
| 0x19048
| 0x30
| 0x6000
| (Clothes Inventory)
|-
| 0x1F038
| 0x1F048
| 0x30
| 0x6000
| (HeadGearInventory)
|}
 
Structure of Entry (HaveGear):
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
! Value
|-
| 0x0
| 4
| (Gear id)
| See GearInfo_XXXX.byml
|-
| 0x4
| 4
| (Total # of unlocked abilities - including main slot)
| 1, 2, 3, or 4
|-
| 0x8
| 4
| (Total # of ability slots - including main slot)
| 1, 2, 3, or 4
|-
| 0xC
| 4
| (Main slot ability id)
| To be filled in
|-
| 0x10
| 4
| (Sub slot#1 ability id)
| To be filled in
|-
| 0x14
| 4
| (Sub slot#1 ability id)
| To be filled in
|-
| 0x18
| 4
| (Sub slot#1 ability id)
| To be filled in
|-
| 0x1C
| 4
| unk
|
|-
| 0x20
| 0x8
| Time (Last used time?)
| UNIX Epoch time
|-
| 0x28
| 4
| (New or not)
| 0 = new, 1 = not new
|-
| 0x2C
| 4
| unk (padding?)
| 0?
|}
 
SkillChip (Ability Chuncks) Inventory part:
{| class="wikitable" border="1"
|-
! Offset
! Absolute Offset
! Size of Each Entry (HaveSkillChip)
! Total Size
! Description
|-
| 0x25038
| 0x25048
| 0x8
| 0x200
| (SkillChip (a.k.a. Ability Chuncks) Inventory)
|}
 
Structure of Entry (HaveSkillChip):
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
! Value
|-
| 0x0
| 4
| (SkillId?)
| To be filled in
|-
| 0x4
| 4
| (Skill chip amount)
| 696
|}
 
BoostTicket (Crusty Sean) Inventory part:
{| class="wikitable" border="1"
|-
! Offset
! Absolute Offset
! Size of Each Entry (HaveBoostTicket)
! Total Size
! Description
|-
| 0x25238
| 0x25248
| 0xC
| 0x300
| (BoostTicket Inventory)
|}
 
Structure of Entry (HaveBoostTicket):
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
! Value
|-
| 0x0
| 4
| (Ticket Id) (for what kind of food or drink)
| To be filled in
|-
| 0x4
| 4
| (Boosted skill id for drinks) (-1 for food tickets)
| To be filled in
|-
| 0xC
| 4
| (Ticket amount)
| 69
|}
 
SaveDataCmn (Cont'd):
 
{| class="wikitable" border="1"
|-
! Offset
! Absolute Offset
! Size
! Description
! Value
|-
| 0x25538
| 0x25548
| 4
| TutorialResult
| 0 for not seen tutorial, > 0 for seen tutorial?
|-
| 0x2553C
| 0x2554C
| 0x4
| CtrlOption (Handheld Stick)
| Float, 1.0 for +5, -1.0 for -5
|-
| 0x25540
| 0x25550
| 0x4
| CtrlOption (Handheld Motion)
| Float, 1.0 for +5, -1.0 for -5
|-
| 0x25544
| 0x25554
| 0x4
| CtrlOption (Handheld motion ctrl flag)
| 1 for enabled
|-
| 0x25548
| 0x25558
| 0x40
| CtrlOption (unk)
| A buncha 0s?
|-
| 0x25588
| 0x25598
| 0x4
| CtrlOption (TV/Tabletop Stick)
| Float, 1.0 for +5, -1.0 for -5
|-
| 0x2558C
| 0x2559C
| 0x4
| CtrlOption (TV/Tabletop Motion)
| Float, 1.0 for +5, -1.0 for -5
|-
| 0x25590
| 0x255A0
| 0x4
| CtrlOption (TV/Tabletop motion ctrl flag)
| 1 for enabled
|-
| 0x25594
| 0x255A4
| 0x40
| CtrlOption (unk)
| A buncha 0s?
|-
| 0x255D4
| 0x255E4
| 0x10
| OnlinePlayPenalty (4 values)
| Haven't looked into yet
|-
| 0x255E8
| 0x255F8
| 0x8
| OnlinePlayPenalty Time (penalty start time?)
| UNIX Epoch time
|-
| 0x255F0
| 0x25600
| 0x188
| unk (Haven't looked into yet)
|
|-
| 0x25778
| 0x25788
| 4
| HaveMoney
| 9696969
|-
| 0x2577C
| 0x2578C
| 4
| HaveTurbanShell (Sea snails)
| 969
|-
| 0x25780
| 0x25790
| 0x108
| unk (Haven't looked into yet)
|
|-
| 0x25888
| 0x25898
| 8
| Time (time of save?)
| UNIX Epoch time
|-
| 0x25890
| 0x258A0
| 0x4458
| unk (Haven't looked into yet)
|
|-
| 0x29CE8
| 0x29CF8
| 0x1528
| unk (Padding?)
| A buncha 0?
|}
----
'''SaveDataVss(0x2B220):'''
{| class="wikitable" border="1"
|-
! Offset
! Absolute Offset
! Size
! Description
! Value
|-
| 0x0
| 0x2B220
| 4
| PlayerRank (Not rank, but level. They call it rank in the code.)
| Looks like level 1 is `0` and level 2 is `1`, etc)
|-
| 0x4
| 0x2B224
| 4
| Experience
| To be filled in
|-
| 0x8
| 0x2B228
| 4
| StarRank
| To be filled in
|-
| 0x14
| 0x2B234
| 4
| (TicketBoostRemaining)
| 20
|-
| 0x8768
| 0x33988
| 4
| (X Power Rainmaker)
| 2770.2 (Float)
|-
| 0x87B0
| 0x339D0
| 4
| (X Power Splatzone)
| 2809.7 (Float)
|-
| 0x87F8
| 0x33A18
| 4
| (X Power Tower Control)
| 2801.4 (Float)
|-
| 0x8840
| 0x33A60
| 4
| (X Power Clam Blitz)
| 2797.1 (Float)
|}
----
'''SaveDataLocal(0x37970):'''
----
'''SaveDataMsn(0x3AD58):'''
{| class="wikitable" border="1"
|-
! Offset
! Absolute Offset
! Size
! Description
! Value
|-
| 0x1E6C
| 0x3CBC4
| 4
| (HeroModePowerOrb)
| 6969
|-
| 0x1E70
| 0x3CBC8
| 4
| (MechanicalFish)
| 69
|}
----
'''SaveDataShop(0x40BD0):'''
----
'''SaveDataCoop(0x438D0?):'''
----
More to be added here...
----
'''Save Footer:'''<br />
Used for save crypto (as of ver 3)
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| EOF-0x30
| 0x10
| IV (initialization vector)
|-
| EOF-0x20
| 0x10
| Key Seed
|-
| EOF-0x10
| 0x10
| AES-CMAC
|}

Latest revision as of 23:30, 26 October 2018

Hi, I'm Dualie. Maybe there are some useful stuffs here?

If you're looking for save data related info, the page has been moved to https://wiki.oatmealdome.me/Save