nes_ntsc Change Log ------------------- nes_ntsc 0.2.2 -------------- - 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.