Library for reading save files from Dolls Nest
Find a file
Joshua Goins 21ab9f2cb0 Fix and simplify string property parsing, add test
I figured out what the actual layout of this property is (instead of
guessing, which created some bad results.) And added tests of course!

Also fixed a bug in read_string_with_length() that didn't handle the
case where the string length is zero.
2025-02-23 15:52:21 -05:00
src Fix and simplify string property parsing, add test 2025-02-23 15:52:21 -05:00
.gitignore Add initial files 2025-02-19 19:34:13 -05:00
Cargo.lock Use 2024 edition 2025-02-23 11:22:49 -05:00
Cargo.toml Use 2024 edition 2025-02-23 11:22:49 -05:00
LICENSE Add initial files 2025-02-19 19:34:13 -05:00
README.md Add initial files 2025-02-19 19:34:13 -05:00

Ireko

Library for reading save files from Dolls Nest. Only the demo is supported because that's what is available at the time of writing.

The parser is not yet complete, and can only dump parts of the structured data. The code is also generally terrible because I'm still exploring the format.

Usage

Pass the .sav file you want to read as an argument. Not all .sav files are known to work, such as Level.sav and Player.sav.

$ ireko DollsNestDemo/Saved/SaveGames/AR0XJGFWA6HNIQ1AAUJ9UR828/Persistent.sav
Ok(
    TaggedSerialization {
        size_in_bytes: 135908,
        objs: [
            TaggedObject {
                size_in_bytes: 135904,
                entries: [
                    Entry {
                        name: "SavedDataVersion",
                        type: Some(
                            Int(
                                IntProperty {
                                    integer_size: 4,
                                    value: 0,
                                },
                            ),
                        ),
                    },
...

Technical Details

Dolls Nest uses the EasyMultiSave plugin, which saves using the .sav file extension. The save data is zlib-compressed, and decompressing them reveals a very similar tagged structure to GVAS. See more information in this blog post.

Credits & Thank You

  • uesave-rs for figuring out the basics of the EasyMultiSave format.

License

GPLv3

This project is licensed under the GNU General Public License 3.