nes_ntsc Change Log
-------------------

nes_ntsc 0.2.3
--------------
- Added ability to use a custom RGB palette in place of the NES color
circuitry (with the option of being before color emphasis). When using
this palette with otherwise default settings, RGB colors appear on
screen exactly as in custom palette.

- Moved configuration options to nes_ntsc_config.h, making it easier to
manage

- Made color emphasis support configurable in nes_ntsc_config.h (off by
default). Previously, there were separate functions; now there is only
one set of functions and whether they support color emphasis is
configurable. If color emphasis support is OFF, then nes_ntsc_init() and
related behave as before, and the nes_ntsc_init_emph() functionality is
not available. If color emphasis support is ON, then nes_ntsc_init() and
related behave as nes_ntsc_init_emph() and related did before, and
nes_ntsc_init() and related functionality is not available (so you would
need to update any code that uses palette_out and expects only 64 colors
to be written; see the end of demo.c for example).

- Removed hue_warping for now, due to its obscurity

- Greatly clarified and improved demo to read any uncompressed BMP image
and write filtered image when done

- Improved gamma to be properly applied to each RGB channel, and changed
default to compensate for difference between PC monitor and TV gamma

- Improved contrast to be properly applied to each RGB channel rather
than just luma

- Improved floating point calculations in library to be more stable and
not need double precision, which was causing problems with the sharpness
control on Windows when the DirectX libraries changed the FPU to single
precision mode

- Eliminated slight artifacts still visible when using the RGB preset
with field merging off

- Added extern "C" to header, allowing use in C++ without having to
rename the source file

- Made internal changes to factor out code common from all my NTSC
filter libraries, greatly simplifying things for me


nes_ntsc 0.2.0
--------------
- Significantly improved NTSC signal processing to give clearer image
and better sharpness control

- Added parameters for gamma, resolution, color bleed, artifacts, and
color fringing

- Added presets for composite video, S-video, RGB, and monochrome

- Added NES_NTSC_OUT_WIDTH() and NES_NTSC_IN_WIDTH() for calculating
input/output widths

- Improved default blitter to support emphasis and allow specification
of RGB output bit depth

- Improved demo with more controls and interpolation and darkening of
scanlines rather than duplicating them

- Improved documentation

- Interface changes: nes_ntsc_blit() now takes *input* size rather than
output size. NES_NTSC_BEGIN_ROW now takes two additional pixels.

- Deprecated: nes_ntsc_x_in/out_width, NES_NTSC_RGBnn_OUT, and
NES_NTSC_RAW_OUT


nes_ntsc 0.1.7
--------------
- Fixed color emphasis to affect xD colors instead of incorrectly
leaving them as always gray

- Added ability to generate a 64- or 512-color RGB palette for use when
full NTSC emulation isn't desired

- Documented more accurate burst_phase handling and included three test
ROMs for verifying proper implementation

- Moved color emphasis support to new nes_ntsc_emph_t structure,
eliminating the ugly global NES_NTSC_DISABLE_EMPHASIS configuration
macro

- Extended demo to use optional Sony decoder matrix and write standard
192-byte NES .PAL file using current settings

- Improved documentation slightly

- Lowered maximum saturation to avoid overflow of blue when blue color
emphasis is enabled


nes_ntsc 0.1.6
--------------
- Cleaned up hue, decoder matrix, and hue warping to do transformations
in the proper order and direction


nes_ntsc 0.1.5
--------------
- Added support for color emphasis/tint bits (can be turned off to
reduce memory usage)

- Added ability to specify optional decoder matrix

- Improved documentation

- Added constants for overscan borders


nes_ntsc 0.1.0
--------------
- First official version

- Completely rewrote algorithm to do all NTSC signal processing at
initialization time, putting results into a table for use during
blitting. This increased performance by over 300% and allowed many
improvements in quality and image options.

- Eliminated multiple output formats and options. Now you can define a
custom blitter for this.

- Added sharpness and "hue warping" controls

- Added option to merge even and odd artifacts to reduce flicker when
host monitor's refresh rate doesn't match emulator's frame rate.

- Added built-in horizontal rescaling. I never realized the old one was
way too wide.
