Communication port information

GO TO ADMIN PANEL > ADD-ONS AND INSTALL VERTIFORO SIDEBAR TO SEE FORUMS AND SIDEBAR

television2000

New Member
Joined
Jan 6, 2011
Messages
58
Points
6
cafe-alpha said:
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


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


(you can contact me by mail, or simply by replying to this topic)
Ok ok sounds like a great idea.


But there is a major problem I see with this direction (in regards to the 2nd design),

it's true that a lot of people have ARP4m but not necessarily the one with a built in Comm port. I'm waiting for 2 in the mail and still forgot to check if it have one. >.<

My fault I know but still would go for a separate device that can store my save files than a one that use the same port/ARP one.

What If I want to trade between Saturns ? I would rather that the device using communications port be used for this function than the cart one.

We all know how it's a pain in the neck to readjust the cart everytime you take it off or even nudge it by mistake for whatever reason.


BUT ! I would encourage the development of both devices.

I believe it's still important to somehow be able to boot a CD image/homebrew from an SD card/Comm port or whatever. Right ?


Sadly no one knows how long our Saturn motor drives will last. IMHO A replacement is in dire need.

Btw Cafe, I can buy you a pad from Ebay and have it shipped to your address or would you rather I paypal you and get the junk pad yourself ?

PM me please.
 

cafe-alpha

Member
Joined
Dec 13, 2005
Messages
513
Points
43
Location
Japan
Website
ppcenter.free.fr
television2000 said:
I believe it's still important to somehow be able to boot a CD image/homebrew from an SD card/Comm port or whatever. Right ?


Sadly no one knows how long our Saturn motor drives will last. IMHO A replacement is in dire need.
The device I was thinking about is not a replacement for the CD-ROM drive, just something that would allow to run homebrew softs without minding about copy protections !

(It is not designed to run commercial games)

television2000 said:
Btw Cafe, I can buy you a pad from Ebay and have it shipped to your address or would you rather I paypal you and get the junk pad yourself ?

PM me please.
An acquaintance on another forum wants to give me a damaged pad, so don't mind about it


And paypal+ebay might be overkill in this situation.
 

television2000

New Member
Joined
Jan 6, 2011
Messages
58
Points
6
cafe-alpha said:
The device I was thinking about is not a replacement for the CD-ROM drive, just something that would allow to run homebrew softs without minding about copy protections !

(It is not designed to run commercial games)
Ohh sorry I misunderstood then. Either case it's an excellent idea to be able to use such a device on real hardware. Looking forward to it!

About the pad well that's great news. Please keep us updated on any progress.

Good luck !
 

BrokenLizard

New Member
Joined
Sep 24, 2009
Messages
34
Points
8
I've resumed working on this project. However, I doubt custom connectors will ever be practical.
 

cafe-alpha

Member
Joined
Dec 13, 2005
Messages
513
Points
43
Location
Japan
Website
ppcenter.free.fr
BrokenLizard said:
I've resumed working on this project. However, I doubt custom connectors will ever be practical.
Good to get news from you :)
What are your plans to continue the project ?


On my side, I could connect SD card to Saturn second pad connector, and it worked enough for my needs, because I could successfully dump my backup cartridges.
 

BrokenLizard

New Member
Joined
Sep 24, 2009
Messages
34
Points
8
Currently, I'm hoping to get the design to the point where others can use the project. At the very least, I will release schematics and a hex file. There is a chance I can sell the project in kit form. However, the connector is still a problem that needs to be figured out.

The primary remaining design issues deal with hardware. While my prototype is fully operational, I would prefer to increase the transfer speed. It took a while, but I finally have access to an oscilloscope to perform a few tests. Once the hardware is finalized, I can finish cleaning up the code and adding secondary features, such as support for multiple partitions.
 

miyasan

New Member
Joined
Apr 21, 2015
Messages
5
Points
1
BrokenLizard said:
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.
Hi.
I got your document at 6 month ago. It is very interesting.

(1)
I try to make Sega Saturn FDD compatible device, based your document.

when starting, Application check if Saturn connect with FDD by partition change command.
My device get "80 11 00 00 00 00 74 3b" from saturn, but put no data.
I don't have FDD, so not know FDD's reply data.

