Sources that helped tremendously while building this:
If you're interested in building your own homebrew that works with StreetRelay, I would recommend checking these sources out!
CEC
+- MBoxList____
+- <typically 8 char id>
| +- MBoxInfo____
| +- MBoxData.001
| +- MBoxData.010
| +- MBoxData.050
| +- InBox___
| | +- BoxInfo_____
| | +- _<12 char id>
| | +- ...
| +- OutBox__
| +- BoxInfo_____
| +- OBIndex_____
| +- _<12 char id>
+- <typically 8 char id>
+- ...
MBoxList____
contains a list of all the games that have StreetPass enabled currently, in the form of 16 byte IDs. These games are saved in folders, named the ASCII representation of their IDs.<typically 8 char ID>
is a folder containing all StreetPass-related information for a game, including:MBoxInfo____
contains basic information about the mailboxMBoxData.001
ICN encoded game icon for the titleMBoxData.010
UTF encoded game titleMBoxData.050
Title IDInBox___
contains all current incoming StreetPass tags (i.e. a visitor in StreetPass Mii Plaza)BoxInfo_____
contains information about the current box (inbox in this case), including an index of all messages and their headers._<12 char id>
is a StreetPass tag. (hurray) This file has a0x70
length header, zero or more extra headers, and the actual tag data. The ID is the first 8 bytes of the message ID converted to a custom base64
OutBox__
contains all? (never seen more than one) your outgoing StreetPass data. (i.e. your data as a visitor in StreetPass Mii Plaza)BoxInfo_____
same as above, contains information about the outbox, and a list of all included messages' headers.OBIndex_____
Only found in theOutBox__
, contains a list of how many outbox items there are and a list of their IDs. Simplified version ofBoxInfo____
_<12 char id>
outgoing StreetPass tag. Exactly the same as in theInBox__
- Upload profile data (not relevant)
- Get StreetPass games in
MBoxList___
- For each game in
MBoxList___
:- Get outbox data
- Upload data in outbox
- Get list of tags available
- If server requests game public data:
- Upload
MBoxData.001
andMBoxData.010
(icon and title)
- Upload
- If inbox is not full:
- Download first tag
- Add tag to
BoxData____
- Change tag dates