Skip to content
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

[Feature Request]: Support for importing PlayStation saves #6904

Open
AJenbo opened this issue Jan 17, 2024 · 2 comments
Open

[Feature Request]: Support for importing PlayStation saves #6904

AJenbo opened this issue Jan 17, 2024 · 2 comments
Labels
enhancement New feature or request good first issue Good for newcomers platform support

Comments

@AJenbo
Copy link
Member

AJenbo commented Jan 17, 2024

Feature Type

Other (please specify)

Describe

Could be interesting to be able to import save games from the PS1 version.

The PS1 version has 2 ways of saving, similar in format to the the SP and MP saves of the PC version.

The hero only format can contain multiple heroes.

I'm not sure if this should be implemented directly or as a conversion tool. But just for fun I have mapped out some of the data structure.

struct ItemPack {
    uint32_t iSeed;
    uint16_t iCreateInfo;
    uint16_t idx;
    uint16_t wValue;
    uint8_t bId;
    uint8_t bDur;
    uint8_t bMDur;
    uint8_t bCh;
    uint8_t bMCh;
    uint8_t field10_0xf;
    uint8_t field10_0x10;
    uint8_t field10_0x11;
    uint8_t field10_0x12;
    uint8_t field10_0x13;
};

struct PlayerPack {
    struct ItemPack SpdList[8];
    struct ItemPack InvBody[7];
    struct ItemPack InvList[40];
    uint8_t field3_0x44c;
    uint8_t field4_0x44d;
    uint8_t field5_0x44e;
    uint8_t field6_0x44f;
    uint8_t field7_0x450;
    uint8_t field8_0x451;
    uint8_t field9_0x452;
    uint8_t field10_0x453;
    uint8_t field11_0x454;
    uint8_t field12_0x455;
    uint8_t field13_0x456;
    uint8_t field14_0x457;
    uint8_t field15_0x458;
    uint8_t field16_0x459;
    uint8_t field17_0x45a;
    uint8_t field18_0x45b;
    uint32_t pExperience;
    uint32_t pHPBase;
    uint32_t pMaxHPBase;
    uint32_t pManaBase;
    uint32_t pMaxManaBase;
    uint8_t field24_0x470;
    uint8_t field25_0x471;
    uint8_t field26_0x472;
    uint8_t field27_0x473;
    char pName[32];
    uint8_t InvGrid[40];
    uint8_t pSplLvl[37];
    uint8_t field67_0x4e1;
    uint8_t field68_0x4e2;
    uint8_t field69_0x4e3;
    uint8_t field70_0x4e4;
    uint8_t pClass;
    uint8_t pBaseStr;
    uint8_t pBaseMag;
    uint8_t pBaseDex;
    uint8_t pBaseVit;
    uint8_t pLevel;
    uint8_t field77_0x4eb;
    uint8_t field78_0x4ec;
    uint8_t field79_0x4ed;
    uint8_t field80_0x4ee;
    uint8_t field81_0x4ef;
    uint8_t field82_0x4f0;
    uint8_t field83_0x4f1;
    uint8_t field84_0x4f2;
    uint8_t field85_0x4f3;
    uint8_t field86_0x4f4;
    uint8_t field87_0x4f5;
    uint8_t field88_0x4f6;
};

image

Two examples of char only save files (one with 3 heros):
Export_rogue_char_sorc_save.zip
export_3_char_files.zip

Stats froms the last of the heros in the file with 3 (the rest are new hero):
image
image
image

@AJenbo AJenbo added the good first issue Good for newcomers label Jan 17, 2024
@Chonkblonk
Copy link

Oh, I didn't think this would even be a possibility, but I guess they didn't really change how players work in the Playstation version.
So, if it would be possible to convert a character from the Playstation version to work on PC, could the reverse also be done?

@AJenbo
Copy link
Member Author

AJenbo commented Jan 24, 2024

Yes

@kphoenix137 kphoenix137 added enhancement New feature or request platform support labels Mar 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers platform support
Projects
None yet
Development

No branches or pull requests

3 participants