Library for reading save files from Dolls Nest
Find a file
Joshua Goins b0fbf39305 Update progress of the parser in the README
Almost everything can be read now, with only a few exceptions. Note that
write support is not yet complete.
2025-02-25 19:56:38 -05:00
paramacro Add a much better, faster and more ergonomic way to parse structs 2025-02-25 19:30:16 -05:00
src Write "None" entry at the end of tagged objects 2025-02-25 19:53:00 -05:00
tests Check entries that actually exist in slot roundtrip test 2025-02-25 19:54:48 -05:00
.gitignore Add initial files 2025-02-19 19:34:13 -05:00
Cargo.lock Add a much better, faster and more ergonomic way to parse structs 2025-02-25 19:30:16 -05:00
Cargo.toml Add a much better, faster and more ergonomic way to parse structs 2025-02-25 19:30:16 -05:00
LICENSE Add initial files 2025-02-19 19:34:13 -05:00
README.md Update progress of the parser in the README 2025-02-25 19:56:38 -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 almost now complete (save for a few structs like DateTime), and write support is in progress.

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.