Difference between revisions of "Protocol"

From SBOL Project
Jump to: navigation, search
(Structure)
(Packets)
 
(4 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
SBOL uses a networking protocol provided by MultiTerm. This network protocol is a part of their "MassPlayer System" (MPS). MPS was mainly used by consoles (PS2 and Gamecude) to integrate online play. There doesn't appear to be any documentation on the system online and MultiTerm has long been shutdown.
 
SBOL uses a networking protocol provided by MultiTerm. This network protocol is a part of their "MassPlayer System" (MPS). MPS was mainly used by consoles (PS2 and Gamecude) to integrate online play. There doesn't appear to be any documentation on the system online and MultiTerm has long been shutdown.
  
One thing to keep in mind when working the the protocol in SBOL is that MPS uses big endian byte ordering. Unlike many x86 based systems which use little endian. This is likely something carried over from the libraries being largely developed for systems that processed bytes as big endian. The client uses the ntohl/ntohs functions to switch these bytes when processing them (network to host long/short. A winsock function but I guess why write a function when its already available in the libraries you're using).
+
One thing to keep in mind when working with the protocol in SBOL is that MPS uses big endian byte ordering. Unlike many x86 based systems which use little endian. This is likely something carried over from the libraries being largely developed for systems that processed bytes as big endian. The client uses the ntohl/ntohs functions to switch these bytes when processing them (network to host long/short. A winsock function but I guess why write a function when its already available in the libraries you're using).
 +
 
 
= Structure =
 
= Structure =
 
Client:<br />
 
Client:<br />
Line 12: Line 13:
 
PS PS PT PT ST ST PD PD PD PD PD ..
 
PS PS PT PT ST ST PD PD PD PD PD ..
 
</code><br /><br />
 
</code><br /><br />
PS = '''P'''acket '''S'''ize: Data type Short (the packet size is the site minus 2)<br />
+
PS = '''P'''acket '''S'''ize: Data type Short (the packet size is the size minus 2)<br />
 
PT = '''P'''acket '''T'''ype: Data type Short<br />
 
PT = '''P'''acket '''T'''ype: Data type Short<br />
 
ST = Packet '''S'''ub '''T'''ype: Data type Short<br />
 
ST = Packet '''S'''ub '''T'''ype: Data type Short<br />
Line 18: Line 19:
  
 
= Packets =
 
= Packets =
 +
*[[0x0000]] - Keep Alive
 
*[[0x0100]] - Authentication
 
*[[0x0100]] - Authentication
*[[0x0200]] - ???
+
*[[0x0200]] - Car Information
*[[0x0300]] - ???
+
*[[0x0300]] - Course Information
*[[0x0400]] - ???
+
*[[0x0400]] - Player Actions
 
*[[0x0500]] - ???
 
*[[0x0500]] - ???
*[[0x0600]] - ???
+
*[[0x0600]] - Chat
*[[0x0700]] - ???
+
*[[0x0700]] - Player Movement
 
*[[0x0800]] - ???
 
*[[0x0800]] - ???
*[[0x0900]] - ???
+
*[[0x0900]] - Shop
*[[0x0A00]] - ???
+
*[[0x0A00]] - Ping
 
*[[0x0B00]] - ???
 
*[[0x0B00]] - ???
*[[0x0C00]] - ???
+
*[[0x0C00]] - Rival Information
 
*[[0x0D00]] - ???
 
*[[0x0D00]] - ???
 
*[[0x0E00]] - User Creation
 
*[[0x0E00]] - User Creation
 
*[[0x0F00]] - ???
 
*[[0x0F00]] - ???
*[[0x1000]] - ???
+
*[[0x1000]] - career Data
 
*[[0x1100]] - ???
 
*[[0x1100]] - ???
 
*[[0x1200]] - ???
 
*[[0x1200]] - ???
 
*[[0x1300]] - ???
 
*[[0x1300]] - ???
 +
*[[0x1400]] - ???
 +
*[[0x1500]] - ???
 +
*[[0x1600]] - ???
 +
*[[0x1700]] - ???

Latest revision as of 16:42, 13 May 2019

Information

SBOL uses a networking protocol provided by MultiTerm. This network protocol is a part of their "MassPlayer System" (MPS). MPS was mainly used by consoles (PS2 and Gamecude) to integrate online play. There doesn't appear to be any documentation on the system online and MultiTerm has long been shutdown.

One thing to keep in mind when working with the protocol in SBOL is that MPS uses big endian byte ordering. Unlike many x86 based systems which use little endian. This is likely something carried over from the libraries being largely developed for systems that processed bytes as big endian. The client uses the ntohl/ntohs functions to switch these bytes when processing them (network to host long/short. A winsock function but I guess why write a function when its already available in the libraries you're using).

Structure

Client:
PS PS PT PT PD PD PD PD PD ..

Server:
PS PS PT PT ST ST PD PD PD PD PD ..

PS = Packet Size: Data type Short (the packet size is the size minus 2)
PT = Packet Type: Data type Short
ST = Packet Sub Type: Data type Short
PD = Packet Data array of bytes structure is specific to the type of packet

Packets