Pixel Perfect

Guide

This page explains the major steps of recording and encoding video game footage. It also describes problems you might run into with certain hardware.

AmaRecTV

amarec

AmaRecTV is a program that can display and record DirectDraw devices like the Micomsoft SC-500N1 and a wide range of other capture devices. It offers the correct settings to deinterlace retro consoles and it can also be used as a video source for streamings programs.
To begin, download the current version of AmaRecTV from the Japanese homepage: AmarecTV download (first link)

You should also grab a codec to encode your videos. The most popular codecs are the lossless Lagarith and the H264 encoder x264vfw. Lagarith will create bigger files, but skipping in them is faster than in H264 video files.

If your computer displays numbers like this '1.337,42' you will get an error when you launch Amarec. To fix this you have to change the number format in the Windows control panel. The setting for this is under 'Clock, Language and Region', 'Change date, time, or number formats' and then under 'Additional settings'. Once you switch the decimal symbol with the digit grouping symbol Amarec should start fine.

Settings

amarec general

The first page of the config menu lets you select a folder for you captured videos and screenshots. You can also set some shortcuts for your mouse.

amarec device

Select your capture device on the Graph 1 page. You can select the input of your card, the resolution and the frame rate. Retro games will require 'w=720,h=480,fps=29.97,fcc=YUY2,bit=16' for most capture devices. Some devices like the SC-500N1 or PEXHDCAP detect 240p signals correctly as 240 lines. In this case you have to select 'w=720,h=240,fps=59.94,fcc=YUY2,bit=16'.

For HD sources you should select 'w=1280,h=720,fps=59.94,fcc=YUY2,bit=16' for 720p or 'w=1920,h=1080,fps=59.94,fcc=YUY2,bit=16' for 1080p.

The fps value you set here will be used to record your footage. If your device allows it you can enter the correct value for your console, like 'fps=60.10' for an NTSC SNES.

The bottom part of the window lets you select the audio source, which in most cases should be from the same capture device.

amarec preview

The Graph 2 page will determine how the game is displayed in the preview window. You can select the aspect ratio, if the black borders should be cropped and the deinterlacing. The Retro Game mode is correct for 240p games on a capture device that only records in 480i. For real 480i games you should choose the Action Game mode.

amarec preset

The Preset page allows you to create buttons at the top of the preview window that allow you to switch between different capture devices, inputs and resolutions with a single click.

amarec recording

On the recordings tab you should choose either Lagarith or x264vfw as the video compressor and uncompressed audio. The Framerate setting should be left at 999 to match the value you entered on the device tab. If you want to save your video with the preview settings you can also switch the Filter Processing selector to On. In most cases you should keep it deactivated though.

amarec advanced

The Advanced tab offers some settings that affect the buffer size and the CPU priority. If you're using the SC-500N1 / PEXHDCAP with RGB input you have to set Color horizontal Adjust to Type-C.

Errors

If you get errors that the selected resolution isn't available on your capture device you can fix them in most cases by setting the the Video Standard (under Video Settings in the driver) to NTSC_M from PAL_B or vice versa.

Codec Settings

Choosing a codec depends on the hardware you have and which software you want to use to edit the files. If you have a lot of fast storage space, but a slow CPU you can record videos as uncompressed RGB files. Codecs with better compression require a better CPU, but save storage space and can record to slower disks. Lagarith and x264vfw are two good options for recording games.

Lagarith
lagarith

Lagarith should be used in YUY2 mode. If you're getting errors in your editing software you should disable Null Frames.

x264vfw
x264vfw

To set the quality of the encodes you can use the CRF setting. A value of 0 will tell x264 to record in lossless mode, while higher values lower the quality. To record source files you should choose a value between 10 and 18. x264 should be set to the Superfast or Ultrafast preset. This doesn't lower the quality of the encodes in CRF mode, but makes it possible to record on mid-range CPUs in real time. If you are using x264 by setting a constant or variable bitrate, for example when you're streaming, the visual quality of the video will be slightly lower with the fast presets. But for live streaming this is a necessary compromise.

Seeking in H264 files is slow because most frames require information from other frames as well to decode. By setting the keyint setting to something low like 10 you can increase the performance in video editing software at the cost of slightly bigger file sizes.

Micomsoft SC-500N1 / PEXHDCAP

Driver

There are two recommended driver versions for this capture card. The original driver v1.1.0.108 from Micomsoft has the sharpest picture quality. The downside with this driver version is that it doesn't allow you to record HDMI sources at a different refresh rate than 59.94Hz or 60.00Hz. If you want to record footage from the Framemeister at the original output rate of your retro consoles you should use driver v1.1.0.126 from Startech. Avoid the v1.1.0.124 driver from Micomsoft as it has inaccurate colors.

