document some more protocol details

This commit is contained in:
Martin Michelsen
2022-04-17 11:12:22 -07:00
parent 40a0433f81
commit 0acdcdde0e
+31 -8
View File
@@ -99,8 +99,8 @@ struct S_ServerInit_BB_03 {
// 04 (S->C): Set guild card number and update client config ("security data")
// Client will respond with a 96 command, but only the first time it receives
// this command (TODO: Is this true? It might instead be that it responds with a
// 96 only if encryption was started with a 17 rather than an 02)
// this command - for later 04 commands, the client will still update its client
// config but will not respond.
struct S_UpdateClientConfig_DC_PC_GC_04 {
le_uint32_t player_tag;
@@ -648,9 +648,30 @@ struct C_ClientChecksum_GC_96 {
// 99 (C->S): Server time accepted
// No arguments
// 9A (S->C): Verify result
// 02 = license ok
// TODO: figure out the other codes
// 9A (S->C): License verification result
// The result code is sent in the header.flag field.
// 00 = license ok (don't save to memory card)
// 01 = registration required (client responds with a 9C command)
// 02 = license ok (save to memory card)
// 03 = access key invalid (125)
// 04 = serial number invalid (126)
// 05 = network error (119)
// 06 = network error (119)
// 07 = invalid Hunter's License (117)
// 08 = Hunter's License expired (116)
// 09 = network error (119)
// 0A = network error (119)
// 0B = HL not registered under this serial number/access key (112)
// 0C = HL not registered under this serial number/access key (113)
// 0D = HL not registered under this serial number/access key (114)
// 0E = connection error (115)
// 0F = connection suspended (111)
// 10 = connection suspended (111)
// 11 = Hunter's License expired (116)
// 12 = invalid Hunter's License (117)
// 13 = servers under maintenance (118)
// 14 = network error (119)
// Seems like most (all?) of the rest of the codes are "network error" (119).
// 9A (C->S): Initial login (no password or client config)
@@ -669,8 +690,9 @@ struct C_Login_DC_PC_GC_9A {
// 9B: Invalid command
// 9C (C->S): Log in result
// 01 = license ok
// TODO: figure out the other codes
// The only possible error here seems to be wrong password (127) which is
// displayed if the header.flag field is zero. If header.flag is nonzero, the
// client proceeds with the login procedure by sending a 9E.
// 9C (C->S): Register
@@ -886,6 +908,8 @@ struct C_CreateGame {
ptext<CharT, 0x10> password;
uint8_t difficulty;
uint8_t battle_mode;
// Note: Episode 3 uses the challenge mode flag for view battle permissions.
// 0 = view battle allowed; 1 = not allowed
uint8_t challenge_mode;
uint8_t episode; // unused on DC/PC
};
@@ -1175,7 +1199,6 @@ struct S_StreamFileChunk_BB_02EB {
// EC: Create game (Episode 3)
// Same format as C1; some fields are unused (e.g. episode, difficulty)
// TODO: Where does the "view battle allowed" flag end up?
// EC: Leave character select (BB)