(2)
I disassembled Backup library, and traced it.
I think "partition change command" require 28byte, not 20byte.
1:SS->FDD   command token(4byte + CRC)
2:SS<-FDD   ACK(4byte + CRC)
3:SS<-FDD   parameters(24byte + CRC)
4:SS<-FDD   floppy state(4byte + CRC)

if enable, you show raw data.
thanks.
 

BrokenLizard

New Member
Joined
Sep 24, 2009
Messages
34
Points
8
While progress is very slow due to work and family obligations, I'm actually still working on this project. Recently, I gained access to a 3D printer which has renewed my efforts to create a custom connector. The bulk of the reverse engineering and coding has been completed for some time. The remaining items primarily consist of developing a method to connect the device to the Saturn (the connector), move the design from development boards to a custom PCB, and package everything into a nice enclosure. The 3D printer will help with designing the enclosure and keeping costs down. Unfortunately, I was never able to increase the transfer speed without removing some of the safety precautions I added. Luckily, most use cases for this device involve transferring relatively little data, so the transfer speed isn't very important.

Miyasan, I will try to set everything up and double check, but I believe the information in my document is correct. Unfortunately, I can't say how long it will take before I get the time to look into this, however.
 

cafe-alpha

Member
Joined
Dec 13, 2005
Messages
513
Points
43
Location
Japan
Website
ppcenter.free.fr
Miyasan, how did you managed to connect FDD-like device to your Saturn ?
Direct soldering to Saturn motherboard, or do you have a way to get Saturn serial connectors for homebrew use ?

PS : are you located in Japan ?
 

miyasan

New Member
Joined
Apr 21, 2015
Messages
5
Points
1
cafe-alpha said:
Miyasan, how did you managed to connect FDD-like device to your Saturn ?
Direct soldering to Saturn motherboard, or do you have a way to get Saturn serial connectors for homebrew use ?

PS : are you located in Japan ?
I use harf-cutted Link-cable.
this cable connected master SPI signals(3 wire) and slave SPI signals(3wire), but disconnect VCC.
I think FDD-like device need VCC to recognize SATURN's power condition. and to avoid SPI noise.

maybe, I saw connector like Link-cable in the electronics parts shop.
Link-cable connector is mass production?

I'm Japanese, so I has poor English. :frown2:
 

vbt

Staff member
Joined
Dec 16, 2001
Messages
5,225
Points
63
Age
43
cafe-alpha have some hidden powers, he can write in japanese :)
 

cafe-alpha

Member
Joined
Dec 13, 2005
Messages
513
Points
43
Location
Japan
Website
ppcenter.free.fr
miyasan said:
I use harf-cutted Link-cable. this cable connected master SPI signals(3 wire) and slave SPI signals(3wire), but disconnect VCC. I think FDD-like device need VCC to recognize SATURN's power condition. and to avoid SPI noise. maybe, I saw connector like Link-cable in the electronics parts shop. Link-cable connector is mass production? I'm Japanese, so I has poor English. :frown2:
Oh, you cut your link cable ? mottai nai T_T
Please inform us if you can find link cable connector in electronics parts shop. A long ago, I looked for it too, but couldn't find this kind of connector.

(I'm not Japanese, but living in Japan)


>  cafe-alpha have some hidden powers, he can write in japanese Smile

lol, it's not too difficult to read/write in Japanese. The most difficult for me was to understand the meaning of "All your bases are belong to us" :D
 

miyasan

New Member
Joined
Apr 21, 2015
Messages
5
Points
1
used SS FDD becomes investment item, too expensive.
I can't buy....

By the way, I got more information about partition change cmd in Backup library.
there is low-level function in Backup lib.

uint32 low-level_func(uint32 *retBuf, uint16 partition_num){
uint8 spiBuf[28];
}

(1) send command token(4byte)
{0x80, 0x11, 0x00, (uint8)partion_num}
(2) get ACK(4byte + CRC 4byte)
{0x20, 0x00, 0x00, 0x00, CRC...}
(3) get device information(24byte + CRC 4byte)
spiBuf[0]-[3]: value is unknown. this 4byte is not used.
spiBuf[4]: value is unknown. device ID.
spiBuf[5]: value is maybe 2. number of partition.
spiBuf[6]: SPI clock.
this value is set in SSR.BRR, directly. this value is 0, SSR.BRR set 0x10;
I think this is 0x05 from broken Lizard's data. and SPI is speed up to 300KHz
spiBuf[7]: unknown
I think this is 0x0c from broken Lizard's data
spiBuf[8]-[11]: total bytes.
value is unknown.but I think 0x000b4000.
2HD fdd capacity are 1474560bytes, so half are 737280bytes = 0x0b4000.
spiBuf[12]-[15]: total blocks.
value is unknown.but I think 0x00002d00.
737280 / 64 = 11520 = 0x2d00
spiBuf[16],[17]: bytes/block
value is maybe 64bytes = 0x0040.
spiBuf[18],[19]: bytes/block #2
value is maybe 0x1000.
SS FDD uses 64blocks once. so 64bytes * 64block = 4096byts = 0x1000
spiBuf[20]-[23]: unknown
spiBuf[24]-[27]: CRC
(4) get Floppy state(4byte + CRC 4byte)
{0x20, 0x00, 0xff, 0x00, CRC...}
}

