Filter "Color Enhancer" for emulators
The goal is to create a filter that enhance C64 games colors using the patterns in the picture. The algorithm is simple and fast. It can work with any set of pixels.
On C64, there are only 16 colors available. So artists often used patterns to create intermediate colors.
Filter detects pattern for each colors and associates a blending coefficient to the pixel for that colors. Colors are then mixed. That gives a high number of possible colors. On examples I've noticed that the number of colors can be up to 2000 (instead of 16). Filter also add antialiasing effect.
Here is 3 pictures showing the filter effect :
9 Aug 2012
Back again on algorithm. It have been cleaned. Source code is now available.
Standalone tool (exe) that filter any TGA file : TOOL
Next step is to add the filter in a clean way into WinVice.
Demo picture 16 colors / 1174 colors
Demo picture 16 colors / 930 colors
Game boy "Paper Boy" : 4 colors / 69 colors
Spectrum "Captain blood" : 4 colors / 156 colors
23 Mar 2005
Download filter (in WinVice1.16) : HERE
The "Color Enhancer" filter replace the "Scalex2" filter. So to use the color filter, select "Double size" and "Scalex2".
Filter is a "work in progress" version. It runs nice, just few bugs left (points or lines appearing).
The zoomed tiger picture ... Original : 8 colors
Filtered : 893 Colors
19 Mar 2005
18 Mar 2005
The filter now runs with the WinVice 1.16 emulator. It is fast, on nearly all games, emulator runs at 100% speed.
I'll put a downloaded version here when it will cleaner (if you want a wip version, just mail me : christophe DOT kohler AT wanadoo DOT fr )
Filter now manage normal resolution pixels (they are not processed by filter).
Some more pictures :
16 Mar 2005
Here is a first rough version of the filter. It replaces patterns with new colors and smoother patterns (it does not remove the patterns). I also add an light anti-aliasing.
The picture are simply 2x zoomed. A next step will be to add a Scale2x filter (adapted to low resolution).
The filter only process low resolution pixels (160x200). I need to create a special case for all high res pixels (320x200).
Here are the test pictures :