Crazy Idea: Using DynaPort SCSI/Link for UDP Video Streaming to a Compact Mac?

I would like to be able to stream video (and possibly sound) directly to a compact Mac. The fastest way to get data to a Mac is via the SCSI port. Furthermore, there already exists a many different devices out there (BlueSCSI, RaSCSI) that already implement a virtual DynaPort SCSI/Link device. That device takes raw Ethernet packets and allows the Mac to retrieve them one at a time using a SCSIRead command. Nice.

I did some back of the envelope computations, and an uncompressed Mac screen image is just shy of 21 kilobytes (512 x 342 / 8 / 1024). This is an acceptable size for a UDP packet. Furthermore, the SCSI interface on a Mac Plus can supposedly transfer about 2104 kbps. The screen data is 171 kilobits (512 x 342 / 1024), which would work out to about 12 FPS. Not coincidentally, this is more or less the frame rate MacFlim is able to achieve on a Mac Plus, so the math checks out.

Generally, you have the DynaPort driver and MacTCP acting as a middleware between that raw packets and the application, but my idea is to write an application that bypasses all that and talks to the DynaPort directly, reading UDP packets, doing minimal or no validation, and writing them directly to the screen buffer and/or sound buffers.

This project can spin off in some crazy directions. Imagine that the encoder was running on a more powerful computer, such as a gaming PC with a high-end GPU, and it was live encoding the video as UDP stream for the compact Mac to display. Furthermore, imagine the Mac client application was rigged to send back keystrokes and mouse locations, also via UDP, to the server. Suddenly you can play the latest video games on your Mac and pretend to be living in an alternative world where your compact Mac could run Doom, or Cyberpunk 2077, or Flight Simulator 2025! :D
 
Back in the day (say, 1990), I got to play around with a professional video camera with component outputs hooked up via a SCSI capture card to a Mac Plus. You could point the camera at a scene, and it would display as dithered black and white on the Plus, with about a half-second delay.

Unfortunately, I can't recall the name of the capture card or the associated software package that ran on the Plus -- but I vaguely recall that we've discussed it previously in these forums.

So... you may need an extra layer of middleware anyway that does appropriate image dithering, and I seem to recall that the Plus anyway couldn't capture 8 bit audio at the same time it was capturing the video (it was an all-out endeavour to capture the video) -- but if you pre-formatted the video on the faster machine before sending the data stream, it might work.

The other issue is that at 12FPS, once again you'll be saturating the SCSI bus for capture, and likely the CPU as well for slower 68k Macs. So there won't be much head room for sending a signal back the other way -- suddenly you'll have to deal with async signaling and buffers, which will increase the overhead significantly. Might be easier to skip the SCSI bus for output and send that data via serial instead?

IIRC, we never actually got video over SCSI to go higher than around 9 FPS; the bus needed extra bandwidth for everything else it was doing. Although I vaguely recall being able to send a mostly white image at 15 FPS; the capture device didn't dynamically adjust though; we had to stop the capture, set the new rate, try the new capture and see if it bottomed out or not on the current image.
 
Back
Top