[Console] Mednafen Update

Mednafen 0.7.2

        NES:  Added MMC1 registers to the NES debugger.

        Various cleanups(removing dead code and header declarations).

        Added settings "vblur.accum", enables motion blur accumulation mode, and "vblur.accum.amount".

        Added setting "vblur", when enabled, will (motion) blur adjacent video frames 50/50.

        Added WonderSwan emulation, based on Cygne, but greatly improved, and with a debugger.

        Modified the time base adjustment code used when sound is disabled to fix fast-forwarding when sound is disabled.

        "Fixed" a few instances of mostly harmless variable shadowing.

        Mednafen is now compiled with -Wshadow.

        Modified the save state preview rescaling code to properly(with interpolation instead of nearest-neighbor) rescale PCE games that use the
        512pixel-width mode, or in other words... the rescaling code will now work where (fb_width / state_preview_width) <= 2 whereas previously
        it only worked properly where (fb_width / state_preview_width) < 2.

        Errors saving save states are now propagated and reported.

        NGP:  Files with an extension of "npc" are now also treated as Neo Geo Pocket ROM images.

        PC-FX:  Added setting "pcfx.nospritelimit".

        Removed the memory dump and graphics memory dump functionality from the main debugger.  The new memory editor provides the same
        or higher level of functionality.

        Added a new memory editor to the debugger interface, accessible by pressing ALT + 3 in the debugger.

        PCE:  Added support for reduced-bit-depth background mode.

        If the ALSA driver code is unable to set stereo or mono sound, it will try mono or stereo sound instead, respectively.

        PCE:  PSG waveform RAM will now only be updated if the channel is turned off.

        glFinish() will no longer be called every frame in the OpenGL code, which should improve performance(if it causes problems, like
        tearing where there wasn't any before or decreased performance,        please file a bug report!).

        If the "glvsync" setting is 1(the default), and the environment variable "__GL_SYNC_TO_VBLANK" is not set at all(either 0 or any value),
        then it will be set to "1".  This has the effect of forcing vblank synchronization when running under Linux with
        NVidia's drivers.

        Fixed configure script option "--disable-jack".

        Lynx:  Screen rotation now works in non-OpenGL mode(SDL+framebuffer), sans scanlines support.

        Lynx:  Screen rotation now also rotates input sanely, as it did in 0.6.x and earlier versions.

        Fixed a fatal compilation error in the ALSA driver with ALSA versions < 1.0.9.

        Fixed a fatal compilation error on GCC < 3.4 in the PC-FX code.

        Added code to detect the maximum OpenGL texture size, and reworked the OSD code to use tiled drawing if a particular OSD surface is too
        large to fit in a single texture.  This is particularly relevant to users of old Voodoo cards.  Note that tiled drawing isn't supported for the
        main game framebuffer, so video cards with severe texture size limitations will still have problems with PC Engine and PC-FX games that use
        higher resolution modes.

        The help screen, debugger, and cheat search interface now use their own surfaces instead of the generic OSD surface.

        Fixed(hopefully) OSD-clearing in SDL blit mode("-vdriver 1").

        Removed the option "doublebuf".  It is kind of an archaic leftover from when Mednafen did only one blit
        per frame(and had the OSD written to the game's virtual framebuffer).  Double buffering must always be enabled,
        or else screen corruption may occur.  Also, as a note, double buffering does not imply synchronizing to vblank, though
        this does occur in some situations.
        ***NOTE:  Please check your scripts and frontends and remove any "-doublebuf" arguments! ***


        PC-FX:  Improved VDC chain/256-color mode emulation.

        PC-FX:  Altered FXVCE->VDC vsync emulation.

        PC-FX:  Revamped RAINBOW code, adding support for JPEG-like encoded content, thanks to David Michel's help.

        WonderSwan:  Fixed a bug in the debugger(HAH) regarding the display of HBTimerPeriod and VBTimerPeriod(they were erroneously listed as 1-byte
        variables, when they should've been listed as 2-byte variables, which caused the values to wrap around to the other side of the screen if they
        were >= 0x100).

        GBA:  Structurized free-floating various variables...there shouldn't be any regressions, aside from save state incompatibility, unless
        typos were made(if so, please tell me!).

        PC-FX:  Added support for scrolling/rotation in 64K color mode.

        PC-FX:  The KING data structure(including KRAM) is now dynamically allocated.

        GB, GBA:  The memory for the color map/filter is now dynamically allocated.

        PC-FX:  Changed the size of the emulated X tile coordinate register when drawing KING BG, affecting in-range calculation when in
        non-endless scroll mode.  Fixes missing eyes and mouths and other craziness in cutscenes in Chip Chan Kick.

        PC-FX:  Fixed playback of the last 4 samples of an ADPCM playback sequence, fixes crazy volume problems in "Team Innocent".

        PCE:  VDC chip data structures(including emulated VRAM) are now dynamically allocated.

        NES:  FDS and several mappers' larger data structures are now dynamically allocated.

        NES:  NSF write handler info structure is now dynamically allocated, which should reduce memory usage by 1 or 2 MiB(depending on the platform)
        on other games/files.

        PCE:  CDROM-related memory is now dynamically allocated, which should reduce Mednafen's memory usage for non PCE-CD games
        by at least 2.25MiB.

        PCE:  Added untested support for the Tsushin Booster's expansion RAM

        Replaced the hard-coded file extension tests when loading from a ZIP archive in MDFN_fopen() with code that tests extensions passed as
        a double-NULL-terminated(each entry is single-NULL-terminated) string to MDFN_fopen().

        Added QuickLZ to the codebase, and added the setting "srwcompressor" to specify which compressor to use for staterewinding,
        "minilzo" or "quicklz", with "minilzo" as the default.  QuickLZ can be considerably faster at compression than MiniLZO, though QuickLZ is written
        with x86 and x86_64 CPUs in mind, and performance will likely suffer on other platforms, and its compression ratio isn't as good
        as MiniLZO(which itself isn't that great!).

        PCE:  Added the settings "pce.adpcmvolume", "pce.cddavolume", and "pce.cdpsgvolume", for people who like music more than sound effects, or
        vice-versa for some weirdos! ;)

        PCE:  Burst mode will now be tested for when the VDC would enter the active display area.

        PCE:  Altered the relative volume of CDDA vs PSG vs ADPCM with CDROM games, based on tests done on a real system.

        PCE:  ADPCM no longer uses saturated addition for the current output value, instead just wrapping(like apparently occurs on a real system).

        PCE:  Scrapped the old SCSI CDROM code, it now uses code that was previously PC-FX only(and was abstracted to be used for both).
        The Game Express CDROM card image now works, including Game Express CD games(at least Hi-Leg Fantasy ;)).  John Madden Duo CD Football
        works.  Steam Hearts plays stage music now.  3x3 Eyes doesn't seem to have desynchronized audio anymore during cutscenes...

        Updated libmpcdec to 1.2.5(I think it was 1.2.2 previously...).

        PC-FX:  Added VRAM and FXVCE palette RAM to the debugger's memory editor.

        PCE,PC-FX:  Fixed CUE+BIN pregap handling, it was totally borked before.

        PC-FX:  Improved byte writes to KING I/O ports, fixes graphics problems in First Kiss Monogatari and Pia Carrot He Youkoso

        PC-FX:  Changed how reads/writes from/to KING registers 0x09 and 0x0A are handled.

        PC-FX:  All writes to 0x80000000-0x80000FFF are now translated to I/O port writes.

        PC-FX:  Reads from "unmapped" areas in the V810's memory address space will now return 0xFF(or 0xFFFF, or 0xFFFFFFFF).
        This fixes a lockup that could occur
        in Power Dolls FX...the game seems to be trying to use 4MiB of RAM when there's only 2MiB of RAM in a PC-FX!
        Also, while this is probably the correct value to return for unmapped areas < 16MiB, it's not correct for at least some higher addresses...
        more tests are called for, but we can't just dump the entire 4GiB address space...can we?

        PC-FX:  D4 of reads from KING register 0x05 will now be set if a SCSI CD interrupt is pending.

        PC-FX:  Fixed READ TOC SCSI command emulation.  The starting track field is no longer treated as BCD.  Silly me...  Fixes
        "Power Dolls FX" ADPCM sounds, and probably other games that have data tracks numbered 10 or above...

        PC-FX:  D0 of reads from the KING DMA status registers is now the only bit returned.

        PC-FX:  D0 of writes to the KING SCSI DMA length register is now ignored.

        PC-FX:  Started work on initial support for for KING's 1M KRAM chip mode...I need to run tests!

        PC-FX:  Reads from KING register/port 0x05 will now return the ATN and ACK SCSI status bits.

        PC-FX:  Reads from KING register/port 0x04 will now return the SCSI status bits.

        PC-FX:  Changed reads to KING registers/ports 0x01, 0x02, and 0x03 to return the last values written to those registers, rather
        than setting the bits returned corresponding to the current SCSI status bits.

        PC-FX:  Improved keyport emulation, fixes Can Can Bunny Extra DX title-screen "lockup".

        PC-FX:  Added support for negative KRAM increment values on read/write(king register 0xE).

        PC-FX:  Fixed the SCSI bits returned on port $600 reads:  D17 now returns SEL status, and D23 now returns RST status(instead of ATN).

        PCE:  Block memory transfer instructions are now emulated at 6 cycles per byte transfered(+extra if VDC is accessed) instead of 5, to
        match tests done by malducci.  This does break Wonder Momo, unfortunately...

        Moved the Q-subchannel simulation code to the general CD-ROM reading interfaces, and made PC Engine CD and PC-FX CD emulation both use it.
        Also, the code will now set the index data field to index 0 for pregap areas, but...this is only possible when using disc images, due
        to libcdio(or CD-ROM in general) limitations. :(
        Ideally, on a physical disc, we would read the Q subchannel data directly, but...I'm not sure that all drives can read and return this
        data, and using libcdio's direct MMC functions results in much much more latency(probably because it bypasses the OS's caching
        of CDROM data), which would require an extra CDROM reader thread, which does its own caching and prefetch, in Mednafen.  Maybe later!

        PC-FX:  Fixed cmpf.s emulation, fixes lockups in "Pachio Kun FX".

        PC-FX:  Added a tidy structure to contain SCSI command numbers, CDB lengths, and function pointers.

        PC-FX:  Added support for SCSI command 0x08(READ6), which "Mahjong Gokuu Tenjiku" uses.

        PC-FX:  Removed most of the 32-bit I/O and memory read/write functions, which are now handled by calling the 16-bit functions twice.

        PC-FX:  Modified the KING background rendering code to only draw to one buffer, instead of multiple buffers that are later mixed,
        to improve speed slightly.

        PC-FX:  The raster counter returned on reads from FX-VCE now returns correct(I hope...at least according to a simple test I did on a real PC-FX!)
        values in vblank.

        PC-FX:  SCDI CD interrupts on end of CD-DA track playback are now emulated.

        PC-FX:  SCSI CD "Test unit ready" command now expects to receive 6 data bytes total(1+5) instead of 1.
        I'm not sure if this is correct with the PC-FX, but it matches the SCSI specs, so I'll keep it this way until shown otherwise.

        PC-FX:  A17 of the effective KING BG CG and BAT addresses are now fixed to the CG and BAT offset settings, respectively, during rendering.

        PC-FX:  Added support for non-endless-scroll in BG0 rotation mode.  Fixes the title screen flipping effect for
        Last Imperial Prince.

        PC-FX:  When a VDC layer has the same VCE priority as a KING BG layer, the VDC layer will now be shown on top.  I don't know if this is correct...
        but it does fix a problem with disappearing sprites when leaving the airship in Miraculum.

        PC-FX:  Added KING BG0 scaling/rotation support, but only for 8bpp backgrounds(direct or indirect) in endless scroll mode for now...
        Fixes graphics in Miraculum(yay!) and Konpeki no Kantai.

        PC-FX:  Fixed direct CG mode width mask, corrects graphics bugs in "Boundary Gate" and others.

        PC-FX:  Added partial microprogram emulation, fixes junk graphics in Megami Paradise II.

        PC-FX:  Combined the different KING background non-endless/endless and direct/indirect rendering codepaths.  This will make it
        a bit slower, but much more maintainable and...changeable!

        SexyAL:  Added support for sound cards that don't support interleaved stereo samples...probably.

        Changed the font glyph cache to use an array of pointers instead of 2-dimensional array.  This reduces resident memory
        usage considerably, even on systems with 64-bit pointers.

        Readded the old 6x13 and 12x13 fonts for future usage in the debugger.

        Fixed the documentation to list the controls for configuring virtual devices as ALT+SHIFT+1, ALT+SHIFT+2, etc. instead of ALT+1.

        PC-FX:  Made fairly invasive minor optimizations/refactoring to the cellophane code...
        I *have* tested it, and hopefully it won't break anything that worked before!

        PC-FX:  Fixed a clipping bug in KING BG non-endless scrolling mode in regards to X scroll wrapping.  Fixes the disappearing boss problem in
        Stage 2 of Tyoushin Heiki Zeroigar!

        PCE:  The soft reset function(F10 key by default) no longer soft-resets the PCE, as such a button doesn't exist on a real unit, and
        could cause problems with some games, so it causes a hard reset(the same as the F11 key) now.

        PCE:  Added PSG registers to the debugger.

        Enclosed many strings in _() or gettext_noop() for translation purposes.

        Altered po/Makefile.in.in to pass "-N" to msgmerge, to disable fuzzy string matching.  Fuzzy strings are braindead I say!

        Reworked MDFN_malloc(), it now takes a purpose, and on error, will print out the number of bytes attempted to be allocated,
        the purpose of the allocation, and the file and line number in which the allocation was attempted(through macro magic!).

        PC-FX:  Changed the 7.16MHz dot-clock emulation mode to use an internal layer 1024-pixels wide(the least-common multiple of the
        2 different screen resolutions that are mixed by the video chip), rather than having 2 different
        layers that are merged by the video code(which causes problems on edges).  This new method is much slower, unfortunately...
        The overlay code that supported this in the driver code and the interfaces have also been removed, as it is not used, and will not be used.
        ADDITIONALLY, a setting "pcfx.high_dotclock_width" has been added.  The default is, of course, 1024, but other accepted values
        are 341 and 256, though I REALLY don't recommend using 256, as it will cause dropped pixels, whereas 341 will only cause somewhat
        distorted pixels horizontally.  The advantage of using 341 over the default of 1024 is SPEED, and bilinear interpolation(if enabled) will
        work much better as well.

        PC-FX:  Fixed major problems when using more than one breakpoint of a type(read, write, etc.); it also occurred with the PCE debugger,
        but only with Aux breakpoints.

        PC-FX:  Fixed the VDC state restore code to properly recache all the tiles, instead of half of them!

        GB, GBA:  Fixed a few duplicate and misnamed variables in the save state structures.

        PCE, PC-FX:  Fixed a misnamed variable in the VDC save state structures.

        Lynx:  Removed a duplicate variable in the CPU save state structure.

        PC-FX:  Save states are now named so that they can be shared among CDs in recognized multi-disc sets(previously only .sav games were).
        This is intended to emulate "hot-swapping" as far as the game is concerned(though you will need to exit the emulator and load the second
        disc, so it isn't truly hot-swap ;)).
        When a game requests you to change the disc, the procedure is:
                Eject virtual disc(F8 key).
                Save state.
                Exit emulator.
                Load emulator with second CD.
                Load state.
                Wait for the game to load it. :b

        PC-FX:  Implemented virtual CD insert/eject, via the F8 key.

        PC-FX:  Added dummy handling of SCSI command 0x01(rezero unit), Doukyusei II no longer aborts the emulator.

        PC-FX:  Fixed bitstring instructions to fetch from the proper source address, fixes major graphics corruption bugs in "Anime Freak FX Vol. 4"
        and probably some other games as well.

        PC-FX:  Fixed RAINBOW decoding to not begin block decoding until a 0xFF is discovered in the bytestream.  Fixes some graphical problems
        in "Ojousama Sousama".

        PC-FX:  Fixed the CD-DA playback speed calculation to match with tests I performed on my own PC-FX with a pure sine wave(interestingly,
        there was some really weird frequency aliasing at +10% playback speed on a real PC-FX...).

        WonderSwan:  Refactored the SRAM and external EEPROM code, and added support for larger SRAM sizes(Dicing Knight works now!).

        PCE:  Extended the Sherlock Holmes 1 hack to Sherlock Holmes 2 as well.

        The address displayed in the "Cursor position" field in the memory viewer/debugger is now masked properly.

        PC-FX:  Fixed the ADPCM lowpass filter rolloff frequency calculation(forgot to divide by 2!).

        PC-FX:  Changed priority handling of KING background for priorities 5-7, though I don't know if the new way is correct...  fixes
                a graphical bug in "Power Dolls FX".

        PC-FX:  The ADPCM volume control registers are now emulated as logarithmic, instead of linear.

        PC-FX:  Modified 256-color VDC sprite and bg palette index calculation, to fix color problems in the 3/4 view of Ojousama Sousamou.

        PC-FX:  Altered ADPCM address emulation so that the "active" play address is 17 bits instead of 18 bits, fixes problems in several
                games(Anime Freak FX Vol. 1, Tenchi Muyo! FX), hopefully it doesn't cause any new ones. ;)

        PC-FX:        Added support for KING bitstring writes and reads, and changed maximum BGn screen dimension setting from 0x9 to 0xA.  "Boundary Gate" works
                much much better now due to these changes.

                NULL-terminated the debugger's list of MMC1 registers, which was apparently forgotten earlier.  Oops.

                Added MMC3 registers to the debugger.

                Added the current scanline(read-only) to the debugger's list of registers.


        PC-FX:  Added more registers/SetRegister() support to the debugger.

        Trying to edit a register in a debugger register groups with a NULL SetRegister method will no longer crash Mednafen.

        NES:  Fixed a misnamed save state variable in the FME-7 code.

        Mednafen will now be compiled with "-fno-strict-overflow" if the C compiler supports that option, for the upcoming gcc 4.2 release,
        as I'm not sure this optimization is safe with Mednafen's code(it may be, but better safe than somewhat sorry!).

        PCE CD, PC-FX:  Added partial support for cdrdao "TOC" files, including support for rips with subchannel data, but it must be in the "RW_RAW"
        format.  Ripped CD+G CDs can be played back this way in the PCE CD and PC-FX BIOS CD players.

Mednafen 0.8.2-beta

Major changes:

Fixed audio track reading on big-endian systems for PCE CD and PC-FX emulation.
Added preliminary Sega Master System and Game Gear emulation based off of SMS Plus.
Added setting "srwframes", which controls the number of save states to keep when state rewinding is enabled.
Added blargg's experimental blz compressor, for use with state rewinding(change the setting "srwcompressor" to use it).

Some sound and CPU interrupt/halt emulation bug fixes.

Fixed a bug that caused an emulator crash if Game Genie-style cheats were enabled at the same time as authentic Game Genie emulation was enabled.

Fixed several debugger bugs, files with the extension "sgx" will now automatically enable SuperGrafx emulation.

Added emulation of the PC-FX mouse.
Added emulation of external backup memory(for more save-game slots in some games).
Implemented back-cellophane support, which fixes fadeouts and fadeins in several games.
Fixed hindmost color emulation, fixing the background color in the BIOS' backup memory manager.
Slightly optimized RAINBOW decoding
Improved inter-chip timing to fix lockup issues in Anime Freak FX Vol. 4. However, this causes some minor single-line graphics glitches in some games, due to them using CPU instruction-timing-sensitive raster effects. Fixing them will likely require V810 cache emulation and accurate emulation of bus wait states, which is...complicated, to say the least.  
Fixed a bug that caused missing background graphics in Tonari no Princess Rolfee.
Implemented scaling+rotation support for more KING background modes, fixes the background in the last stage of Zenki.
The RAINBOW transfer block count register is now emulated as being 5 bits instead of 16, which fixes a bug that turns the screen blue after fighting the snake monster.
Debugger bug-fixes and improvements.

Fixed a buffer overflow in the sprite drawing code.

http://forum.fobby.net/index.php ... 00&start=0&

PC-FX:  Some RAINBOW registers weren't being reset on emulated system reset.  Fixed.

PC-FX:  Added dummy support for the external bus reset register.

PC-FX:  Altered the way garbage data is handled by RAINBOW to fix a graphics bug in the Tengai Makyu options screen.

PC-FX:  Reworked a large part of the KING SCSI emulation code, and parts of the CDROM device emulation code.  Previously non-working-at-all games "Battle Heat" and "Tengai Makyu" work now.
The non-anime game mode in "Tyoushin Heiki Zeroigar" works now.  "Der Langrisser FX" no longer locks up if you skip the intro movie.
"Yuna FX" no longer locks up in one of the intro movies.
These changes will cause some save state incompatibilities with previous versions of Mednafen.  
(Some of the SCSI changes also affect the PCE CDROM emulation, which may also result in save-state incompatibility issues, particularly if the save state occurred during a CDROM data transfer operation.)

PC-FX:  Added setting "pcfx.cdspeed".  If you want to change this, read the documentation first!

Cleaned up the video deinitialization code slightly, and fixed a few bugs in the OpenGL deinitialization code.

PC-FX:  Reads from the dummy KING register 0x07 will now return 0xFF, per the devkit docs.

PC-FX:  Reads from KING register 0x0B will now return the "DMA end" bit in D0 set correctly(at least, according to the developer docs).

Fixed a compilation error after running configure with --disable-nes.

PC-FX:  Reads from I/O port 0xFC0 will *now* return the current timer counter value.  The switch statement mask value was wrong...

Removed the warning in the documentation about error correction of raw data track rips, as Mednafen will now perform simple correction using the EDC and L-EC data(since 0.8.4-rc3).  This could conceivably cause problems with naive hacks/translations/patches that neglect to update the EDC and L-EC data, so it can be disabled by setting the setting "cdrom.lec_eval" to 0.
L-EC correction is based off code from dvdisaster(http://dvdisaster.net/).

PCE, PC-FX:  Removed some debug printf()'s that were left in 0.8.4-rc3 by mistake.


        Fixed a crashing bug when loading an uncompressed file and using the automatic IPS-patching feature when mmap() is available.

        PCE, PC-FX:  All SCSI CDROM commands are now logged in the debugger's log viewer(when logging is enabled, of course).

        Added group support to the debugger's log viewer.

        PC-FX:  Renamed the type of BIOS ROM font calls in the debugger's log viewer from "BIOS" to "ROMFONT".

        PC-FX:  BIOS filesystem syscall(for backup memory access) calls are now logged in the debugger's log viewer.

        PC-FX:  Added internal backup memory and external backup memory address spaces to the debugger's memory editor.

        PC-FX:  In the 263-line mode, line 262 is now reported as being during blanking time(as on a real PC-FX).  Fixes the annoying transparency layer
        flickering and other weird graphical glitches in Der Langrisser FX.

        Added setting "filesys.disablesavegz", to disable gzip compression when saving save states and backup memory.
        (In the case of backup memory, disabling gzip compression isn't supported for GB yet)


        PCE:  Removed a statement, that was used for debugging, that broke PC Engine multiplayer support in 0.8.5. (I'm not sure how it got there in the first place...).

Mednafen 0.8.D Released
This will be the final release in the 0.8.x branch, unless 0.8.D introduces any major bug(s) that do not have workaround(s).

Changes since the last stable release, 0.8.C:

SMS: Some state that wasn't being saved in save states now is, which should fix netplay desynch problems with SMS/GG games.

Fixed a couple of remotely-exploitable(if connected to a malicious server) stack manipulation bugs in the network play code.

Fixed an incorrect object creation bug in pce/adpcm.cpp.

NES: Added a missing CPU emulator variable to save states.

PCE: Added a missing CPU emulator variable to save states.

Lynx: Fixed a bug in the cart loader code that would cause a crash if the ROM bank size was larger than the actual data available in the file(as is the case with some homebrew programs). Thanks to "Wookie" for the patch.

Build files were regenerated using autoconf 2.64 and aclocal 1.11(previously, they were generated with autoconf 2.61 and aclocal 1.10.1).

Fixed a crashing problem when entering an invalid menu choice("0") in the cheat interface. Thanks to tsenart for reporting the bug.

GB: The GameBoy module now respects the "filesys.disablesavegz" setting in respect to saved battery-backed RAM.

Added support for "lurkers" on the network play server. Previous versions of Mednafen don't lack support for this per se, but there would be cosmetic issues with status messages printed to the internal console.

SexyAL: Fixed a bug affecting the return value from RawCanWrite() in the ALSA driver. The returned value was typically too small by a factor of 4. The effects of this bug included potential long periods of garbled sound during netplay.

Fixed the return value from RawCanWrite() in the JACK driver. It was being clamped to a value that was too small by a factor of 4; however, the clamp value was already excessively large in a way that this bug would should have only been triggered if the "soundbufsize" setting was excessively large. The effects of this bug would be similar to the ALSA RawCanWrite() bug.

The ALSA and OSS drivers will now try to set audio output to 2 channels if the source data only has 1 channel, and 16-bit signed if the source data is 8-bit(automatic conversion is done). This is done to allow for lower period/fragment sizes, as, in ALSA's internals at least, the minimum period sizes are expressed in bytes, not sound frames.

The ALSA and OSS drivers will now try to set lower period/fragment sizes than previous versions of Mednafen did. With default settings, for ALSA, the new period/fragment size is 50% of what it was before, and for OSS, 25%. Also, there's a new setting to override the SexyAL's driver's preferred period/fragment sizes, named "sound.period_time"(default value of 0: no override). The period/fragment size is expressed in microseconds. If the new, lower fragment sizes cause problems, the setting can be changed to "2666" to approximate the fragment size selection in previous versions of Mednafen when using ALSA output, and "5333" when using OSS output.

Added a workaround to the OSS driver for a bug in ALSA(and hence, ALSA's in-kernel OSS emulation) that could cause the emulator to run far too fast for a short period of time if a buffer underflow occurred.

The ALSA's driver's RawCanWrite() method now(finally) uses snd_pcm_avail_update() instead of snd_pcm_delay(). This should improve performance and frameskipping behavior when the ALSA output is not routed directly to a physical device, such as the case with PulseAudio(though PulseAudio is still not recommended :b).