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

Support older data center format versions #19

Closed
alexrp opened this issue May 21, 2022 · 14 comments
Closed

Support older data center format versions #19

alexrp opened this issue May 21, 2022 · 14 comments
Labels
area: documentation Issues related to the documentation. area: formats Issues related to the file format APIs. area: research Issues related to reverse engineering of the game. area: tools Issues related to the command line tools.
Milestone

Comments

@alexrp
Copy link
Member

alexrp commented May 21, 2022

In particular:

  • The 32-bit variant of the current version 6.
  • The 2012-era version 3 (only 32-bit).

This would require rethinking of how the data center code is structured. In particular, since nodes and attributes have different layout, we'd need helper functions to access the raw fields correctly. Possibly other stuff.

@alexrp alexrp added state: deliberation Issues that require design work and/or discussion. type: feature area: formats Issues related to the file format APIs. area: research Issues related to reverse engineering of the game. labels May 21, 2022
@alexrp alexrp added this to the v2.0 milestone May 21, 2022
@alexrp alexrp self-assigned this May 21, 2022
@alexrp
Copy link
Member Author

alexrp commented May 21, 2022

  • The 32-bit variant of the current version 6.

AFAIK there's no way to distinguish a 32-bit version 6 file from a 64-bit version 6 file. They didn't bother incrementing the version number. So users would have to specify bitness when loading/saving.

@alexrp
Copy link
Member Author

alexrp commented May 30, 2022

The 2012-era version 3 (only 32-bit).

From Caali: This is just missing the client_version header field. Otherwise identical to 32-bit version 6.

@alexrp alexrp added area: tools Issues related to the command line tools. area: documentation Issues related to the documentation. labels May 30, 2022
@alexrp
Copy link
Member Author

alexrp commented May 31, 2022

Some changes required for this to happen:

  • Bitness must be settable on DataCenterLoadOptions.
  • Format version (V3, V6X86, X6X64) must be settable on DataCenterSaveOptions.
  • Size of nodes/attributes has to be hardcoded for each bitness instead of using Unsafe.SizeOf<T>().
  • Some helpers need to be written for accessing node/attribute fields (to deal with bitness-dependent padding).
  • Options need to be added to novadrop-dc to specify format version and bitness (see also Add option to novadrop-dc commands for setting the revision in the data center header #38).
  • Data center format documentation needs to be updated.

@alexrp alexrp added state: approved Enhancements and tasks that have been approved. and removed state: deliberation Issues that require design work and/or discussion. labels May 31, 2022
@alexrp alexrp changed the title Consider supporting older data center format versions Support older data center format versions May 31, 2022
@AgencyDev
Copy link

AgencyDev commented Jun 21, 2022

Hi as requested the 92.04.dat can be found here: https://drive.google.com/file/d/1caE8SgMk4ltEn2Y-ppKTAjpUq52iQVcf/view?usp=sharing

key BA08C84E3C557C205A86A6497C564904
iv 07B0920656502F51DB8E562B328E852B

@Archgeus
Copy link

Archgeus commented Oct 2, 2022

Here's the oldest DC i have... hope it helps

https://www.mediafire.com/file/qj8ho6pzotkgky2/29.09.rar/file

Key
566E3235-0E909C17-914F164A-0E306F10

IV
1D1BF571-9F2E4D4E-C2E69778-65437E32

I have also more dc's oldest than 29.09 but without key/iv (26.04, 27.07)... if it helps just let me know

Thanks for your awesome job :)

@alexrp
Copy link
Member Author

alexrp commented Jun 18, 2023

Just checking: Is anyone still interested in this feature today? I am considering getting around to it soon, but only if it will actually have users.

@Archgeus
Copy link

Archgeus commented Jun 18, 2023

Just checking: Is anyone still interested in this feature today? I am considering getting around to it soon, but only if it will actually have users.

Yeah, please go for it as soon as you can.

@alexrp
Copy link
Member Author

alexrp commented Jun 18, 2023

@Archgeus would you mind elaborating on your use case? Also which data center format versions you care about?

@KYGAS
Copy link

KYGAS commented Jun 18, 2023

Just checking: Is anyone still interested in this feature today? I am considering getting around to it soon, but only if it will actually have users.

I had to do some work regarding Akeron server DC recently to create a compatible PSP for it; ( not sure which version it is; 281908 if that means something )
RealEditor can parse it and I could create the data however it seems some are missing which I am not sure if they are missing because of the version difference or because of RealEditor scheme.

If novadrop would support it I could check if the issue is RE related or version difference

@Archgeus
Copy link

@Archgeus would you mind elaborating on your use case? Also which data center format versions you care about?

I'm currently on a work of restoring 71.03 server files

1

But since it has been a really time-consuming i'm focusing on 92.04 until the miracle happens :)

Aside of that, i'm using 28.05 DC to collect resources in order to restore forgotten/deleted quest in early patches to my 92.04, but unfortunatelly novadrop don't work with that DC version (idk which one is to be honest, has been a tedious task using GothosDC).

Obviously in order to use more easily 92.04 DC :)

@alexrp
Copy link
Member Author

alexrp commented Jun 18, 2023

Ok, I'll make this feature the priority next time I do some work on Novadrop.

@alexrp alexrp modified the milestones: v2.0, v2.1 Aug 17, 2023
@alexrp
Copy link
Member Author

alexrp commented Jan 6, 2024

Here's the oldest DC i have... hope it helps

https://www.mediafire.com/file/qj8ho6pzotkgky2/29.09.rar/file

Key 566E3235-0E909C17-914F164A-0E306F10

IV 1D1BF571-9F2E4D4E-C2E69778-65437E32

I have also more dc's oldest than 29.09 but without key/iv (26.04, 27.07)... if it helps just let me know

Thanks for your awesome job :)

This archive seems to be password-protected.

@Archgeus
Copy link

Archgeus commented Jan 6, 2024

Here's the oldest DC i have... hope it helps
https://www.mediafire.com/file/qj8ho6pzotkgky2/29.09.rar/file
Key 566E3235-0E909C17-914F164A-0E306F10
IV 1D1BF571-9F2E4D4E-C2E69778-65437E32
I have also more dc's oldest than 29.09 but without key/iv (26.04, 27.07)... if it helps just let me know
Thanks for your awesome job :)

This archive seems to be password-protected.

Ooops, very important detail, my bad.

Is RaGEZONE

alexrp added a commit that referenced this issue Jan 6, 2024
Also moved a couple of sanity checks out of strict mode to prevent unexpected
exception types in some cases.

Closes #19.
alexrp added a commit that referenced this issue Jan 6, 2024
Also moved a couple of sanity checks out of strict mode to prevent unexpected
exception types in some cases.

Closes #19.
@alexrp alexrp closed this as completed in 5a82db5 Jan 6, 2024
@alexrp
Copy link
Member Author

alexrp commented Jan 6, 2024

OK, thanks.

master now has support for older format versions. Please give it a try. Usage is --architecture <arch> (x86, x64) when loading and --format <format> (v3, v6x86, v6x64) when saving.

@alexrp alexrp removed the state: approved Enhancements and tasks that have been approved. label Jan 6, 2024
alexrp added a commit that referenced this issue Jan 6, 2024
alexrp added a commit that referenced this issue Jan 6, 2024
@alexrp alexrp removed their assignment Jan 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: documentation Issues related to the documentation. area: formats Issues related to the file format APIs. area: research Issues related to reverse engineering of the game. area: tools Issues related to the command line tools.
Development

No branches or pull requests

4 participants