Full Range RGB

Recording Full Range RGB on the capture card is no problem. The old (108) driver will record the video as it is set on your output device. Full Range RGB will be recorded as 0-255 and Limited Range RGB will be recorded as 16-235. You might have to expand the 16-235 files manually to 0-255 in VirtualDub.
The new driver (126) has an option in the driver settings to switch between 0-255 and 16-235. This setting is misleading. The 0-255 setting will expand 16-235 video to 0-255 directly in the driver. The 16-235 setting will record the signal as it is. This means that to record 0-255 video you have to choose 16-235 in the driver and to record 16-235 video you have to select 0-255 in the driver.

Disabled C1E State Bug

The SC-500N1 / PEXHDCAP and SC-512N1-L will disable the C1E power saving state of your CPU while active. Normally the C1E state is activated again after you close the recording software, but sometimes it will stay deactivated. The result is that your CPU will consume more power and run hotter. A temporary fix is to reset the power settings in the Windows system settings.

Update: I have read that the problem is fixed under Windows 8 with the latest drivers.

SC-500N1 & Framemeister Combo

To record your Framemeister with the SC-500N1 / PEXHDCAP you have to set it to 720p HDMI output. In the device settings of Amarec you have to select 'w=1280,h=720,fps=60.00,fcc=YUY2,bit=16'. If you're using the newer drivers you can change fps=60.00 to other values that match your console. The exact refresh rate is displayed in the bottom bar of Amarec in the Cap part. For example fps=60.10 for an NTSC SNES.

On the newer drivers you also have to select the 16-235 setting in the driver as the Framemeister outputs a full range RGB signal.

Elgato Game Capture HD & The Framemeister

elgato

Recording from your Framemeister is as simple as with any other HD console on the Elgato HD. Just select HDMI and Standard HDMI Color Range and start your captures. It is recommended that you set your Framemeister to 720p output as the Elgato HD can capture 720p with 60 frames per second. Many retro games use 60Hz blinking effects for fake transparency that are lost when you record them in 1080p 30fps.

elgato settings

Framemeister Settings

There are only a few settings that have to be changed on the Framemeister. For more information visit the Wiki or the thread on the shmups forum. The settings vary from console to console and sometimes even between games.

IMAGE_MODE
This should be on PICTURE for progressive sources (240p, 480p) and on MOVIE for interlaced sources (480i).

ASPECT_RATIO
Use the correct settings for your games, which is in most cases 4:3. Never stretch a 4:3 game to 16:9 just to fill the screen space.

COLOR_SET
You can tweak the brightness and contrast here. The sharpness level should be left at 0 or at most set to 1.

VISUAL_SET
SYNC_MODE auto will output at the same refresh rate as the console. If your capture device doesn't support non-standard refresh rates you can set it to off for a constant 60.00Hz output. If you deactivate AUTO_SCALER you can tweak the sharpness of the picture. Lowering H_SCALER from 6 to 5 will result in a slightly sharper picture for 240p sources. For early 3D games you can increase the H_SCALER value to make the image softer.

HDMI_OUTPUT
Depending on your capture card you should set this to 720p or 1080p. 50Hz PAL games will work best with 576p output.

Early 3D consoles

Early 3D consoles often benefit from a softer image. The H_SCALER setting on the Framemeister can be used to soften the image by setting it to a high value. Personally I set the H_SCALER to 13 and the output of the Framemeister to 720p. Alternatively you can use the 480p output mode and set H_SCALER to 10. You can also try different values for V_SCALER and increase the H_SCALER even further when you're not using the scanline overlay. This will improve the picture for N64 games, but also PS1 and Saturn games can benefit from a softer image.

Deinterlacing

Yadif in Virtual Dub

yadif To deinterlace video in VirtualDub you can add a filter in the Video menu. Select Deinterlace and 'Interpolate using Yadif algorithm'. To get the full framerate from games that run natively at 60fps you have to select the double frame rate option as shown in the screenshot.

QTGMC in AviSynth

To use QTGMC you need AviSynth.

It can be applied to any interlaced video in an AVS script. Example:

AVISource( "interlaced.avi" )
AssumeTFF()
QTGMC( Preset="Medium" )

To learn more about this algorithm check the Wiki page.

Encoding for Beginners

Once you've done all post processing steps you can encode the video with x264 to upload it to Youtube or just archive it.

HandBrake

handbrake The easiest tool to encode videos with x264 is HandBrake. It supports many formats and can be configured with a few clicks. The most important setting is the quality slider. Lower values will result in better quality at higher filesizes. The default value of 20 is ideal for Youtube uploads.

