- 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.
- This creates 2 new advance core options to minimize the number of core options shown
-- Advance System Options contains:
--- Overclock
--- RAM power on state
--- no-sprite limit
--- simultaneous opposing direction press
--- zapper crosshairs
-- Advance Sound Options contains:
--- Master volume
--- Sound quality
--- on/off for NES' 5-channel apu
- This also re-arranges the core options when advance options are shown, system options on top,
gfx/palette/geometry options next, input etc.
- ines.c - misc cleanups
- Fix Dendy not restored when changing overrides back to auto mode
- directly apply new scanlines and additional scanlines when changing overclock settings
- (readability) change variable name overlock_state to overclock_enabled
- Partial rewrite to clean up dipswitch struct to prevent potential crashes
- Fix problems on vs games without dipswitch to cause core to crash
- Create dipswitch struct based on new core options layout
* Wii: Fix uninitialized save state size causing load state problems
- Issue origially from Wii and possibly affects similar devices where
retroarch and the core are one program. The problem was that the
serialize size was not reset when you change game, causing the last
serialized size to be carried over to the next game loaded causing save
state issues due to change in size. Initializing this variable during
retro_init() seems enough for most of the games.
- In this same observation, also initialized some variables in a similar
way.
- also exluded a variable used for sound state that was added for smooth
sound after load state which causes similar loading issues as well.
- default sample rate has been lowered to 32K as well as to minimize
some stuttering for these devices, while maintaining 48K sample rate for
others.
- Some comments are added to modified section as necessary.
* Add workaround for save state issue in Wii with expansion audio
- Some mappers are not loading states as well. Seems to affect those
that are using expansion audio. some of these mappers(bandai, mmc5,
namco106), the state variables has to be expanded so that it will
load states fine with big endian while others (vrc6, vrc7 sunsoft), some
variables that were added for smoother audio during load state has been
removed.
- This does not guarantee though that other mappers might not have
similar incompatibilities after loading a state but so far, some of the
most common roms in each mapper has been tested to load fine.
* FDS: Expand state variables for big endian compatibility
* FDS: Change OSD label from Disk 0 to Disk 1... when switching disks
- Minor osd label change that now shows Disk 1 of (# of disks) instead
of just Disk 0 Side nth.
* Replace C++ comments into C comments
* Move INLINE out of Makefile.common, move to fceu-types.h
An INLINE define is still existing in Makefile.common for msvc (dont
have a way to to test that). Moved the rest into fceu-types.h using the
one already existing from emu2413.h.
* Increase maximum volume for apu channels
* Add option to enable/disable audio channels
Audio options are backports from FCEUX. Options are set as on/off toggle for each apu channel.
Compile with DEBUG=1 to see options.
* Add missing audio state vars, fix for hq audio when using runahead
* Additional checks for save ram (battery)
* Cleanup
* Update libretro header
Use NTSC colors option is incomplete due to missing int,hue adjustments. This can be added but there is no smooth way using core options or hotkey to selec ranges 1-256 for fine tuning
Using shaders instead can work better at this with more adjustments possible