Preliminary Transfer Cable Protocol

I plan to implement this protocol for both the Saturn and Sega CD so I'm not 100% which forum category it belongs in. I'll leave that to a friendly forum moderator.

This is a preliminary protocol definition to be used with my Sega CD (and soon Sega Saturn) transfer cable. Not all features are likely to be implemented immediately (if at all), but I wanted to think ahead. It's not 100% complete (some commands need further definition, a section on timeouts needs to be added and initial sync needs to be dealt with), but it's pretty close to final. I'm thinking about making checksums on data packets optional for speed reasons or maybe even completely eliminating them. Generally speaking, once synchronized I haven't had many problems with data integrity, though that might change now that I'm using more efficient handshaking (thus speeding transfers).

I'd like to get some input from other developers on what they would like to see in the protocol. I'd like to make the protocol more accessible to developers and structured so that different developers can make interoperating utilities and generally make the associated tools more useful.
 

Attachments

  • cableprotocol.txt
    6 KB · Views: 189
WOw, i started to work on a protocol too (some months ago).. you'r is more.. well... professional :) It was checksumming only each 8KB LOL.

Your functions are very cool, i would add those few stupid things:

"GET TIME" function (to get basicaly computer time or saturn time)

"GET NAME" function (return segacd, saturn or computer name).

there were other functions but i don't rememeber.

Also, it should be cool to make this cable usb compatible (there are chips that can convert usb>paralleal and reverse)... I know one guy that can build this cable in quite good quantity and good price (but not the software)... If you're ok (I guess it is possible to keep same saturn/segacd protocol, only the software pc will be different if using usb).

I personnaly don't have any printer port... :/
 
I don't see any reason I couldn't add something along the lines of those functions.

I was thinking about slapping together a USB version of the cable, but if you've got someone else lined up that's okay too I guess. I was sort of planning on doing a console controller adapter that doubled as a transfer cable (to get the volume up).
 
Originally posted by Mask of Destiny@Wed, 2005-10-12 @ 09:29 AM

I don't see any reason I couldn't add something along the lines of those functions.

I was thinking about slapping together a USB version of the cable, but if you've got someone else lined up that's okay too I guess. I was sort of planning on doing a console controller adapter that doubled as a transfer cable (to get the volume up).

[post=140655]Quoted post[/post]​


For the Saturn, I was thinking a good solution would be wiring up a DLP-TXRX module (http://www.dlpdesign.com/usb/txrx.shtml) to either one of the SCI channels at the link port connector. It's a RS232-C to USB converter, for just $30 USD, that works with TTL-level signals. It's 3.3V and 5V tolerant, too.

If this was done internally at the link port connector on the PCB, you wouldn't need to hack up a serial cable and could just mount the board inside, maybe run a cable out of the MPEG card port to your PC. Not sure what the maximum transfer rate of the SCI is, but the DLP-TXRX works up to 96KBps which is more than adequate.

I've used the DLP parts many times in various arcade comms projects and they are very easy to work with. Plus this way you could leave the joystick ports alone. The only difficulty would be using other hardware designed for the link port, but most people probably don't have a Saturn FD drive laying around or do the link-up thing often these days. ;)

Maybe a switch could be used to disconnect the RX output of the module, but keeping TX hooked up would be cool to 'capture' serial communication going out of the Saturn when playing a game that uses it.

This would work for the Genesis too, but you are limited by the slow baud rates (I think 4800bps max).

Any thoughts?

The other cool thing is that you could patch the AR firmware to poll the SCI channel for incoming PC commands so you could still load and run software like you would with a Comms Link, though that would work for your method too. (or run a CD-R with a modchip with the program loader, though I don't have one)
 
I'm not personally going to develop any sort of serial cable for the Saturn. The controller port should be faster and a simple parallel cable can be put together cheaper than a serial cable (though with a USB cable I suppose it's the same). I'm willing to write a serial version of the PC software if someone wants to try and put together such a cable. Not sure if I would write the Saturn half (since I don't have a cable to test with), but I plan on releasing the source to the controller port version under somethiing resembling the BSD license so it shouldn't be hard for someone to make the necessary modifications.
 
When i was talking about usb it was a little chip named EZ something... that have 16 I/O ... So it can simulate with ease any kind of paraleal signal (like MOD did for orignal transfert cable).

The whole thing cost something like 2usd.

My idea was to get a little run of cable (USB>MD/SAT) quite cheap (10-20usd?) so every one is happy and no more need of printer port.

But as i told you, i know the guy that can manufacturate, not the guy that can code....
 
Originally posted by fonzievoltonov@Wed, 2005-10-12 @ 09:52 PM

When i was talking about usb it was a little chip named EZ something... that have 16 I/O ... So it can simulate with ease any kind of paraleal signal (like MOD did for orignal transfert cable).

The whole thing cost something like 2usd.

My idea was to get a little run of cable (USB>MD/SAT) quite cheap (10-20usd?) so every one is happy and no more need of printer port.

But as i told you, i know the guy that can manufacturate, not the guy that can code....

[post=140664]Quoted post[/post]​


EZ-USB from Cypress I think. How big of a run does he need to manufacture something at a reasonable cost? Is he capable of sourcing/manufacturing the funny Saturn controller port connector?

If the numbers are right, I'll order the parts to slap together a prototype and write the firmware. I think we can get the run length up if I design it such that it can also be used as a controller adapter (so you can use Megadrive and Saturn peripherals on the PC). My company is probably willing to fund a run of these adapters if the margins are okay.
 
YEah, the EZ is from cypress (it was 2usd if i remember, and it require a 8mhz clock i think)...

I took a look @ some datasheets a few months ago... seems they are simple to use (they are even programming samples).

Héhé.. the guy is a specialist into little run... like 20-40 cables... I'll ask. You're true, the saturn connector is not usual.

The idea would be to have one one side:

-USB connector (cable+male or female directly)

On the other side (after a little box with chip):

-Saturn pad (cable+male or female directly?)

-MD pad (cable+male or female directly?)

-db25 connector (in the case we want to deal with old boards later)

So all combinaisons are possibles...
 
This could also be useful for making content-creation tools that run on an actual Genesis, rather than having to go through external means to generate and convert the image or sound data (or hand-convert it yourself in raw hex).
 
Back
Top