Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

SVersionCheck (0x00)

Server action index | Next: SNewUserCheck

SVersionCheck is server-to-client action 0x00 in the 4.21 protocol.

Direction: server to client

Encrypted: No. See Sequence and XOR Transformation.

Payload offsets begin with the first byte after the action. The frame marker, frame length, action, sequence, and trailing zero are excluded.

Payload format

OffsetWidthFieldEstablished meaning
0x001subtype0x00 negotiates transformation state, 0x01 reports an outdated client, and 0x02 enters the patch path.
0x011server_versionSubtype 0x00: stored and compared with the active server version.
0x021table_functionSubtype 0x00: queues table function 0 through 9.
0x031key_lengthSubtype 0x00: required to equal 9 by the main-menu handler.
0x04key_lengthkeySubtype 0x00: replacement repeating XOR key.

Handler functions

Function addressCurrent IDA nameRole
Darkages.exe:0x0045F780ui_main_menu_handle_server_packetAccepts the action in the main-menu packet handler.
Darkages.exe:0x004A3700net_queue_xor_table_functionQueues the subtype-zero table-function selector as Socket work code 11.
Darkages.exe:0x004A36C0net_queue_xor_keyCopies and queues the subtype-zero key as Socket work code 10.

Handler notes

The subtype-zero branch reads the server version, queues the one-byte table selector, requires a nine-byte key, and queues that key for the socket worker. Action 0x00 bypasses the sequence and XOR decoder, so negotiation does not depend on the previous transformation state.

Schema status

The subtype-zero payload prefix is established through the field readers and both queue calls. The data consumed by subtypes 0x01 and 0x02 still requires separate tracing.