Yua

Yua is a tool that was developed by nate from the speeddemosarchive community. It's designed to make it as easy as possible to encode and cut footage from retro consoles. For more information check the forum thread and this Tutorial on how to capture and encode retro consoles correctly. If you're done with it you can even become a speedrunner.

Advanced

If you want even more options you should check out MeGUI. This program is a collection of a bunch of smaller tools to work with videos. It should offer you everything you need to encode videos and create container files.

Upscaling 240p Footage

SMPTE-C is the color space that is used for SD videos. A recorded 240p, 480i or 480p video will use this color space according to Rec. 601. This is no problem, but if you upscale it to an HD resolution like 720p it will be treated as Rec. 709 by playback software. This will result in wrong colors like darker greens.

To fix this you need AviSynth and the ColorMatrix plugin.

LoadPlugin("ColorMatrix.dll")
AVISource("mario_720.avi")
ColorMatrix(mode="Rec.601->Rec.709")

This will fix the colors so that the 720p video will look like the original again.

If you're using a video editing software like Sony Movie Studio or Sony Vegas and load the SD clip as an asset for an HD video the colors should be converted automatically.

Microphones & CRTs

When you're using a microphone next to a CRT it will pick up the 15kHz noise of the CRT. This is a common problem in live streams when the player is using an old CRT TV to play the game. To fix this it is highly recommended that you use a low-pass filter and filter the band between 15kHz and 16kHz.

This is best done with hardware audio interfaces, but it can also be done on a PC with VSTHost and Kjaerhus Audio: Classic Auto-Filter for example.

Settings:
Filter: Band Restrict (for some reason it doesn't say BR in VSTHost)
Frequency: 15kHz (15.5-15.7kHz)
Feedback: 0%
Mix: 0:100

Check this post for more infromation.

Choosing a Capture Device

Picking a capture device depends on your personal setup and budget. There are a couple of important features that differentiate the devices. Here is a list of qualities that you should consider.

Connection Type
If you have a desktop computer you can choose between internal cards with PCIe or external devices with USB. If you want to use a notebook you are limited to USB and ExpressCard devices. You also have to check if USB 3.0 devices require USB 3.0 or if they will also work on USB 2.0. Sometimes USB 3.0 devices only work on certain chipsets in your computer, so make sure to the compatibility before you buy a capture device.

Video Input Types
There are different types of cables that capture devices can accept. Do you need HDMI for HD consoles? What about S-video and component. The DVI input can usually accept both analogue RGB (VGA) and digital signals (HDMI), but make sure that it accepts the type you want to record with it.

Supported Resolutions
If you want to capture from a 1080p source you will need a capture card that supports 1080p60 input. Not all HDMI capture devices will accept this resolution and many will only save half of the frames, making it 29.97fps. If you want to capture retro consoles you should find out if the card accepts 240p signals on the component or VGA/DVi input.

Refresh Rates
Does the card accept only standard 59.94Hz signals or can you also record your consoles that output at 60.10Hz? And if the card accepts a non-standard refresh rate, does it allow you to record at that specific framerate? Devices from Blackmagic are known to have problems with non-standard refresh rates. The AverMedia H727 on the other hand accepts them, but the picture will jump slightly every couple seconds.

Full / Limited RGB Range
Does it support Full Range RGB and is there an option to switch to limited range?

How is 240p content handled?
Most devices will record all 15kHz input as interlaced 720x480 video, but some devices will record 240p input as 720x240.

Does it handle resolution changes?
Consoles like the PS3 switch between different output modes, but also retro games sometimes switch between 240p and 480i. On some capture devices this will stop the recording, others will have a gap after the resolution change and some capture devices have no problems with this.

Does it support DirectShow? Is there a delay?
Usually DirectShow devices will only have a very small delay, but devices with an built in H264 encoder can have up to a couple seconds delay. If you have to use the vendor software you might also have higher delay than with a DirectShow device in programs like AmaRecTv.

Is it lossless?
Devices with a built in H264 lower the quality a bit, but create smaller files without stressing your CPU. These devices will also use the YV12 colorspace instead of higher quality YUY2 in lossless devices.

DVR Functionality
Does the capture software for the device allow you to rewind and start a recording at a scene that has already happened?

Standalone Recorder
Most capture devices will need a computer, but some will also be able to record without one. These devices are more portable.

Passthrough and Transcoding
Does the capture device have an output for the video or do you need a seperate splitter if you want to record and play on the TV at the same time? Some devices can also transcode analogue inputs and display them on their digital HDMI output.