Commit Graph
10 Commits
Author SHA1 Message Date
Jonas Volman eca5cb1a16 Reconstruct data packet serialization 2026-07-15 18:52:51 -07:00
Jonas Volman cf1d743355 Match packet group decoding 2026-07-15 18:22:46 -07:00
Jonas Volman ff885d183d Match packet group encoding 2026-07-15 18:17:03 -07:00
Jonas Volman 1105ae8591 Match packet group initialization 2026-07-15 18:12:45 -07:00
Jonas Volman 128c787f0e Match packet group error retrieval 2026-07-15 18:09:17 -07:00
Jonas Volman dfaa3a9a34 Reconstruct network message packet definitions 2026-07-15 17:34:34 -07:00
Jonas Volman 66d0f54f9c Match network game message creation 2026-07-15 16:22:59 -07:00
Jonas Volman 1aa822f30c Correct network packet class API 2026-07-15 11:00:01 -07:00
Jonas VolmanandClaude Opus 4.8 35d3a59674 Match network game message initialization, event, and decode
Reconstruct three bounded functions in network_messages.obj against the
January target object:

  initialize_network_game_packets  0x10 padded,  2 relocations
  network_event                    0x60 padded,  8 relocations
  decode_network_game_message      0xa0 padded,  8 relocations

All three are proven exact by coff_compare.py: padded size, normalized
hash, and every relocation offset, type, resolved target and addend.

Parameter names and assert expressions are recovered from the target's
own assert strings. data_0030aa68 is declared with a named container
type following the initialize_key_agreement_packets convention, placing
the packet group at +0x830; its definition is deferred with the packet
definition table.

data_packet_group_decode_packet is declared in data_packet_groups.h,
whose parameter names come from the callee's assert strings.
data_packet_groups.h now includes cseries.h so it is self-sufficient for
translation units that include it without cseries.h first.

code_0011af00 (encode_network_game_message) is left dormant: it takes
message_struct, encoded_message and encoded_message_size in edi/ebx/esi
without saving them, so it uses a private register calling convention
that MSVC only selects with its sole caller, create_network_game_message,
present in the same translation unit.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 10:58:22 -07:00
Jonas Volman a1432273aa Match key agreement packet initialization 2026-07-15 10:28:28 -07:00