LocalH wrote:
Something to keep in mind - the most common way to handle 240p signals in a capture device is to treat the frames as fields and record a 480i signal, so there may be need to split the "480i" frames into 240p fields. At this point, to create a high-quaity 240p result, if your device captures at 720px wide, then crop 16px horizontally (I think the NES output has more border on the left?) and then resize to 640px - this will keep the aspect ratio as close to exact as one would be able to detect at these sizes). Then, you can either double the vertical resolution as mentioned (for 640x480) or halve the horizontal resolution (giving 320x240). If you resize to 320px wide, you'll notice a slight uneven nature to horizontal image data (especially where the same tile or two is repeated across the screen), but if you leave it at 640px wide you'll have a bigger filesize for the end result.
I find the combination of
Avisynth and
VirtualDub invaluable for processing video such as this. Best of all, both tools are 100% legally free, and they're much faster than doing similar processing with more traditional tools. Avisynth does require some basic scripting knowledge, albeit nothing that a veteran 6502 coder shouldn't be able to wrap their head around =P
I had a go at making a AviSynth script to do just that a while ago but I found that the image would flicker slightly, kinda like then you see the PS1 go into hi-res mode. So after a bit of tinkering and sifting through the AviSynth script manual I came up with this:
Code:
crop_x=33
crop_y=35
crop_w=640
crop_h=480
trim_s=10
trim_e=28
a=FFmpegSource2("VR_MOVIE.mpg",atrack=-1)
a=trim(a,trim_s,framecount(a)-trim_e)
a=SeparateFields(a)
c=selectodd(a)
c=Converttorgb32(c)
d=selecteven(a)
d=converttorgb32(d)
c=crop(c,0,1,width(c),height(c)-1)
c=addborders(c,0,0,0,1)
e=interleave(c,d)
e=pointresize(e,width(e),height(e)*2)
e=crop(e,crop_x,crop_y,crop_w,crop_h)
e
(I use FFmpegSource2 because I capture my stuff on my Panasonic DVD-Recorder, also this is my first attempt at a semi serious script)
I take the source video, double the framerate by creating new frames from the even and odd lines. Then I take the odd frames and shift them down by one pixel, recombine with the even frames, double the height to regain the original aspect ratio and the result is a video clip that very closely matches the original game (not including resolution).
Here is a
example of the scrip in action (shame Youtube butchers the framerate)