VIP
|
|
Posts: 559
|
|
|
Last seen: Jan 31, 2016 16:07:14 GMT
|
|
Post by 無限 on Mar 1, 2017 1:51:43 GMT
there are save editors out there. but there are some greedy fellows putting a pay wall around it.
so i am asking to get info on the decrypted save file so i can start building a save editor that is open and free.
|
|
Warrior
|
|
Posts: 87
|
|
|
Last seen: May 16, 2018 3:55:41 GMT
|
|
Post by adarshssgss on Mar 1, 2017 5:07:06 GMT
there are save editors out there. but there are some greedy fellows putting a pay wall around it. so i am asking to get info on the decrypted save file so i can start building a save editor that is open and free. i didnt get it. What do we have to do
|
|
Moderator
|
|
Posts: 1,576
|
|
|
Last seen: Jul 9, 2022 9:43:03 GMT
|
|
Post by eternity on Mar 1, 2017 7:18:01 GMT
Mugen, there is some info on any of my tools source code, in Xv2SaveFile.h/cpp.
Anyway, I'll put it here for documentation purposes. It is mostly related with things that are used by Cycit/Cac2X2m.
Offset 0 - Signature (#SAV) Offset 8 - Steam id 64 xored with the value 0x7468656265636F6E Offset 0x46: If the user didn't import a hero from XV1, this value holds the XV1 hero preset. 0 -> male human, 1 -> female human, 2 -> male saiyan, and so on until all possible xv1 hero presets (which are in the .pal file of the game).
If the player imported a hero from xv1, I have no idea about this value or how the XV1 hero is saved.
The first CaC structure begins at 0x1E830. The next one begins 0xC6C8 bytes later. The next one another 0xC6C8 bytes later and so on until you have the eight cacs.
The CaC structure (only things I looked for Cycit/Cac2X2m, this structure continues further down, but I haven't researched that). Offset relative to the start of the structure.
typedef struct { uint8_t unk_00[0x14]; // 0 -> starts at 0 in a new chara uint32_t race; // 0x14 uint32_t voice; // 0x18 uint32_t body_shape; // 0x1C uint32_t unk_20; uint16_t skin_color1; // 0x24 uint16_t skin_color2; // 0x26 uint16_t skin_color3; // 0x28 uint16_t skin_color4; // 0x2A uint16_t hair_color; // 0x2C uint16_t eye_color; // 0x2E uint16_t makeup_color1; // 0x30 uint16_t makeup_color2; // 0x32 uint16_t makeup_color3; // 0x34 uint8_t unk_36[0xE]; char name[64]; // 0x44 Ascii... or utf8, we don't know for sure uint32_t face_base; // 0x84 uint32_t face_forehead; // 0x88 uint32_t eyes; // 0x8C ( uint32_t nose; // 0x90 uint32_t ears; // 0x94 uint32_t hair; // 0x98 uint32_t unk_9C[4]; // these maybe regen rates or something like that uint32_t level; // 0xAC uint8_t unk_B0[4]; uint32_t attribute_points; // 0xB4 uint32_t hea; // 0xB8 uint32_t ki; // 0xBC uint32_t atk; // 0xC0 uint32_t str; // 0xC4 uint32_t bla; // 0xC8 uint32_t stm; // 0xCC XV2CacSet sets[XV2_NUM_PRESETS]; // 0xD0 0 is current clothing, 1-7 are presets } PACKED XV2Cac;
(XV2_NUM_PRESETS = 8) Where X2CacSet is:
typedef struct { uint32_t top; // 0 uint32_t bottom; // 4 uint32_t gloves; // 8 uint32_t shoes; // 0xC uint32_t accesory; // 0x10 uint32_t talisman; // 0x14 uint32_t qq; // 0x18 uint16_t top_color1; // 0x1C uint16_t top_color2; // 0x1E uint16_t top_color3; // 0x20 uint16_t top_color4; // 0x22 uint16_t bottom_color1; // 0x24 uint16_t bottom_color2; // 0x26 uint16_t bottom_color3; // 0x28 uint16_t bottom_color4; // 0x2A uint16_t gloves_color1; // 0x2C uint16_t gloves_color2; // 0x2E uint16_t gloves_color3; // 0x30 uint16_t gloves_color4; // 0x32 uint16_t shoes_color1; // 0x34 uint16_t shoes_color2; // 0x36 uint16_t shoes_color3; // 0x38 uint16_t shoes_color4; // 0x3A // (Note: skill matches the id1 in cus) uint32_t super_skills[4]; // 0x3C uint32_t ult_skills[2]; // 0x4C uint32_t evasive_skill; // 0x54 uint32_t blast_skill; // 0x58 set to 0xFFFFFFFF (cac uses blast from talisman) uint32_t awaken_skill; // 0x5C } XV2CacSet;
|
|
VIP
|
|
Posts: 559
|
|
|
Last seen: Jan 31, 2016 16:07:14 GMT
|
|
Post by 無限 on Mar 1, 2017 15:31:21 GMT
XV1 heros are stored in the save too. all of them.
|
|
Moderator
|
|
Posts: 1,576
|
|
|
Last seen: Jul 9, 2022 9:43:03 GMT
|
|
Post by eternity on Mar 1, 2017 15:45:04 GMT
XV1 heros are stored in the save too. all of them. The non-imported XV1 hero is only stored as that number at offset 0x46, which acts as an index to the npc presets of type heroe. In fact, those presets can be modified with latest version of Cycit without the need of touching the save. (previous version of Cycit had a small bug that corrrupted those specific entries in the .pal file)
|
|
VIP
|
|
Posts: 559
|
|
|
Last seen: Jan 31, 2016 16:07:14 GMT
|
|
Post by 無限 on Mar 1, 2017 16:53:21 GMT
sorry, i wasn't clear enough. i meant the XV1 imported characters are stored in the save file too. its after the characters you use data or near end of file.
|
|