-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implemented basic support for V11 file format. #5
Conversation
Looks quite alright. It could use a few more checks to ensure things line up with stuff we've seen personally, even if they'll likely never be hit. A few more personal notes I've made when looking at V11 (most were shared with Cad, and I hope it didn't ruin his vacation) - bunch will overlap with stuff done in the MR. Plenty of these characters redundant:
Perhaps ZenRowe could shine some light on the format changes (though I personally doubt it), but that would be dodgy info to proceed with in an open project. Some nitpicks (though I'm not related to the project, this is just my thoughts) - probably just pedantic and not that important:
|
Thank Alex. My work was definitely done on a much less structured approach than you took and I'm still suprised it works for the purposes of what I needed for my own app ASV. I simply stepped bytes using screen shots and exports from previous file format as a comparrison and read in what data looked to make sense. Using the lookup pointer provided in the new CustomItemDatas to determine where to start for each creature, along with new header offset for stored creature data. I have tidied it up a little on my own code repo creating a new "ArkStore" class object which reads in all of this new data - which unfortunately was never "forked" from the original toolkit and was done outside of Github before I uploaded it there so can't pull request so easily on that one. |
.. this is then called out to from ArkSavefile.readBinaryStoredObjects:
|
There's no reason for your patch not to work, and it's in fact pretty clean for just cryopods. |
…ally a string, not an int - to define it a cryo creature is neutered.
Another report of another file format change. This time not version dependent though but based on the command line switch "-UseStore". Seems to add some more bytes to hibernation header data. Will investigate after work this evening. |
Identified from official saves which use command line switches: -newsaveformat -usestore
IIRC -usestore stores character data within the world dump. Those fields may be related but I haven't done any research on it. |
+ Reduced check on byte size for CustomItemDatas and only read in first 10 bytes to include offset to cryo store data.
Thank you very much! |
Not quite right mate. Still investigating but official Island PVE 892 crashing on load. |
Do you have a stack trace of that crash? Edit: Oh wait, I started thinking of the game and not the toolkit. That makes it easier for me to join in I guess. |
The save file is https://arkfiles.com/pc/2023-08-30/nitradouswest151.newofficialtheisland892.zip . ArkArchive.ReadBytes(int) So the |
Perhaps there's an integer used for seeking that's overflowing? There's 2,684,609 objects in the save file, and the last one has a relative property block offset of 1,023,535,541. The property block itself starts at 198,888,027. Added up, that's a seek to 1,222,423,568, which is int32.MaxValue + 925,060,079. |
Mm, never mind, quite doubtful for problems to start at the offset you mentioned (though GameObject does have an integer variable that will overflow with later objects). |
Hacky implementation. Somebody with better knowledge of file formats should be able to tidy up what I've done but it works (at least on the saves I have available to test with)