this function return retBuf[5]. contents that...
retBuf[0] = {
(uint8)spiBuf[4] device ID
(uint8)spiBuf[5] number of partition
(uint8)0x00
(uint8)spiBuf[7] unknown
}
refBuf[1] = spiBuf[8]-[11] total bytes.
refBuf[2] = spiBuf[12]-[15] total blocks.
refBuf[3] = {
(uint16)spiBuf[16],[17]: bytes/block
(uint16)spiBuf[18],[19]: bytes/block #2
}
retBuf[4] = spiBuf[20]-[23]: unknown


this low-level function are called from some major functions.
<1>BUP_Init
this function check presence of SPI device.
if SPI device is presence get 3 information( unit ID, number of partition, bytes/block#2)

<2>BUP_SelPart
this function call low-level function. but not use retBuf[]

<3>BUP_Stat
this function call low-level function.
if SPI device is presence get 3 information( total bytes, total blocks, bytes/block)

I think this information link between broken Lizrard's partition change cmd information and mine.
thanks.
 

miyasan

New Member
Joined
Apr 21, 2015
Messages
5
Points
1
sorry, I missed one information.

BUP_Init
this function check presence of SPI device.
if SPI device is presence get 3 information( unit ID, number of partition, bytes/block#2)
if number of partition is larger than 15, Saturn recognize the device is wrong , and ignored it.

thanks.
 

zone66x

New Member
Joined
Mar 1, 2016
Messages
41
Points
8
Location
Canada
Arrr after reading all this I just took a look at the serial connector on the Saturn and was wondering if there was any other device that used the same connector by chance. A DisplayPort cable looked like the closest thing but it turns out it's bit smaller with double the pins.
 

antime

Extra Hard Mid Boss
Joined
Jan 24, 2002
Messages
2,587
Points
48
Website
www.iki.fi
AFAIK, it's custom. A good rule of thumb with console hardware is that unless it's explicitly designed for interoperability, it's custom. A basic serial connector also wouldn't work with high-bandwidth applications like DisplayPort.

If you want to connect something to the Saturn's serial ports, either add a new port, or use a system link cable. On the Saturn's PCB, next to the serial port connector there's a test point for each pin, which is a convenient place to solder wires to. System link cables are still easy to find, and don't cost that much. You can then either cut it in half or design a PCB that slots into the cable female connector. A couple of caveats:
  • The cables don't carry all wires. A third-party cable I have doesn't carry the MIDI signals, and a first-party cable has neither the MIDI signals nor the slave SCK.
  • Unlike the cable's leaf contacts, PCB's don't flex. The cable's connector would eventually loosen and be unusable for connecting two Saturns. However, dedicating a sacrificial cable for connecting custom hardware isn't that big of a deal.
 

zone66x

New Member
Joined
Mar 1, 2016
Messages
41
Points
8
Location
Canada
Last edited by a moderator:

zone66x

New Member
Joined
Mar 1, 2016
Messages
41
Points
8
Location
Canada
I was wondering what the pin numbers were on the communication port on the back of the Saturn. Am I right to assume that the top row from left to right are pins 2-6 and the bottom row are pins 7-12 from left to right?
 
Last edited:

antime

Extra Hard Mid Boss
Joined
Jan 24, 2002
Messages
2,587
Points
48
Website
www.iki.fi
Top row odds, bottom row evens. The slanted corner of the connector indicates pins 11/12.
 
Top