From d44be66958d6990281678d4d72e7ac33ae04ec21 Mon Sep 17 00:00:00 2001 From: Martin Michelsen Date: Thu, 1 Dec 2022 21:40:45 -0800 Subject: [PATCH] document some of ep3 extra player data format --- src/Episode3/DataIndex.hh | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/Episode3/DataIndex.hh b/src/Episode3/DataIndex.hh index da0a6b40..f8c34b04 100644 --- a/src/Episode3/DataIndex.hh +++ b/src/Episode3/DataIndex.hh @@ -573,15 +573,28 @@ struct DeckDefinition { struct PlayerConfig { // Offsets in comments in this struct are relative to start of 61/98 command - /* 0728 */ parray unknown_a1; + /* 0728 */ parray unknown_a1; + /* 087C */ uint8_t is_encrypted; + /* 087D */ uint8_t basis; + /* 087E */ parray unknown_a3; + // The following fields (here through the beginning of decks) are encrypted + // using the trivial algorithm, with the basis specified above, if + // is_encrypted is equal to 1. + /* 0880 */ parray card_counts; + /* 0B70 */ parray unknown_a4; + /* 0C9A */ parray unknown_a5; + // This field appears to be doubly-encrypted, likely with the same trivial + // algorithm (but not the same basis). + /* 0CCC */ parray unknown_a6; + /* 0D3C */ parray unknown_a7; /* 1B5C */ parray decks; - /* 2840 */ uint64_t unknown_a2; + /* 2840 */ uint64_t unknown_a8; /* 2848 */ be_uint32_t offline_clv_exp; // CLvOff = this / 100 /* 284C */ be_uint32_t online_clv_exp; // CLvOn = this / 100 - /* 2850 */ parray unknown_a3; + /* 2850 */ parray unknown_a9; /* 299C */ ptext name; // Other records are probably somewhere in here - e.g. win/loss, play time, etc. - /* 29AC */ parray unknown_a4; + /* 29AC */ parray unknown_a10; } __attribute__((packed)); enum class HPType : uint8_t {