P2P 0x4F SCGP_MAP

Transport Layer: User Datagram Protocol (UDP)
Application Layer: Starcraft In-Game Messages (SCGP)
Message Id: 0x4F
Message Name: SCGP_MAP
Direction: Peer to Peer
Used By:
Starcraft OriginalStarcraft BroodwarStarcraft SharewareStarcraft Japanese
Message Format:
(does not include protocol header)
(UINT8) ID (always 0x4F)
(UINT16) Payload Length (excluding this field)
(UINT16) Event

Event 0x00 [Client → Host]:
  (UINT16) 0x0100
  (UINT32) File Position

Event 0x01 [Host → Client]:
  (UINT32) File Length
  (UINT32) File Checksum
  (STRING) File Name

Event 0x02 [Host → Client]:
  (UINT8) Player ID
  (UINT32) File Position

Event 0x03 [Host → Client]:
  [no additional data]

Event 0x04 [Client → Client]:
  (UINT8) 0x00
  (UINT32) File Position
  (UINT16) Data Block Length
  (VOID) File Data Block

Event 0x05 [Client → Client]:
  (UINT8) 0x00
  (UINT32) File Position

Remarks

Used to manage map downloads during game setup. This is classified as Packet CLS 1.

Key Behavior

  • Players do not always download the map from the host. The host can request that other players (who already have the map) send it instead.
  • Data is typically sent in 128-byte blocks, though 256-byte blocks generally work without issue.

Event Breakdown

Event 0x00 [Client → Host]:

  • Informs the host whether the client has the map.
  • The File Position indicates where to start sending from. If the player already has the map, this should match the total file length.

Event 0x01 [Host → Client]:

  • Asks a player if they have the specified map.
  • The player should respond with Event 0x00.

Event 0x02 [Host → Client]:

  • Tells the receiving player to send the map to another player.

Event 0x03 [Host → Client]:

  • Unclear purpose. Observed when a player sending a map to another player finishes sending the map, and when the game is starting.

Event 0x04 [Client → Client]:

  • Used to send a map block to another player.
  • The receiver must verify the block by replying with Event 0x05.
  • Any breaks in the UDP stream should be managed with standard resend requests.

Event 0x05 [Client → Client]:

  • Acknowledges receipt of the map block and confirms the current position.
  • Sent in response to Event 0x04.
🔖starcraftstarcraft-broodwarstarcraft-japan
| Edited: Anonymous

Comments

no one has commented yet.