--------------------------
--ORIGINAL DOS CHANGELOG--
--------------------------

v0.300 - Another big (and overdue) update

 * Prevented notes that are out of IT's range from writing the invalid data -
 prevents IT corruption, but probably still won't sound quite right.
 * Checked for invalid loop points supplied by an SPC file (wouldn't think
 you'd *need* to check... %#!@$).
 * Updated display screen with new pitch when sliding.
 * Fixed rare bug which allowed volumes with opposite signs in both channels
 to cancel each other out when in mono mode.
 * Corrected bug where if a voice was keyed off at the same time the sample
 ended, the voice would not get turned off.  Prevents the big long strings of
 note cut commands sometimes seen in the IT files.
 * Decided to scrap my sound drivers in favor of Allegro's.  This means both
 the Ensoniq SoundScape and ESS AudioDrive should now be supported in addition
 to all SoundBlaster types.  Note only the sound driver, not the mixer, has
 been replaced.
 * As a side effect of this, the onscreen display updates slower now, because
 Allegro requires much more sound data to be mixed and delivered at once.
 This is much more noticable with frequencies less than 22050 Hz.
 * Config file rewritten to reflect changes in sound driver.  Should still be
 compatible if you have any old frontends, but I'm not sure.
 * Corrected a bug in ADSR/GAIN which could cause the envelope height to wrap
 around infinitely. (Jurassic Park)
 * Implemented main volume registers
 * Changed to the newest version of SNEeSe SPC core.  TCALL (and therefore
 Terranigma) now works!  Other optimizations and fixes are also present.
 * Changed to SNEeSe's SPC timer code.  Timers are now cycle-exact rather than
 calculated once every update.
 * Reimplemented ADSR/GAIN in the style of the timer code, which means it is
 now cycle-exact.  Any song that changed envelope states while monitoring ENVX
 should now work much better.
 * Doubled output volume both in the mixer and in IT dumping.  This can
 potentially cause clipping distortion while mixing and maxed-out volumes in
 IT files if the volume ever gets too high, but it seems SNES games rarely
 use high volume which is why it sounded so quiet in the first place.
 * Fixed up the display for text mode.  Colors and layout should be identical
 to the graphics mode, especially if used with an 80x50 screen.  Use setgui=2
 in the config file to activate.
 * Implemented a command line switch equivalent to the setgui parameter in the
 config file. (-g x)
 * Fixed up the colors on the display and allowed the colors to be changed in
 the config file.
 * Did a little cleaning and optimization of the source code.

v0.200 - Lots new in this version

 * Allowed IT dumping with other than 200 rows/pattern (change in CFG file)
 * Fixed bug with volume and IT dumping (played too loud and would
   sometimes result in undesired volume column effects being applied)
 * Fixed segmentation fault bug when a negative volume applied to a channel
 * Fixed a bug with GAIN linear decrease mode
 * Fixed file loader bug when filename preceded with "..\" <Doh, stupid me>
 * Fixed file loader bug when loading files with extension .SP1, .SP2, etc. 
 * Increased number of SPC cycles to execute, while simultaneously
   implementing system to pause emulation if SPC idle.  Should prevent games
   like Starfox from slowing down and speeding up, and *might* even save some
   CPU power in other games
 * Got rid of the "SPC Sample" for samples without lengths. (Thanks to Crono)
 * Added .IT pattern compression. (Crono)
 * Reduced memory requirements when *NOT* logging a .IT file (Crono)
 * Now uses "specific" mixing method for each style of output. (Crono)
 * Old Soundblaster drivers tweaked, should sound better and can now go up to
   45454 Hz.  May introduce some incompatibility, let me know. (Crono)
 * Soundblaster Pro drivers tweaked, hopefully sound better. (Crono)  
 * Moved actual emulation stuff from main.c to emu.c.  main.c now only
   contains main() and other graphics-related stuff.
 * Added support for Ensoniq Soundscape, SoundFX and MediaFX cards (thanks to
   Kadar)
 * Added support for non-standard IRQs.  Let me know if you still have
   problems getting it to play on your SB-compatible sound card.
 * Found and eliminated something WinAmp wasn't liking about the way unlooped
   samples were saved.
 * Created 'lite' version!  Now capture SPC's to either IT or WAV files
   direct to disk at maximum speed rather than having to listen to them.
   Uses command line options to specify parameters.  (Replaced 'main.c' with
   'lite.c' and removed sound drivers in project file)
 * Added many of the same command line options to the full version.  If no
   options are specified it will default to what's in the OPENSPC.CFG file.
 * Added a preset time limit and current time indicator to both versions.
 * Replaced the SNEeSe SPC core with a newer version; had hoped this would fix
   some SPC bugs, but no luck there.  Oh well, hopefully its faster or
   something.
 * Broke down and did some SPC debugging myself; managed to get Prince of
   Persia, WWF, Doom, FF2 (Fabul Castle), SOM2 (Boss Theme), and Simpsons:
   Bart's Nightmare working a lot better.
   Details:     - all SBC to memory were subtracting in the wrong order
                - CMP YA, dp didn't complement the carry flag
                - membit addressing mode operand bits were mapped incorrectly
 * Corrected some bugs in GAIN Increase and Decrease modes and re-enabled
   ENVX reporting; made WWF, Doom, and Simpsons sound even better.
 * Added a reverse stereo option for those of you experiencing swapped sound
   channels with an SBPro compatible.

v0.100 - Initial release


-------------------
--LINUX CHANGELOG--
-------------------

Release notes for version 0.3.1:

(1) Helped Chris to find the mess with the self-modifying part of the core.
(2) Added a configure script in order to check easier the system and make an
    installation Makefile.
(3) Separated the SPC-emulator core from the player. Now you'll have the
    libopenspc.0.3.0 in your 'lib' directory and the OpenSPClite in your 'bin'
    directory. This can be useful for others SPC-players. Why not a Netscape
    plugin? :-P
(4) Added the support for ESounD and modified the way OpenSPClite will play
    sound: first try on ESD, next it will try linuxout and finally will fallback
    to wavdump
(5) Modified the @%#^! logarithmic system. The configure script will now look
    for the differents known names for the log2 function, and will fall back to
    __math.h. In a few days, I was obliged to change three times the name of the
    log2 function on my own system. Look at the readme for the explaination.
(6) Added the null-time limit. This is quite obvious, just try it. It is at 5s
    by default and will not works all the time. This will stop playback when
    5s of silence is played.

Release notes for version .300Linux:
*  Downloaded dos version .300 and re-implemented all my changes including
   stripping  _  symbols in .S files, #including <__math.h> in sound.c, and
   tons of stuff in lite.c
*  lite.c now features a shutdown function for orderly shutting down.
*  lite.c has two extra \r characters by popular demand :)
*  Patched spcmain.S to not use self-modifying code in SPC_READ_RAM_ROM

Release notes for version .201Linux:
*  Overlooked changing a few instances of 'dump' into 'itout'. This caused IT
   dumping to generate incomplete files.
*  WAV dumping no longer generates any temp files
*  Upgraded from PGCC 1.1.1 to 1.1.3, and threw in -ffast-math in
   compilation options.
*  Accidentally packed 'source.dos.txt' into the archive twice the first
   time around. Only need ONE copy of this :)
