fix some command format notes
This commit is contained in:
+20
-20
@@ -267,7 +267,7 @@ struct SC_TextHeader_01_06_11_B0_EE {
|
|||||||
// The client will respond with an (encrypted) 9A or 9E command on PSO GC; on
|
// The client will respond with an (encrypted) 9A or 9E command on PSO GC; on
|
||||||
// PSO PC, the client will respond with an (encrypted) 9A or 9D command.
|
// PSO PC, the client will respond with an (encrypted) 9A or 9D command.
|
||||||
// The copyright field in the below structure must contain the following text:
|
// The copyright field in the below structure must contain the following text:
|
||||||
// "DreamCast Port Map. Copyright SEGA Enterprises. 1999"
|
// "DreamCast Lobby Server. Copyright SEGA Enterprises. 1999"
|
||||||
|
|
||||||
struct S_ServerInit_DC_PC_GC_02_17_92_9B {
|
struct S_ServerInit_DC_PC_GC_02_17_92_9B {
|
||||||
ptext<char, 0x40> copyright;
|
ptext<char, 0x40> copyright;
|
||||||
@@ -524,7 +524,7 @@ struct C_WriteFileConfirmation_GC_BB_13_A7 {
|
|||||||
// receive a 17 command in any online session; after the first time, they will
|
// receive a 17 command in any online session; after the first time, they will
|
||||||
// respond with a 9E. Non-V3 clients will respond with a 9D.
|
// respond with a 9E. Non-V3 clients will respond with a 9D.
|
||||||
// The copyright field in the structure must contain the following text:
|
// The copyright field in the structure must contain the following text:
|
||||||
// "DreamCast Lobby Server. Copyright SEGA Enterprises. 1999";
|
// "DreamCast Port Map. Copyright SEGA Enterprises. 1999"
|
||||||
|
|
||||||
// 18 (S->C): License verification result (PC/GC)
|
// 18 (S->C): License verification result (PC/GC)
|
||||||
// Behaves exactly the same as 9A (S->C). No arguments except header.flag.
|
// Behaves exactly the same as 9A (S->C). No arguments except header.flag.
|
||||||
@@ -540,8 +540,8 @@ struct S_Reconnect_19 {
|
|||||||
|
|
||||||
// Because PSO PC and some versions of PSO GC use the same port but different
|
// Because PSO PC and some versions of PSO GC use the same port but different
|
||||||
// protocols, we use a specially-crafted 19 command to send them to two
|
// protocols, we use a specially-crafted 19 command to send them to two
|
||||||
// different ports depending on the client version. I originally saw this
|
// different ports depending on the client version. I first saw this technique
|
||||||
// technique used by Schthack; I don't know if it was his original creation.
|
// used by Schthack; I don't know if it was his original creation.
|
||||||
|
|
||||||
struct S_ReconnectSplit_19 {
|
struct S_ReconnectSplit_19 {
|
||||||
be_uint32_t pc_address;
|
be_uint32_t pc_address;
|
||||||
@@ -556,13 +556,15 @@ struct S_ReconnectSplit_19 {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 1A: Large message box
|
// 1A: Large message box
|
||||||
// Client will usually respond with a D6 command (see D6 for more information).
|
// On V3 (PSO GC), client will usually respond with a D6 command (see D6 for
|
||||||
|
// more information).
|
||||||
// Contents are plain text (char on DC/GC, char16_t on PC/BB). There must be at
|
// Contents are plain text (char on DC/GC, char16_t on PC/BB). There must be at
|
||||||
// least one null character ('\0') before the end of the command data.
|
// least one null character ('\0') before the end of the command data.
|
||||||
// There is a bug in V3 (and possibly all versions) where if this command is
|
// There is a bug in V3 (and possibly all versions) where if this command is
|
||||||
// sent after the client has joined a lobby, the chat log window contents will
|
// sent after the client has joined a lobby, the chat log window contents will
|
||||||
// appear in the message box, prepended to the message text from the command.
|
// appear in the message box, prepended to the message text from the command.
|
||||||
// The maximum length of the message is 0x400 bytes.
|
// The maximum length of the message is 0x400 bytes. This is the only difference
|
||||||
|
// between this command and the D5 command.
|
||||||
|
|
||||||
// 1B: Valid but ignored (PC/GC)
|
// 1B: Valid but ignored (PC/GC)
|
||||||
// 1C: Valid but ignored (PC/GC)
|
// 1C: Valid but ignored (PC/GC)
|
||||||
@@ -1710,17 +1712,15 @@ struct S_Unknown_GC_Ep3_CC {
|
|||||||
|
|
||||||
// D5: Large message box (GC/BB)
|
// D5: Large message box (GC/BB)
|
||||||
// Same as 1A command, except the maximum length of the message is 0x1000 bytes.
|
// Same as 1A command, except the maximum length of the message is 0x1000 bytes.
|
||||||
// Sylverant's documentation notes that D5 is not valid on pre-V3 versions (PSO
|
|
||||||
// DC or PSO PC).
|
|
||||||
|
|
||||||
// D6 (C->S): Large message box closed (GC)
|
// D6 (C->S): Large message box closed (GC)
|
||||||
// No arguments
|
// No arguments
|
||||||
// DC and PC do not send this command at all. GC v1.0 and v1.1 will send this
|
// DC, PC, and BB do not send this command at all. GC v1.0 and v1.1 will send
|
||||||
// command when any large message box (1A/D5) is closed; GC Plus and Episode 3
|
// this command when any large message box (1A/D5) is closed; GC Plus and
|
||||||
// will send D6 only for large message boxes that occur before the client has
|
// Episode 3 will send D6 only for large message boxes that occur before the
|
||||||
// joined a lobby. (After joining a lobby, large message boxes will still be
|
// client has joined a lobby. (After joining a lobby, large message boxes will
|
||||||
// displayed if sent by the server, but the client won't send a D6 when they are
|
// still be displayed if sent by the server, but the client won't send a D6 when
|
||||||
// closed.)
|
// they are closed.)
|
||||||
|
|
||||||
// D7 (C->S): Request GBA game file (GC)
|
// D7 (C->S): Request GBA game file (GC)
|
||||||
// The server should send the requested file using A6/A7 commands.
|
// The server should send the requested file using A6/A7 commands.
|
||||||
@@ -1729,12 +1729,12 @@ struct C_GBAGameRequest_GC_D7 {
|
|||||||
ptext<char, 0x10> filename;
|
ptext<char, 0x10> filename;
|
||||||
};
|
};
|
||||||
|
|
||||||
// D7 (S->C): Unknown (GC)
|
// D7 (S->C): Unknown (GC/BB)
|
||||||
// This command does... something. The command isn't *completely* ignored: it
|
// No arguments
|
||||||
// sets a global state variable, but it's not clear what that variable does, or
|
// On PSO GC, this command does... something. The command isn't *completely*
|
||||||
// even if it does anything at all.
|
// ignored: it sets a global state variable, but it's not clear what that
|
||||||
|
// variable does, or even if it does anything at all.
|
||||||
// D7 (S->C): Valid but ignored (BB)
|
// PSO BB completely ignores this command.
|
||||||
|
|
||||||
// D8 (C->S): Info board request (GC/BB)
|
// D8 (C->S): Info board request (GC/BB)
|
||||||
// No arguments
|
// No arguments
|
||||||
|
|||||||
Reference in New Issue
Block a user