Currently playing:

Friday, January 06, 2017

Twitch streaming arcade PCB's

(Double playing Mad Shark)

Exactly 4 years plus second child later, and I'm back to update this neglected blog with a little something I did over the holidays.

Twitch live streaming has become quite popular, and I've started following some friends that stream live PCB plays.  Given I've got a unique collection of not only PCBs, but also of cabinets and arcade controls, this was a great opportunity for me to try and share more of my gaming treasures with the rest of the world.

For PCB/RGB capture I used a StarTech PEXHDCAP card I bought many years ago, as it was a cheap OEM version of the great (and expensive) Micomsoft SC-500N1.  Startech has since discontinued this and released a PEXHDCAP2 version, with reduced input features, but higher capture framerate for HD resolutions.  In addition to RGB/VGA input via the DVI port, the original PEXHDCAP also had HDMI, Component, Composite, and Stereo inputs. The only draw back was 1080p could only capture at 30 frames, but I didn't have a need for that.

The minimum PC specs for the PEXHDCAP was an Intel Core 2 processor with 2GB ram.  And it just so happens this is all I have in terms of a crappy PC with PCI express slot (I'm not much of a PC gamer if you haven't noticed).

Since PCB RGB is typically 1V and PC Analog RGB is .7V, taking the RGB/Gnd/CSync lines from your PCB and running straight into the DVI port (via VGA 15 pin adapter) is going to give you a washed out bright picture.  To adjust the RGB levels, you're going to need a CGA to VGA adapter (like this found on eBay).  No conversion actually happens, it just routes your RGB lines to the 15 pin adapter, but does have adjustable resistor pots on the RGB lines to bring levels down to PC analog spec.  I then run this via VGA cable into the DVI input (with VGA to DVI adapter).

Routing audio from your PCB into the PEXHDCAP's external audio break out cable will also take a bit of hacking to tap line level audio from the PCB's amplified sound.  I'll have to follow up with an actual circuit for this, but basically you need a resistor, a cap, and a mono input jack.  I just happened to have a prebuilt headphone line out with volume pot which did the trick.  I've seen others just use an external microphone setup next to the cabinet speakers, which can also be used to pickup your voice, but you won't get good quality sound from the PCB.

Last is streaming software, which is pretty well known if you've ever tried to stream something from your PC.  I use OBS which is plug and play ready to work with Twitch.  There are plenty of tutorials out there on how to set this up and configure plugins, so I won't go into detail here.

I almost forgot, most players also have a webcam setup to show off their joystick prowess, or to show their face, adding more personal interaction while streaming.  The webcam I use is a Logitech Quickcam Pro 9000.  This is pretty much the cheapest 720p camera out there that is compatible with Windows 10.  One issue I did run into was trying to run two quickcams plugged into the same PC to show both my hands/joystick as well as my face.  The issue is that two of the same cameras can't be plugged into the same USB bus as they will both resolve to the same USB address.   Buying a second PCI USB adapter (~$10) solves this, and also alleviates any framerate/bandwidth issues running on a single USB bus.  Turns out my crappy Intel Core 2 started to choke with two cameras and PCB capture at the same time, so I trimmed down to a single camera, and am back to a mostly 60FPS stream at 1280x720.

I've already tested this setup on several cabs, including a medium res game, and VGA (Sega Naomi) game and it works great!  So expect me to be streaming some Planet Harriers and NARC in the near future.  I'm typically on for a half hour at night after my kids go to sleep, maybe once or twice a week.  You can checkout my twitch page here, and be sure to check my saved streams.