- do overscan cropping after the ntsc frame is generated. this allows
removing left and right screen artifacts when using horizontal crop like
what you would see happen in TV when adjusting horizontal size (HSIZE).
- add core option that implements NTSC scanline effects. This requires
framebuffer to double the height, so a define is added (NTSC_SCANLINES at
the top of libretro.c) to disable this on some low-memory platforms or just disable NTSC filters altogether.
- some minor cleanups
- this implementation is based on a more accurate colour emphasis from fceux.
- The raw palette + nes decoder shader was kinda incomplete since the implementation was based on
a per-frame basis which means that the emphasis bits were read once and applied to the whole frame. This
means that some games that uses a per pixel or per scanline emphasis would not appear correct. The more
accurate implementation reads emphasis bits from bits 5-7 of PPU[1] and saves this info in a separate frame.
- The same implementation is also used to fix emphasis for the ntsc filter.
This is an issue i found when implementing the NTSC filters. Currently when using palette presets,
no clour emphasis is seen on games that supports it. This is cause because the palette table is
fille with the same 64*3 colour info.
Using custom palette (palette file) and default both creates the emphasis as expected. So internally,
fceumm is able to support such feature.
The fix is to generate the base palette (64 * 3 with each triplet representing rgb colour), and then
send this internally using FCEUI_SetPaletteArray() to fill the colour table with emphasis instead.
- 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.