DIY: Atari Jaguar AV composite and S-Video box

  • strict warning: Non-static method GalleryDataCache::put() should not be called statically in /home1/draperfa/public_html/gallery2_core/embed.php on line 32.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryDataCache.class on line 85.
  • strict warning: Non-static method GalleryEmbed::getEmbedPathByHttpRequest() should not be called statically in /home1/draperfa/public_html/gallery2_core/embed.php on line 36.
  • strict warning: Non-static method GalleryUtilities::getRequestVariablesNoPrefix() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryEmbed.class on line 1092.
  • strict warning: Non-static method GalleryUtilities::_getRequestVariable() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 289.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 875.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 879.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 293.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 708.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 714.
  • strict warning: Non-static method GalleryEmbed::init() should not be called statically in /home1/draperfa/public_html/sites/all/modules/gallery/gallery_base.inc on line 134.
  • strict warning: Non-static method GalleryDataCache::containsKey() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryEmbed.class on line 94.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryDataCache.class on line 203.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /home1/draperfa/public_html/gallery2_core/init.inc on line 46.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /home1/draperfa/public_html/gallery2_core/init.inc on line 47.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /home1/draperfa/public_html/gallery2_core/init.inc on line 48.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /home1/draperfa/public_html/gallery2_core/init.inc on line 49.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryModule.class on line 21.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /home1/draperfa/public_html/gallery2_core/init.inc on line 55.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryPlatform/UnixPlatform.class on line 21.
  • strict warning: Non-static method GalleryUtilities::getRequestVariables() should not be called statically in /home1/draperfa/public_html/gallery2_core/init.inc on line 150.
  • strict warning: Non-static method GalleryUtilities::_getRequestVariable() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 242.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 875.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 879.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 246.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 708.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 714.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /home1/draperfa/public_html/gallery2_core/init.inc on line 152.
  • strict warning: Non-static method GalleryTranslator::getSupportedLanguageCode() should not be called statically in /home1/draperfa/public_html/gallery2_core/init.inc on line 154.
  • strict warning: Non-static method GalleryTranslator::getLanguageData() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryTranslator.class on line 414.
  • strict warning: Non-static method GalleryUtilities::strToUpper() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryTranslator.class on line 418.
  • strict warning: Non-static method GalleryDataCache::put() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryEmbed.class on line 103.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryDataCache.class on line 85.
  • strict warning: Non-static method GalleryEmbed::isCompatibleWithEmbedApi() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryEmbed.class on line 107.
  • strict warning: Non-static method GalleryEmbed::getApiVersion() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryEmbed.class on line 61.
  • strict warning: Non-static method GalleryUtilities::isCompatibleWithApi() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryEmbed.class on line 61.
  • strict warning: Non-static method GalleryDataCache::containsKey() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryEmbed.class on line 128.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryDataCache.class on line 203.
  • strict warning: call_user_func() expects parameter 1 to be a valid callback, non-static method RewriteSimpleHelper::loadItemIdFromPath() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/rewrite/classes/RewriteUrlGenerator.class on line 103.
  • strict warning: Non-static method GalleryUtilities::getRequestVariables() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/rewrite/classes/RewriteSimpleHelper.class on line 38.
  • strict warning: Non-static method GalleryUtilities::_getRequestVariable() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 242.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 875.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 879.
  • strict warning: Non-static method GalleryUtilities::_getRequestVariable() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 242.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 875.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 879.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 246.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 708.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 714.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 708.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUtilities.class on line 714.
  • strict warning: Non-static method GalleryCoreApi::getAllFactoryImplementationIds() should not be called statically in /home1/draperfa/public_html/gallery2_core/init.inc on line 179.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryCoreApi.class on line 187.
  • strict warning: Non-static method GalleryFactoryHelper_simple::getAllImplementationIds() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryCoreApi.class on line 188.
  • strict warning: Non-static method GalleryFactoryHelper_simple::_getFactoryData() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 213.
  • strict warning: Non-static method GalleryFactoryHelper_simple::_getSingleton() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 63.
  • strict warning: Non-static method GalleryCoreApi::newFactoryInstanceById() should not be called statically in /home1/draperfa/public_html/gallery2_core/init.inc on line 186.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryCoreApi.class on line 174.
  • strict warning: Non-static method GalleryFactoryHelper_simple::newInstanceById() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryCoreApi.class on line 175.
  • strict warning: Non-static method GalleryFactoryHelper_simple::_getFactoryData() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 191.
  • strict warning: Non-static method GalleryFactoryHelper_simple::_getSingleton() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 63.
  • strict warning: Non-static method GalleryFactoryHelper_simple::newInstance() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 201.
  • strict warning: Non-static method GalleryFactoryHelper_simple::_getFactoryData() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 141.
  • strict warning: Non-static method GalleryFactoryHelper_simple::_getSingleton() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 63.
  • strict warning: Non-static method GalleryCoreApi::newFactoryInstanceById() should not be called statically in /home1/draperfa/public_html/gallery2_core/init.inc on line 186.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryCoreApi.class on line 174.
  • strict warning: Non-static method GalleryFactoryHelper_simple::newInstanceById() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryCoreApi.class on line 175.
  • strict warning: Non-static method GalleryFactoryHelper_simple::_getFactoryData() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 191.
  • strict warning: Non-static method GalleryFactoryHelper_simple::_getSingleton() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 63.
  • strict warning: Non-static method GalleryFactoryHelper_simple::newInstance() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 201.
  • strict warning: Non-static method GalleryFactoryHelper_simple::_getFactoryData() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 141.
  • strict warning: Non-static method GalleryFactoryHelper_simple::_getSingleton() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 63.
  • strict warning: Non-static method GalleryCoreApi::getCodeBasePath() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 169.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 175.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/httpauth/classes/HttpAuthPlugin.class on line 21.
  • strict warning: Non-static method GalleryCoreApi::getAnonymousUserId() should not be called statically in /home1/draperfa/public_html/gallery2_core/init.inc on line 203.
  • strict warning: Non-static method GalleryCoreApi::getPluginParameter() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryCoreApi.class on line 3078.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryCoreApi.class on line 300.
  • strict warning: Non-static method GalleryPluginHelper_simple::getParameter() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryCoreApi.class on line 302.
  • strict warning: Non-static method GalleryPluginHelper_simple::_fetchAllParameters() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryPluginHelper_simple.class on line 222.
  • strict warning: Non-static method GalleryDataCache::containsKey() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryPluginHelper_simple.class on line 281.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryDataCache.class on line 203.
  • strict warning: Non-static method GalleryDataCache::get() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryPluginHelper_simple.class on line 282.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryDataCache.class on line 186.
  • strict warning: Non-static method GalleryCoreApi::loadEntitiesById() should not be called statically in /home1/draperfa/public_html/gallery2_core/init.inc on line 208.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryCoreApi.class on line 2360.
  • strict warning: Non-static method GalleryEntityHelper_simple::loadEntitiesById() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryCoreApi.class on line 2361.
  • strict warning: Non-static method GalleryDataCache::containsKey() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryEntityHelper_simple.class on line 53.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryDataCache.class on line 203.
  • strict warning: Non-static method GalleryDataCache::getFromDisk() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryEntityHelper_simple.class on line 56.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryDataCache.class on line 273.
  • strict warning: Non-static method GalleryDataCache::getCachePath() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryDataCache.class on line 280.
  • strict warning: Non-static method GalleryDataCache::getCacheTuple() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryDataCache.class on line 405.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryDataCache.class on line 287.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUser.class on line 21.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryEntity.class on line 21.
  • strict warning: Declaration of GalleryUser::create() should be compatible with GalleryEntity::create() in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUser.class on line 42.
  • strict warning: Declaration of GalleryUser::save() should be compatible with GalleryEntity::save($postEvent = true, $setAclId = NULL) in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryUser.class on line 42.
  • strict warning: Non-static method GalleryDataCache::put() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryEntityHelper_simple.class on line 95.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryDataCache.class on line 85.
  • strict warning: Non-static method GalleryUtilities::isA() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/helpers/GalleryEntityHelper_simple.class on line 118.
  • strict warning: Non-static method GalleryDataCache::put() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryEmbed.class on line 133.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically in /home1/draperfa/public_html/gallery2_core/modules/core/classes/GalleryDataCache.class on line 85.
  • strict warning: Non-static method GalleryCoreApi::getMapEntry() should not be called statically in /home1/draperfa/public_html/sites/all/modules/gallery/gallery_user.inc on line 616.
  • warning: mysqli_real_connect(): (42000/1044): Access denied for user 'draperfa_draper'@'localhost' to database 'draperfa_dratekgallery2' in /home1/draperfa/public_html/gallery2_core/lib/adodb/drivers/adodb-mysqli.inc.php on line 109.
  • warning: Creating default object from empty value in /home1/draperfa/public_html/sites/all/modules/mailhandler/mailhandler.module on line 123.

