Implement blargg ntsc filters
- this implements blargg's nes ntsc filters using core options - an optional height doubling is also added but disabled for performance reasons (might make that optional as a core option) - since PS2 and PSP have their own blitter branches, these platforms do not have the ntsc filters since i dont have the means to test on those systems. - compile with HAVE_NTSC=1 to have these options, HAVE_NTSC=0 disabled filter including core options - HAVE_NTSC=1 is set as default, other than PS2 and PSP as stated above.
This commit is contained in:
139
src/ntsc/changes.txt
Normal file
139
src/ntsc/changes.txt
Normal file
@@ -0,0 +1,139 @@
|
||||
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.
|
||||
Reference in New Issue
Block a user