Talking to an XBAND modem
Posted: Mon Jun 18, 2012 5:39 pm
Hello everyone. This is my first post to this board although I've been lurking around for a while. I was a SNES XBAND player (mostly KI, some MK3 and SMK) back in 96. Those were some great times.
I'm wondering about how much progress has been made (if any) in figuring out the communication protocols for XBAND. Searching on Google has proven mostly fruitless. The only information I could find was some vague reference to it using the ADSP protocol of AppleTalk. I also managed to get my hands on what appears to be the source code for the Genesis XBAND server. Unfortunately, there appears to be quite a bit of code missing for it including all of the transport layer stuff. So for now the server code isn't much help at all.
So anyway I tried having the XBAND modem connect to the modem in my computer. Once the connection is established, the modem does nothing but sit and wait. I transmit a carriage return (although it seems that any byte will do) and the XBAND responds with a sequence of 26 bytes (and the text on the TV changes from Dialing... to Connecting...). The XBAND repeats the sequence about once per second a few times before giving up and disconnecting.
Here's what it sends (in hexadecimal):
00 81 40 00 00 00 00 00 00 00 00 04 00
81 01 00 00 00 00 00 00 00 7C 39 10 03
The bytes I highlighted in bold seem to change whenever I repeat this experiment. I could not find a pattern to these changes nor could I get the XBAND to repeat the same bold byte values in subsequent trials.
I have a copy of Inside AppleTalk which explains the DDP (network) and ADSP (transport) protocols. Each of these use a 13 byte header followed by 0 or more bytes of data belonging to their respective upper layers. So the fact that the XBAND transmits 26 bytes seems appropriate.
Now one would expect that the XBAND is either trying to log in or acquire a network address of some kind, or establish an ADSP connection if neither of those things are required (i.e. if the XBAND assumes that it always gets the same known network address).
Unfortunately, the bytes that the XBAND is sending don't make sense with respect to the way Inside AppleTalk describes these protocols. If these bytes represent a DDP datagram, then the second byte and the last 2 bits of the first byte represent the length (including the 13 bytes of the DDP header itself), which is 26 bytes, but in the example above, the value is 129. Furthermore, if the datagram contains a ADSP connection attempt, then the last byte should be $81 or possibly $83, but the value is $03.
So this is what I've been able to do so far. Not much learned yet, but I'm hoping that some collaboration here will lead to some progress. I hope there is someone who has tried to analyze the XBAND rom code and might have some insight to offer.
Thanks for reading.
I'm wondering about how much progress has been made (if any) in figuring out the communication protocols for XBAND. Searching on Google has proven mostly fruitless. The only information I could find was some vague reference to it using the ADSP protocol of AppleTalk. I also managed to get my hands on what appears to be the source code for the Genesis XBAND server. Unfortunately, there appears to be quite a bit of code missing for it including all of the transport layer stuff. So for now the server code isn't much help at all.
So anyway I tried having the XBAND modem connect to the modem in my computer. Once the connection is established, the modem does nothing but sit and wait. I transmit a carriage return (although it seems that any byte will do) and the XBAND responds with a sequence of 26 bytes (and the text on the TV changes from Dialing... to Connecting...). The XBAND repeats the sequence about once per second a few times before giving up and disconnecting.
Here's what it sends (in hexadecimal):
00 81 40 00 00 00 00 00 00 00 00 04 00
81 01 00 00 00 00 00 00 00 7C 39 10 03
The bytes I highlighted in bold seem to change whenever I repeat this experiment. I could not find a pattern to these changes nor could I get the XBAND to repeat the same bold byte values in subsequent trials.
I have a copy of Inside AppleTalk which explains the DDP (network) and ADSP (transport) protocols. Each of these use a 13 byte header followed by 0 or more bytes of data belonging to their respective upper layers. So the fact that the XBAND transmits 26 bytes seems appropriate.
Now one would expect that the XBAND is either trying to log in or acquire a network address of some kind, or establish an ADSP connection if neither of those things are required (i.e. if the XBAND assumes that it always gets the same known network address).
Unfortunately, the bytes that the XBAND is sending don't make sense with respect to the way Inside AppleTalk describes these protocols. If these bytes represent a DDP datagram, then the second byte and the last 2 bits of the first byte represent the length (including the 13 bytes of the DDP header itself), which is 26 bytes, but in the example above, the value is 129. Furthermore, if the datagram contains a ADSP connection attempt, then the last byte should be $81 or possibly $83, but the value is $03.
So this is what I've been able to do so far. Not much learned yet, but I'm hoping that some collaboration here will lead to some progress. I hope there is someone who has tried to analyze the XBAND rom code and might have some insight to offer.
Thanks for reading.
