Originally posted by Rockin'-B@Sun, 2006-03-19 @ 11:47 AM
So you are using the serial communication port on the back of the Saturn? IIRC there were some people trying to use it but they had no success.
Yes. I put the module inside the Saturn, but I soldered the wires to the link port's test pads, so I think using a chopped-up link cable should work. TakaIsSilly had problems using a MAX232 because the port's power supply is so poor. I took the power directly from the power supply, but the chip can be configured to take its power from the USB port, so that shouldn't be an issue.
This solution is great, much better than the cartridge approach, cheaper and programs uploaded can use any existing cartridge.
Don't be so quick to dismiss the cart-based solutions. While the link port approach is much simpler in terms of hardware you lose big-time in software complexity. So if you still have a functioning Commlink or get one of Pinchy's carts I would recommend you use asynchronous comms for both CPUs. That way you will have the best of both worlds.
Too bad that I haven't got such a deep knowledge in that direction, I never thought that gdb could work on Saturn. If I could use gdb with source level debugging on a real Saturn, it would be a major improvement for me. What about profiling, is there a possibility to use it on Saturn, too?
gprof will be more difficult to make work, as it's not designed to be used with embedded systems. Hacking around the profiling functionality so it records to a RAM cart which can then be dumped to a PC might work, but I don't know how much work that would involve. Profiling in general is of course possible.
I should consider building such an adapter. Can you please tell a bit more about it, it's possebilities and stuff. How expensive would it be to build one and what skill is needed.
The
DLP-2232M module I used costs around 30â¬, other than that you need some wire and possibly a prototyping board. If you want to make an external converter you'll also need a Saturn system link cable or a connector that fits the port. Depending on how you choose to configure the module you then need to solder four or five signal wires and around five power wires and six ground wires (again, depending on configuration).
If you choose to use asynchronous mode and virtual comm-port drivers then potentially any program that uses serial ports can directly talk to the Saturn. This includes terminal emulators, GDB, and so on. The transfer speeds will however be much lower (the SH7604 manual lists 224 kbit/s as the maximum bit rate for async mode).
If you choose to use the direct-access drivers (in async or synchronous modes) you will need to make modifications to existing software or write replacements yourself. Synchronous mode is very fiddly to use, and it's easy to cause communication errors that will either cause the transfer to get out of sync or that will make the SH-2's serial interface stop transmitting or receiving.
Two interesting features available with the serial ports are serial interrupts and the ability to use DMA for the data transfers. This means you can break into a program running on the Saturn (a must for debugging), and stream data in the background. Unfortunately the data rates are not enough for CD emulation, but it has its uses.