FCEUX AVI Recording Color Loss?

Discuss emulation of the Nintendo Entertainment System and Famicom.

Moderator: Moderators

Post Reply
toddtj
Posts: 2
Joined: Wed Jan 02, 2019 10:37 pm

FCEUX AVI Recording Color Loss?

Post by toddtj »

I recorded a short movie in FCEUX using the movie recorder feature and then recorded it using the built in AVI recording feature. Some of the colors in the recording are wrong. Check the screenshot I attached for a comparison. You can clearly see the boxes are a different color in the capture (left) than the emulator (right). The codec setting I used was "Full Frames (Uncompressed). Why did this happen?
Attachments
fceux_avi_color_compare.png
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: FCEUX AVI Recording Color Loss?

Post by lidnariq »

I'd guess it's "full uncompressed frames" stored YUV420, or maybe YUV411. You want YUV444 in order to retain all the color information.
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: FCEUX AVI Recording Color Loss?

Post by tepples »

Most video codecs break each pixel down into luma (lightness) and chroma (color), in a format called YUV, and then shrink the chroma by a factor of 2 because the eye is on the whole less sensitive to fine chroma detail. This technique is called YUV420: for each 4 luma (Y) samples, you get 2 chroma (UV) samples on even lines and no chroma samples on odd lines. To avoid loss of chroma detail due to YUV420, you'll need to save the AVI as uncompressed RGB or YUV444 or using a lossless codec such as Huffyuv or ZMBV. Later, you can scale the AVI up by a factor of 2 and convert it to YUV420 afterward, as YUV420 won't distort video that has already been upscaled.
User avatar
rainwarrior
Posts: 8732
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: FCEUX AVI Recording Color Loss?

Post by rainwarrior »

I don't get the same result when I use "full frames (uncompressed)" in FCEUX. The resulting video comes out with an "RV24" FourCC, and perfectly matches the original output. Your picture looks like something that has lower resolution chroma (some sort of YUV?), and also there is a resizing of the image that confuses things more. Are you sure you selected "full frames (uncompressed)"? What version of FCEUX is this? (Maybe try 2.2.3?)

However, I don't normally use that option because you can get perfect lossless with a much smaller file.

I recommend using the Lagarith codec for lossless RGB:
https://lags.leetcode.net/codec.html

ZMBV also works pretty well for similar purposes (though lately it seems to crash when I use it with FCEUX), it comes with DOSBox:
https://www.dosbox.com/
toddtj
Posts: 2
Joined: Wed Jan 02, 2019 10:37 pm

Re: FCEUX AVI Recording Color Loss?

Post by toddtj »

Thanks for all the detailed replies, guys, I really appreciate it. I tried the Lagarith lossless codec and while it was certainly an improvement I still found the quality lower than what I get if I just record the replay using OBS studio so I'm going with that option (at least for now).

For anyone curious I'd like to answer some of the questions you posed, Rainwarrior:

I can't say for sure now that I was using "full frames (uncompressed)" but when I was doing it I *was* very careful to choose what I meant too; I'm reasonably sure I selected the correct one. I got some color inaccuracy when using the Lagarith codec, as well.

The resizing in the screenshot was because I grabbed and drug out the video in my media player when I was taking those screen shots just to make it an equal size (I play in X3 on FCEUX). This resizing may have caused some (or even all?) of the color inaccuracies.

The version of FCEUX I was using is 2.2.2.


At any rate, allowing FCEUX to do the resizing and recording the replay with OBS Studio returned an (effectively) perfect quality with a file 1/10th the size so I'm happy with that. My goal with learning how to use these features of the emulator was primarily just to avoid having to edit out savestates so this works wonderfully for my purposes.

Thank you all again.
Post Reply