Difference between revisions of "Wiimmfi/Connection Status"

From Custom Mario Kart
Jump to navigation Jump to search
Line 46: Line 46:
 
|-
 
|-
 
| align=center style="background-color:#000; color: #f00" | ▲
 
| align=center style="background-color:#000; color: #f00" | ▲
| All bits are cleared.
+
| All bits are cleared (not any connection).
 
|}
 
|}
  
'''Example:'''
+
'''Example:''' (outdated)
  
 
[[File:connection-status-examples.png|226px]]
 
[[File:connection-status-examples.png|226px]]
 
[[category:Wiimmfi|C]]
 
[[category:Wiimmfi|C]]

Revision as of 16:34, 29 September 2016

The Connection Status is a special feature of Wiimmfi. Server SV collects data from GPCM, MS, MASTER and NATNEG and creates 5 bit fields for each room member:

LOCAL
A bit is set, if 2 players have the same public IPv4. In this case, both clients use the same LAN and NATNEG is usually not needed. The bits are always set for both peers.
CONNECT2
A bit is set, if connection was accepted by the host. In this case the hosts sends a "GPCM STATUS type-02" message using server GPCM or MS as delivery agent. The bits are always set for both peers.
NN_CONNECT
The NATNEG server sent a CONNECT message (NATNEG connection finished) to both clients. The bits are always set for both peers.
NN_ACK
The NATNEG server received a CONNECT_ACK message of a client.
NN_SUCCESS
The NATNEG server received a REPORT message of a client with status SUCCESS. If the status is FAIL, then the related bits in NN_CONNECT and NN_ACK are cleared.

The slot index is used for the bit number. If for example players at slot 2 and 5 did NN_CONNECT, then bit 5 for player 2 and bit 2 for player 5 are set. If a player left a room (detected by GPCM or MASTER), all slot related bits are cleared.

Visualization

Server SV and mkw-ana print a summary as character vector. The following table shows the character and color selection, highest priority first:

char description
\ Self reference and mirror line. All other bits are ignored.
NN_SUCCESS and CONNECT2 are set. LOCAL is ignored.
. NN_SUCCESS set, but not CONNECT2. LOCAL is ignored.
A NN_ACK and CONNECT2 are set. LOCAL is ignored.
a NN_ACK set, but not CONNECT. LOCAL is ignored.
C NN_CONNECT and CONNECT2 are set, but not NN_ACK. LOCAL is ignored.
c NN_CONNECT set, but neither NN_ACK nor CONNECT2. LOCAL is ignored.
L LOCAL and CONNECT2 set, but not any NATNEG flag.
l LOCAL set, but neither CONNECT nor any NATNEG flag.
2 CONNECT2 set, but neither LOCAL nor any NATNEG flag.
All bits are cleared (not any connection).

Example: (outdated)

Connection-status-examples.png