Purpose

While messing around with my collection of classic game systems, I began using composite connections whenever I could.  My current TV doesn't support this, so I'm using an adapter, which means I don't get the improved image that would come with these connections, but it also means that I'm not daisy-chaining a bunch of RF adapters together, so I guess it does offer some visual improvement...

When I came to the Jaguar, I began looking to acquire an AV cable.  There are plenty on eBay, but I felt $30 was more than I wanted to invest.  During my digging around, I came across several tutorials on making you're own cable if you can handle some basic soldering.  Turns out, the Jaguar already supports composite, s-video, and component output, so it's actually a fairly simple DIY.

Card Edge Connector

The AV port on the back of the Jaguar uses a 24-pin Card Edge connector (12 pins on top, 12 on the bottom.)  You might be able to find one of these around (I think the 2600 uses one for the cartridge slot, but who wants to sacrifice one of those.)  What I did (and what most of the tutorials do) is adapt a 34-pin floppy card edge connector.  If you happen to have an old floppy drive (particularly a 5.25" drive) you might already have the cable.  If not, they are fairly inexpensive.

In order to use the connector from a floppy drive, you will need to do some cutting.  If you notice in the above picture, there is a divider near the left edge.  You DO NOT want this, or the connector will not go on the Jaguar.  I cut mine just past the 12th pin from the right.  I then cut off the left edge so I could plastic cement it to the connector to make it look nicer.  The final slot width needs to be about 1-5/16 inches, so keep that in mind as you are cutting.

Jaguar Pinouts

As I mentioned, the jaguar already provides the connections for composite, component, and s-video.  In fact, if you didn't care about modding the system, you could just solder directly to the pins, but I don't like doing that myself.

The first table below is the index of the pins as you are looking at the rear of the Jaguar (I highlighted the pins that I used for the AV and S-Video connections.)  The following table lists what each pin does. (source: Pinouts.ru.)

1A
2A
3A 4A
5A 6A 7A 8A
9A 10A 11A 12A
1B
2B
3B 4B 5B 6B 7B
8B
9B 10B
11B
12B
Pin Name Description
1A AL Audio left
2A AGND Audio ground
3A Reserved  
4A Video_GND Ground (chroma)
5A B RGB Blue, 75 Ohm, 0.7 V peak to peak.
6A HSYNC Horizontal sync, 75 Ohm, 3 V peak to peak.
7A G RGB Green, 75 Ohm, 0.7 V peak to peak.
8A CHROMA S-Video chroma, 75 Ohm, 1.0V peak to peak.
9A Reserved  
10A Reserved  
11A 9V 9 Volts DC, 100 mA max.
12A Reserved  



1B AR Audio right
2B AGND Audio ground
3B GND Video ground
4B R RGB Red, 75 Ohm, 0.7 V peak to peak.
5B CSYNC Composite sync, +5V, TTL levels
6B Reserved  
7B LGND Luminance ground
8B LUM S-Video luminance, 75 Ohm, 1 V peak to peak.
9B Reserved  
10B CVBSGND Composite video ground
11B CVBS Composite video, 75 Ohm, 1 V peak to peak.
12B Reserved  

A quick note: while your adapter may work without grounding, you'd be asking for trouble.  Use the appropriate grounds (my connector pin fell out for the chroma ground, so I wound up sharing the luminance ground.  Should be ok.... right?)

AV and S-Video Connectors

You could probably get the connectors at Radio Shack pretty cheap.  I had a couple old satellite receiver boxes that had the RCA AV connectors and an S-Video connector, so I just took those out.  In hindsight, it may have been better to just buy some at the Shack.  Probably would have only cost a couple bucks and would have saved me the time and trouble of desoldering, but then, I did manage to make this completely from parts I already had...

For connecting the S-Video port, there are 4 pins (chroma, chroma ground, luminance, luminance ground.)  Imagine the following table is the port as you are looking at it:

Chroma Luminance
Chroma GND Luminance GND

Packaging

Use your imagination for how you want to package the final result.  I already had a small project box from Radio Shack, which was just about the perfect size for something like this.  I drilled holes and mounted the RCA and S-Video connectors, mounted my customized card edge connector with some plastic cement, wired it up using strands from an old networking cable, and closed it up.  Final result looks pretty nice, if I do say so myself.

The final result works GREAT, and I was able to use parts I already had, so it only cost me some time.  Just a note, in case anybody is curious... S-Video should result in a better picture than composite, so use that if you can.  However, if you just want to make a composite AV cable, that might be the easier approach...