VCS is a third-party capture tool by Tarpeeksi Hyvae Soft for Datapath's VisionRGB range on capture hardware; developed especially for capturing retro PCs and consoles, whose dynamic, non-standard video signals aren't well supported by Datapath's default capture software.
VCS is available on GitHub.
The VisionAV series
In this section, you'll find answers to some of the common questions and problems that one might have when using VCS.
A download for the latest Windows version of VCS is available on GitHub. For Linux, you can grab the VCS source code and compile it for your platform.
Assuming you've already installed the drivers for your capture device, simply run vcs.exe to get started with VCS.
When you run the VCS executable, two windows should open: a console window, in which notifications about VCS's status will appear during operation; and the capture window, in which captured frames are displayed.
The capture hardware may not always provide an accurate color balance by default.
To correct this, you can use the Video presets dialog to manually adjust the balance, then save the settings to be applied automatically next time you run VCS in this video mode.
When capturing an analog source, some visual noise is to be expected. VCS comes with a few ways to mitigate this.
The first thing to check is that you have suitable analog capture parameters set, using the Video presets dialog. The phase setting is especially important to get right. What the exact correct settings are depends on your capture source and can't be pre-determined, so simply adjust them until the output looks correct. You can use the capture window's magnifying glass (see Capture window: Features) to inspect the output in closer detail. Once you're happy with the settings, you can save them to be applied automatically next time.
Depending on the capture source, some noise may be present regardless of the capture parameters, in which case you can apply frame filtering to reduce the noise further. The Denoise (pixel gate) filter can be used to eliminate pixel shimmer; and there's also the more powerful – but more performance-hungry – Denoise (non-local means) filter. If you're capturing a line-doubled source (e.g. VGA mode 13h), you can apply a 1× Decimate filter to remove sub-pixel noise. The Delta histogram filter will produce a visual indication of the amount of noise present, allowing you to better estimate the effect of the various filters (just make sure that this histogram filter is the last one in the filter chain, so that it sees the changes from the other filters).
The capture hardware may not always correctly sense the resolution of the input signal, resulting in the displaying of malformed frames in VCS's capture window and/or the reporting of an incorrect input resolution in the capture window's title bar.
You can use the Input resolution dialog to manually correct the resolution.
If you find that a particular resolution is consistently misidentified by the capture hardware, you can have VCS correct it automatically via the Alias resolutions dialog.
The size of the capture window can be changed via the Output resolution dialog.
You can use the Output resolution dialog to set a fixed resolution for the capture window. All captured frames will then be scaled automatically to that resolution using the currently-active scaler. (To customize the scaler, use the
VCS supports two fullscreen modes: windowed fullscreen, and true fullscreen. In most cases, the windowed fullscreen mode is recommended, but the true fullscreen mode may be needed for variable refresh rate output.
To enter windowed fullscreen mode, first use the Output resolution dialog to set the resolution of the capture window to the size of your screen, then press the
To enter true fullscreen mode, first use the Output resolution dialog to set the resolution of the capture window to the size of your screen, then press the
To ensure that the capture window displays frames in their correct aspect ratio while in either of the fullscreen modes, select the
If you hardware supports variable refresh rate output with OpenGL, VCS should be able to take advantage of it.
First, select the
With some capture sources (e.g. DOS-mode VGA), you may find the image susceptible to tearing. This kind of tearing is present in the output signal and doesn't result from the capture process – you'd see it even if you were viewing the output directly through a monitor.
To reduce or even eliminate tearing of this sort, VCS provides anti-tearing functionality. See Anti-tear dialog for more information.
The central point of the VCS user interface is the output window, where captured frames are displayed as they arrive from the capture device and having undergone any of VCS's filtering and scaling.
If you press the middle mouse button over the output window, a magnifying glass will pop up, showing an elarged view of the area around the cursor.
You can drag the output window by left-clicking and holding anywhere on the window.
You can double-click inside the output window to toggle borderless mode on/off. The
The output window – along with the frames it's displaying – can be resized via the Output resolution dialog. Spinning the mouse scroll wheel over the output window will also adjust the output size.
Although you can emulate a fullscreen mode by turning off the output window's border and then scaling the window to the size of the the display area, there's also a true fullscreen mode available. You can toggle it on/off with the
The output window's title bar shows information about VCS's current operating state – for example, the input and output resolution.
The title bar may contain some or all of the following elements, from left to right:
Under special circumstances, the title bar may also show one of these messages:
The requested input channel on the capture device, or the entire capture device, is unavailable for use. This could be caused e.g. by an out-of-range input channel index or the capture device driver not being installed.
Right-clicking inside the output window will bring up its context menu, which gives you access to the various controls and dialogs of VCS.
The eye dropper is a special non-interactible element of the context menu. It shows the RGB color values of the pixel over which the context menu was opened.
The input menu lets you customize various operational parameters of the capture device. The menu provides the following options:
The output menu lets you customize the way in which VCS processes captured frames prior to display in the output window. The menu provides the following options:
The window menu lets you customize various properties of the output window. The menu provides the following options:
Draw the window using OpenGL. Allows variable refresh rate output (if supported by your hardware), but is incompatible with Windows XP and the magnifying glass feature.
This dialog can be accessed with
With the alias resolutions dialog, you can instruct VCS to automatically override certain capture resolutions.
For instance, if you find that your capture device is displaying 640 × 400 as 512 × 488 (or something to that effect), you can define 640 × 400 as an alias of 512 × 488. Whenever the capture device reports a new video mode of 512 × 488, VCS will tell the device to use 640 × 400, instead.
This dialog can be accessed with
The anti-tear dialog provides functionality to remove tearing from captured frames.
Under some circumstances, like when the captured source doesn't sync its rendering with the refresh rate, captured frames can contain tearing. VCS's anti-tearer helps mitigate this issue.
Anti-tearing should be considered an experimental feature of VCS. It works well in some cases and not that well in others. It'll completely fail to work if the captured source redraws the screen at a rate higher than the capture's refresh rate – e.g. a game running at 100 FPS with a refresh of 60 Hz.
This dialog can be accessed with
The filter graph dialog lets you to create chains of image filters to be applied to captured frames prior to display in the output window.
The filter graph is made up of nodes that can be connected together in a chain. These nodes come in three varieties: input gate, output gate, and filter.
The input and output gates determine the resolutions for which the connected filters will be applied. For instance, if you set an input gate's width and height to 640 and 480, and the width and height of an output gate to 1920 and 1080, any filters you connect between these two nodes will be applied when the size of the output window is 1920 × 1080 and the original resolution of the frames (i.e. the capture resolution) is 640 × 480. You can also use the value 0 for a gate's width and/or height to allow VCS to match any value to that dimension: an input gate with a width and height of 0, for instance, will apply the connected filters to frames of all capture resolutions, provided that they also meet the resolution specified for the output gate. A filter graph can have multiple chains of these input-filter-output combos, and VCS will select the most suitable one (or none) given the current capture and output resolutions.
When deciding which of multiple filter chains to use, VCS will prefer more specific chains to more general ones.
If you have e.g. an input gate whose width and height are 0, and another input gate whose width and height are 640 and 480, the latter will be used when the capture resolution is exactly 640 × 480, and the former otherwise.
Likewise, if your input gates are 0 × 0 and 640 × 0, the former will be applied for capture resolutions of any × any, except for 640 × any, where the latter chain will apply – except if you also have a third input gate of 640 × 480, in which case that will be used when the capture resolution is exactly 640 × 480.
To connect two nodes, click and drag with the left mouse button from one node's output edge (square) to another's input edge (circle), or vice versa. A node can be connected to as many other nodes as you like. To disconnect a node from another, right-click on the node's output edge, and select the other node from the list that pops up. To remove a node itself from the graph, right-click on the node and select to remove it. To add nodes to the graph, right-click on the graph's background to bring up the node menu, or select
This dialog can be accessed with
Normally, the capture device will automatically set the capture resolution to match that of the input signal, but sometimes the result isn't quite right. The input resolution dialog lets you override this resolution with your own one.
You can change a button's assigned resolution by clicking on it while pressing the Alt key.
This dialog can be accessed with
The output resolution dialog lets you resize the output window. This also resizes the frames being displayed in the window.
This dialog can be accessed with
The overlay dialog lets you define a message to be overlaid on the output window.
You can combine normal text with pre-set VCS variables and HTML/CSS formatting to create a message to be shown over the output window.
This dialog can be accessed with
The video presets dialog lets you to modify the capture devices's video signal parameters.
A given video preset's parameters will be applied when all of its "Activates with" conditions are met. For instance, if you've defined a preset's activation resolution as 800 × 600 and have disabled the other activating conditions, the preset's parameters will be applied when the capture video mode is 800 × 600.
To add or delete a preset, click the + or - buttons next to the preset selector at the top of the dialog. Clicking the + button while holding the Alt key will create a new preset with the current preset's settings.
If you want your changes to the video presets to persist after you exit VCS, remember to save them first! This can be done via
This dialog can be accessed with
The video recorder gives you the option to stream captured frames into a video file.
To use the video recorder in Windows, you'll need to install the 32-bit version of the x264vfw codec and run its configurator at least once, so that its settings are added into the Windows registry for VCS to find.
The recorder will write frames as they appear in the output window into a video file, with the following caveats:
The following video recorder settings should result in the highest possible output video quality.
If the recorder dialog indicates that frames are being dropped while recording, your system may be limited in CPU or disk performance. Here are a few tips that may help you mitigate those issues.
Since VCS is largely a single-threaded program, dragging or otherwise interacting with its GUI items (e.g. dialog windows) during recording may cause transient frame drops even if your system is otherwise capable.
During recording, frames are saved to disk in batches. If you get a bunch of frames droppede very couple of seconds but are fine otherwise, insufficient disk performance may be the reason. Optimizing the recorder's settings for a smaller file size should help, as would recording at a lower resolution (i.e. with a smaller-sized output window.
If recording fails and you receive an error in the VCS console window to the tune of "x264 [error]: malloc of size ░ failed", you may be running into a memory fragmentation issue (see this issue report on GitHub). VCS is a 32-bit program that, while recording video, shares its couple-gigabyte memory space with the x264 encoder, which may result in x264 being unable to allocate a large-enough contiguous block of memory for its own operation. You may be able to fix this issue either by selecting a Preset option closer to "Ultrafast", reducing the recording resolution (i.e. the size of the output window), or decreasing the size of VCS's pre-allocated memory cache (see the -m command-line option).