• Rise from your gwave!

Communication port information

Discussion in 'Saturn Dev' started by BrokenLizard, Nov 22, 2009.

  1. BrokenLizard

    BrokenLizard New Member

    Does anyone have information regarding the Saturn’s communication port? I found TakaIsSilly’s thread, schematic, and code but it is unclear if he ever got serial communications working reliably. I am in the process of developing a SD card adapter for the Sega Saturn, which will be used for transferring save game files. Hopefully, the device will be compatible with the Backup library and thus compatible with existing software. Right now, I need to find the following information: communications port pinout, communication port protocol(s), and the backup library data transfer protocol.

    Thank you,

  2. antime

    antime Extra Hard Mid Boss

    The port has pins for the master and slave SH2's serial ports and the SCSP's MIDI serial port. The SH2's serial ports support synchronous transfers, so I imagine that by pulling the SD card's CS line to ground you could access it directly using the SPI mode.

    The port uses 5V TTL signalling, you can get the pinout from the schematic here (you can use a multimeter to find the 5V line).

    If you want to have your adapter be compatible with the ROM BUP library you'll have to make it compatible with the Saturn floppy drive. I don't know if anyone's reverse-engineered or published its protocol. It'll be a ton easier to just write your own application to copy the saves.
  3. gameofyou1

    gameofyou1 New Member

  4. BrokenLizard

    BrokenLizard New Member

    Thank you for the suggestions. The main goal of this project is to be able to transfer saves without requiring a co-located computer. I already have several commslink cards, FreeWings, and a custom usb-ARP but these all require a computer to be connected at the same time. During Saturn homebrew development this is not an issue but is rather inconvenient when the Saturn’s primary use is game playing.

    Using the schematic that antime mentioned and the SH7604 datasheet provided on his website, I now have all of the information required to complete the adapter. I am going to use the SCI capabilities of the Saturn’s communication port to connect to a PIC microcontroller. This microcontroller will interface to the SD card. While using only non-programmable parts would make the adapter easier for others to build, I require at least 3 general I/O lines (chip select, card detect, and write protect detect). Some SD cards may operate with the chip select line fixed in the asserted state (0V) but it is not guaranteed. One of the best aspects of the design will be the use of the communication port. If the adapter connects to the controller port, then it would compete with a second controller, have a greater chance of being affected by game software, and would require the destruction of hardware. Building a handmade female connector to plug directly into the communication port is difficult but constructing a male connector to mate with a link cable is very easy. A final benefit of using the communication port is that frequently removing the adapter will not wear down the expansion connector.

    The initial prototype development is already about half-way complete. Right now, I am waiting for a development Saturn, as I do not want to risk damaging my Saturns reserved for game playing.

  5. gameofyou1

    gameofyou1 New Member

    Sounds cool. Good luck!

    By the way, I have a BUNCH of Saturns that have non-operating CD-ROM drives. These would still be good for development (homebrew or otherwise), though. I can sell some of these very inexpensively, let me know if you're interested.
  6. pseudo_intellectual

    pseudo_intellectual New Member

    Just out of curiosity: what are you using (or are intending to use) as far as the connection to the Saturn? Is it possible to make a comm cable from scratch, or is is necessary to cannibalize an existing one? For that matter, where's the best place to look for such a cable?

    I'm only curious as I picked up a used Saturn at a thrift store a week ago (minus all cables), and I'm just pondering some things I could do with it. I'm thinking it would be fun to do some homebrew with it (as I have no games for it anyway), and perhaps this connector would be good for debugging purposes or some other tomfoolery (I have this Zilog kit with integrated Ethernet, for example...)

    By the way, it sounds like you have an interesting project you're cooking up. You should provide updates as you continue to work on it.
  7. BrokenLizard

    BrokenLizard New Member

    Progress Update:

    I have been very busy with work and have found few opportunities to work on this project. However, I have made some progress. In a couple of months, I may be able to dedicate more time to completing the design.

    The project's goals have evolved over time. Presently, the project consists of two parts, developing a replacement Sega Saturn floppy drive that uses SD cards instead of floppy disks and creating an adapter allowing a Sega Saturn floppy drive to be attached to a computer. The final design will be compatible with the official software.

    At the moment, the project is not ready for public testing.

    Implementing the SD card protocol - 85%

    Hardware design - 25%

    Schematic of Sega Saturn floppy drive – 40%

    Documenting the serial backup device communication protocol – 60%

    For those that are interested, pictures of the Sega Saturn floppy drive's main PCB are attached.

    Attached Files:

  8. Mr^Burns

    Mr^Burns New Member

    Awesome!, will you make a few to sell?
  9. BrokenLizard

    BrokenLizard New Member

    Progress update:

    I now have 99% of the floppy drive communication protocol reverse engineered and implemented in a PIC microcontroller. An initial hardware interfacing design has been developed, although the transfer rate is rather limited. The speed limitations are a result of ensuring the circuit honors the current limits specified in the SH7604 datasheet (2mA and -2mA).

    Selling completed systems will only be practical if there is a very high demand. Connecting to the Saturn in a professional fashion requires a custom connector, which involves a large upfront cost. Depending on demand, a kit version of the system may be possible.
  10. cafe-alpha

    cafe-alpha Member

    As my Saturn is always connected to my PC, I am not interested in your device itself, but I am looking for communication port connectors.

    What is the smallest quantity of connectors you can purchase ? And what is their price ?
  11. BrokenLizard

    BrokenLizard New Member

    Progress Update:

    I just completed a document which describes the protocol used to communicate with the Sega Saturn Floppy Disk Drive. The file can be downloaded from http://www.psfake.com/FLOPPYfake.
  12. vbt

    vbt Staff Member

    Really good job BrokenLizard !!!, would it be compatible with the Sega floppy disk driver (Operator)

    Attached Files:

    • a.
      File size:
      50.7 KB
  13. cafe-alpha

    cafe-alpha Member

    What is the "Sega floppy disk driver (Operator)" ? Is it a tool that allows to copy saves from internal memory to floppy ?

    PS: The attached image seems to be the a capture of the internal backup management screen (it is written "本体の記録", which means something like "main device memory").

    BrokenLizard : I am still very interested in communication port connectors [​IMG]

    I am interested in purchasing 5 pieces, $5~10 each.

    If it is possible to get connectors, please let me know.
  14. BrokenLizard

    BrokenLizard New Member

    The Sega Saturn Floppy Disk Drive Operator is the program that came packaged with the Sega Saturn Floppy Disk Drive. The software is almost identical to the Sega Saturn's memory manager, except it supports external serial devices. Since the program relies on the BUP library in ROM, the operator software can be thought of as version 2 of the memory manager. While the majority of my testing has involved custom BUP library applications, the documented protocol should be consistent with the Sega Saturn Floppy Disk Drive Operator software.

    I am still looking for a company to make the custom cables, but this is a low priority until the demonstration board version is complete. Presently, I have only located one company that has the required capabilities, but they require a minimum initial order of 50,000 units. If anyone knows of a company that would require a smaller minimum order, please let me know.
  15. vbt

    vbt Staff Member

  16. television2000

    television2000 New Member

    Ohh great !

    Can't wait for this to get finished. I'll have 2 when it's ready to ship. (please say it will!)

    Keep the good work. [​IMG]
  17. cafe-alpha

    cafe-alpha Member

    Sorry for the very late reply.

    Thank you for the explanations about FDD Operator.

    It is _very_ similar to the BIOS screen !

    I got another question : how could you manage to connect a Saturn to your prototype ?

    Did you made a custom connector by yourself, or did you directly soldered wires to the Saturn's PCB ?

    In the case you made a custom connector, can you detail its manufacturing process ?

    I saw that connector's pins pitch is very close to perfboard's pitch, so it might be possible to make a Q&D connector with 2 small perfboards.
  18. BrokenLizard

    BrokenLizard New Member

    I have used three separate methods to connect to the Communications Port. These include, an original connector borrowed from a Sega Saturn, a custom made connector (reproducing the connector inside the Sega Saturn), and soldering wires to the inside of my development system. The first two methods require a link cable, while the third allows for a microcontroller to be connected at the same time as the floppy drive. I plan on eventually creating a description of the custom connector, but I want to work on improving its design first.

    I have been spending a great deal of time contemplating the final design of this project and the ability to sell individual devices. Each design possesses pros and cons. While I am still waiting to get a response from six or seven companies regarding the construction of a custom connector (the type that plugs into a Sega Saturn), the initial design costs appear to be too large for a project of this scope. A very large number of the devices would need to be sold to justify the development costs. Unfortunately, this is not practical for several reasons. The largest impediment is the software. Even if a homebrew Sega Saturn executable was created to replace the copyrighted software that was provided with the floppy drive, users would still require a method of using burnt CDs. Coupled with the fact that the Sega Saturn does not have the same following as other older video game systems, I do not believe there is a large enough demand to be able to recover the required initial investment. I would be willing to work with some who is developing a different project that also requires the custom connector, but I cannot envision a project that would sell enough units to make a difference.

    There are two main designs that I am considering for this project. The first involves creating the system as originally intended, but using a connector of the same type located in the Sega Saturn. The PCB may contain pads for both an official connector (taken from a broken Sega Saturn) and the reproduction that I have developed. This design requires a link cable and will be more expensive. The second main design involves moving everything into the Sega Saturn and replacing the communications port connector with a SD Card slot (either miniSD or microSD). This design will be cheaper, does not require external power or an enclosure, may be faster, and will not require a link cable, but the communications port will no longer be available. Presently, I am leaning towards the later design because the communications port is not used by most people. Only a few games support the link cable and require two Sega Saturns. The communications port has been used to download applications to a Sega Saturn for development, but these systems are connected to a computer and the benefit from a floppy drive is reduced.

    The development version of the floppy drive is mostly complete, although some additional testing is required. In the next few days, I am going to make another update to the communications protocol document. New functionality has been identified and I would like to determine the effects of some of the fields currently marked "Unknown".
  19. television2000

    television2000 New Member

    I would say go for the 2nd option. It's true and I agree that the communication port is not used at all by a lot of people.

    Besides, even if there are who use the floppy drive I think they would rather convert to this new device. Right ?

    Also since it's cheaper (I'm not saying it's still cheap) doesn't require any external/internal modification to the Saturn hardware,no need for power supply or any cables. It seems logical and fitting to go that road. You have my vote on this one.

    Also may I ask how many units you're planing/need to sell on order justify the initial expense ? What's the total cost for your concept model ATM ?

    I'm very interested in this project and would like it to go a long way. glad to know that there's something to last for our game saves beside Action replay carts. [​IMG]

    Keep the good work ! [​IMG]
  20. cafe-alpha

    cafe-alpha Member

    Thank you for your answer, BrokenLizard !

    First, let's talk about my project that requires a communications port connector.

    At present time, I am using a freewing + ARP + homemade ARP firmware + homemade PC soft in order to save my old saves states.

    It works well, however I got a lot of save states stored in official backup cartridges, which means I can't use my freewing to download them.

    Here are some countermeasures for this:

    1) Copy each saves from cartridge to Saturn's internal memory, then download each of them with my freewing.

    2) Use a transmission device on a port different from ARP's.

    As every software programmer should be, I hate repetitive and stupid tasks, so I don't want to use 1). And 2) seems funnier too ^^

    First, I though that using Communications Port would be a nice idea, but as I am stucked in making a reliable connector, I had a new idea : why not using the second pad's port ?

    It would be cheaper and easier to do so, but I don't know yet if is possible to do, and how fast (how slow ?) the transfer would be.

    BTW, I am looking for a broken Saturn pad, so if somebody got one, please let me know !

    (I got a bunch of Saturn pads, but I don't want to cannibalize a working one.)

    Then, I got a question about your project : why focusing the data transmission only with communications port ??

    IMHO, using the ARP's parallel port would be more interesting for your needs.

    The image of what I am thinking about would be something looking like an USB Data Link equiped with SD card reader instead of USB port.

    Here are some merit of this idea:

    + No need to spend (waste ?) time in building a custom connector.

    + As parallel connector is used to connect with Saturn, connector price would be by far cheaper than using communications port.

    + As most of customers may already own ARP, your device's selling price would be lower than using communications port based solution.

    + Solves the problem of using burnt CDs. (1)

    + If hardware is correctly designed, SD card may be used as a CDROM replacement for homebrew games. (2)

    And some demerits:

    - Compatibility with Saturn floppy drive is lost, hence cannot be directly used with Panzer Dragoon Azel / Saga and Dezaemon 2.

    (1) A way of processing would be something like this:

    - On Saturn startup, ARP's firmware is launched.

    - By pressing a button on your SD card device, a Saturn executable is executed from SD to Saturn by using comms protocol.

    - The Saturn executable allows to manage SD card's contents, Saturn's backup's contents, etc.

    (2) In the softwares I made last year for my freewing there are functions that allow to read/write files between Saturn and PC. Hence it would be funny to do the same with your device [​IMG]

    Thanks to this, it would allow to run homebrew stuff without worrying about burning/swapping CDs and modchipping Saturn, and without the need of using a PC !

    As I told above, last year, I made an ARP custom firmware that enabled to use my buggy freewing device.

    Among others, it supports data compression and error recovery during transmission, some Saturn user interface, etc.

    So if you are interested in help concerning Saturn software support, please let me know [​IMG]

    (you can contact me by mail, or simply by replying to this topic)

Share This Page