-
Notifications
You must be signed in to change notification settings - Fork 70
NEX Common Types
Type | Description |
---|---|
Uint16 | Length (including null terminator) |
Chars | Null terminated UTF-8 string |
Type | Description |
---|---|
Uint32 | Length |
Bytes | Data |
Type | Description |
---|---|
Uint16 | Length |
Bytes | Data |
Type | Description |
---|---|
Uint32 | Number of entries |
Entries |
Type | Description |
---|---|
Uint64 | Value |
This is not a normal time stamp. Instead, it consists of a bunch of bit fields:
Bits | Description |
---|---|
0 - 38 | Year |
38 - 42 | Month |
42 - 47 | Day |
47 - 52 | Hour |
52 - 58 | Minute |
58 - 64 | Second |
Note: 0 refers to the most significant bit.
Type | Description |
---|---|
String | Station URL |
A station url contains the address and port of a server or client, along with a few parameters. The order of the fields is arbitrary. Here's an example of a station url: prudps:/stream=10;sid=1;CID=1;type=2;address=34.210.222.104;port=60101;PID=2
Field | Description |
---|---|
<protocol> | udp, prudp or prudps |
stream | Stream type |
sid | Stream id |
CID | Connection id |
type | Type |
RVCID | Rendez-vous connection id |
natm | NAT mapping |
natf | NAT filtering |
upnp | UPnP support (0 or 1) |
pmp | PMP support (0 or 1) |
probeinit | Probe request initiation |
PRID | Probe request id |
fastproberesponse | Fast probe response |
NodeID | Node id |
NEX v3.5.0 introduced a versioning system to structures. Before v3.5.0 their contents were just normally stored into the stream. However, starting with v3.5.0, structures are stored like this:
Type | Description |
---|---|
Uint8 | Version |
Uint32 | Content length |
Content |
NEX has a class that can hold any object derived from nn::nex::Data. When these are transmitted as part of request or response data, some meta data is sent along with them, so the other side can properly identify and decode the object.
Type | Description |
---|---|
String | Type name |
Uint32 | Length of data, including the next length field |
Uint32 | Length of data |
Object data |
Rendez-Vous Connection Data (Structure)
Nintendo does not use any special protocols.
Type | Version | Name | Description |
---|---|---|---|
StationURL | Any | m_urlRegularProtocols | Server address (regular protocols) |
List<byte> | Any | m_lstSpecialProtocols | Special protocols |
StationURL | Any | m_urlSpecialProtocols | Server address (special protocols) |
DateTime | V1 | m_currentUTCTime | Time |
Examples:
Game | Secure server |
---|---|
Friends | prudps:/stream=10;type=2;PID=2;port=60091;address=35.162.205.114;sid=1;CID=1 |
DKC:TF | prudps:/port=43221;CID=1;address=34.208.166.202;PID=2;stream=10;type=2;sid=1 |
MK8 | prudps:/sid=1;port=59201;address=52.10.188.163;PID=2;stream=10;type=2;CID=1 |
- Home
-
NEX
- PRUDP Protocol
- RMC Protocol
-
NEX Services
- Common
- Nintendo
- Kerberos Authentication
- Hpp Server
- NPLN
- Pia
- Switch Servers
- Other Pages