summaryrefslogtreecommitdiff
path: root/sid/sidplay-libs-2.1.0/libsidplay/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'sid/sidplay-libs-2.1.0/libsidplay/ChangeLog')
-rw-r--r--sid/sidplay-libs-2.1.0/libsidplay/ChangeLog493
1 files changed, 493 insertions, 0 deletions
diff --git a/sid/sidplay-libs-2.1.0/libsidplay/ChangeLog b/sid/sidplay-libs-2.1.0/libsidplay/ChangeLog
new file mode 100644
index 00000000..7a11e01a
--- /dev/null
+++ b/sid/sidplay-libs-2.1.0/libsidplay/ChangeLog
@@ -0,0 +1,493 @@
+Release Notes 2.1.0:
+
+Added:
+
+Introduction of sidbuilder classes. These classes can be used to create new sid
+emulations for libsidplay2. The front end player owns these emulations and passes
+them into libsidplay2 at runtime. Such emulations could be a revised SID emulation,
+HardSID driver, Sidstation driver, etc... This feature will be used by sidplay/w
+and sidplay2 in future.
+
+Implemetation of the component library classes. These classes provide a standard
+way to create new components (e.g. VIC, CPU, etc). Note that the sidbuilder
+classes use these. The current implementation is a half measure which sees
+all components being seperated fully from the running environment. However,
+due to the current design the components are static. A second version of these
+classes will be released to allow dynamic allocation and linkage. This actually
+means this project becomes a generic IC emulation test bed which are effectively
+added and wired together at runtime. Given the right component emulations, this
+project could be a C64, BBC, etc.
+
+Support for exporting credits.
+
+New event scheduler that is used by all components. The significantly improves
+the speed of the emulation.
+
+Start time and fastforward support.
+
+Support for the PSID 2 proposal B (PSID 2NG). This allows relocation information
+to be added to the tune such that it can be played on a real C64 (based emulation).
+This is necessary as additional house keeping/contol code must be placed safely
+in C64 ram without it running the risk of being overwritten by the song.
+
+
+Changes:
+
+Code now builds under GCC3.
+
+Supporting and config requirements of the new builder classes required modification
+to libsidplay2's configuration interface.
+
+Sidplay1 specific code moved to seperate components sid6510 and sid6526. This
+provides the simple cut down versions of the CIA (6526) and a CPU which forgives
+badly written tune code (6510). These components are only used in the old
+sidplay/playsid modes.
+
+Direct ReSID support removed. Now supported through extenal sidbuilder class.
+
+Floating point code in critical code parts have been converted to fixed point.
+
+Relocatable C64 assembly driver added using PSID 2NG.
+
+Support for random tunes in Real C64 mode.
+
+
+Fixes:
+
+The library has sufficient emulation to run PRGs. As such I managed to run the
+C64 Emulator Testsuite 2.15 by Wolfram Roemhild.
+
+All CPU instructions (including extended ones) now run correctly with the correct
+number of cycles. Results from other C64 environment tests are still being
+worked on (nothing serious).
+
+
+
+Release Notes 2.0.7-5:
+
+Performance fix (corrected player.bin).
+
+
+Release Notes 2.0.7-4:
+
+GCC 2.96 fixes.
+
+
+Release Notes 2.0.7-3:
+
+Linux RPM fixes
+
+Changes:
+
+Fixed SidTune ('/' directory seperators are allowed on Microsoft platforms with
+programs that use standard c/c++ libraries).
+
+Songs with there own interrupt handlers are no longer assumed to initialise
+the VIC should the require it. Songs that do install there own handlers MUST
+acknowledge the interrupt source else the song will play too fast.
+
+
+Release Notes 2.0.7-2:
+
+Linux RPM fixes
+
+
+Release Notes 2.0.7:
+
+This version sees a fully compliant C64 cycle based emulation. The emulation
+only covers those parts which are necessary. Things like CIA and VIC are not
+complete because it's not deemed usefull to play the tunes better. The
+VIC emulation can still be improved a little to support bad cycles and perhaps
+the light pen interrupt. The CIA emulation is also incomplete but now
+supports both Timer A and B and all timer modes except those which use
+external signals. The CIA emulation will probably be fully completed in a
+near future release since I have the code pretty much written. It's not
+been added because the rest of the player requires a design concept change to
+use the C++ "observer model".
+
+Please note this version has a totally different concept design to the last.
+The previous version is the last "SIDPlay Compatible" version. Since this
+is the case SIDPlay specific songs which are possibly bad may no longer
+work. If such songs are found please report them as they will be fixed.
+
+Lastly this version can run original tunes and even prgs taken from a real C64
+without any modifications. In most cases it's just a simple case of locating
+the tunes INIT address, making a sid info header and then rename the *.prg to
+*.dat. SIDPlay2 can then run the tune, it's even possible to create a PSID
+all in one file using a conversion tool. One thing to note is that these
+real tunes will mostly not play (correctly) in other SID Players apart from
+VSID (Vice SIDPlayer). However, VICE is not pretending to be fully or even
+mostly SIDPlay compatible. It therefore wont run as many tunes or play
+extended samples like those found all the HSVC sample tunes.
+
+For those wishing to do the above you must set the play address to 0xffff.
+This is an illegal address like 0 and behaves similiar, but it tells the
+player to turn off extended sample support, ignore the CIA/VIC speed flag
+and enable NMI support.
+
+NOTE FOR DEVELOPERS:
+
+You will require libtool 1.3b or greater to be able to link against
+the libsidplay2 libraries. Versions of libtool prior to this
+(including 1.3.5) DO NOT import library dependency information from the
+installed *.la files.
+
+Libsidplay2 uses a modified version of ReSID. ReSID patches can be located
+at:
+
+ftp://sidplay2.sourceforge.net/pub/sidplay2/resid
+
+
+Changes:
+
+Partial VIC emulation which models both the NTSC and PAL chips. Full raster
+interrupts supported and therefore VIC multispeed tunes.
+
+Partial CIA emulation with full interrupt capability for Timer A and B. NMI
+interrupts are also supported for "real C64 samples".
+
+MOS6510s interrupts are now used. Interrupt/BRK now fixed to always run the
+first instruction in the interrupt handler. This means the an IRQ cannot
+interrupt an NMI should the first instruction in the handler be SEI.
+
+SID6510. SID specialisation of the processor now improved and those bits from
+the player enviroment which should have been here now are. This module
+provides most of the SIDPlay1 compatibility, but not everything can now be
+supported as in version 2.0.6 due to other environment changes.
+
+XSID now is pretty much fixed for HardSID usage. It correctly determines
+legal SID volume offsets and traps volume changes to the SID made by the
+C64 program. This prevents song clicks, quiet main voices and even allows
+the main voices to change there volume correctly whilst samples are playing.
+The user now has the ability to select whether they would like samples through
+SID or samples on there own idependent channel. The default is samples
+through SID. Note that real Samples cannot be taken off the SID.
+
+Due to the Interrupt support the C64 now allows code execution overlaping.
+E.g. the play routine might trigger before the INIT has completed and multiple
+play calls may overlap each other. This also happens on a real C64 and as to
+whether it works depends on if the ripped code still has the capability to
+deal with it. Since it seems that some tune DO NOT do this properly, nor do
+they acknowledge interrupts correctly, C64 code has been provided by Dag Lem
+to deal with this issue. This code is the PSIDDRV from the Vice project.
+The version available here has been modified by me to support almost
+all tunes and deals with some of the SIDPlay compatibility issues better.
+
+
+Problems:
+
+There are known problems with this version, but the benefits are far greater.
+
+Some tunes currently will just not play. These are tunes which install code
+across the interrupt handlers and therefore don't behave correctly when an
+interrupt occurs. These tunes are probably missing things which were setup
+by the original game code. The methods used by SIDPlay1 and 2 to determine
+the initial bank register state does not accomadate this fact. SIDPlay1
+like release 2.0.6 does not have this problem because interrupts are not
+emulated.
+
+There are performance issues with this version and specifications have increased
+due to the extra/modified component emulations :(. I hope to fix/improve on
+this in a next release.
+
+Either the NMI or VIC interrupts seem to have jitter on them. For tunes in
+HVSC this dosen't occur. For some real sample tunes the music can sound a little
+distorted. This should be fixed for the next release.
+
+The PSIDDRV has to sit in RAM and therefore can be trashed by the tune. To stop
+this the zero page has been reserved to store the PSIDDRV and some special non
+standard C64 bankswitching added to flip in and out the driver. This means that
+the tune cannot put any code on the zero page but it can store data on this page.
+Since benefits of using this page are only available when storing data on it there
+is no tune currently in HSVC that causes a problem. It is possible to put this
+driver into roms, some code must still go in RAM do deal the calls to play/init
+routines that may lie under the ROMS. However, this would break some of the older
+modes e.g. playsid mode does not have ROMS, sidplay1 combatibilty modes prevent
+code execution in ROMS.
+
+
+
+Changes since 2.0.6 (Note this version is intended mainly
+for developers):
+
+(ms) Fixed fake6526.cpp to unlock timer upon reset. When playing
+sub-tunes and switching from CIA to VBI speed and vice versa, the
+speed is now correct.
+
+(ms) Fixed clock to [re]start at 0:00 upon [song] initialization.
+
+(ms) Converted complete source tree from kdevelop to native Automake
+and made it build a library and the console player. Developers are
+advised to configure the package with --disable-shared, so that they
+don't need to install a shared library and/or set the
+LD_LIBRARY_PATH, respectively.
+
+
+Changes:
+
+Resid now linked against library and not against application. This
+means that a application linking to the library does not need to know it's
+using resid.
+
+External interface changed to hopefully allow better compatibilty.
+
+
+Problems:
+
+For OSS left and right channels are reversed. According to OSS docs,
+left channel in writing before right which is the order it's currently
+being done (oss driver bug). Both Windows drivers are correct.
+
+
+Bug Fixes:
+
+Fixed bug when reading tunes from stdin.
+
+Added new loadSong function to allow selecting another subsong without
+reloading the file. This is important when reading files from stdin.
+
+External interface changed to hopefully allow better compatibilty.
+
+Fixed IO bug whereby a write to the IO registers could not be read back.
+
+Keyboard input is now read from stderr. This allows the keyboard to be
+read whilst a file is passed using stdin.
+
+Stderr redefined as console output instead of stdout. This allows you to
+redirect or pipe the output whilist allowing keyboard events to be processed
+correctly
+
+Changin any of the sid settings effects both sids.
+
+The library can now be configured at run time by putting the library into paused
+mode. If you are using a multiplte threads to drive the library, be carefull
+as it's not thread safe. Use mutually exclusive semaphores to protect the library.
+
+Use of extended keys quiting the program.
+
+
+Added:
+
+Null sound driver to allow faster songlength detection (Code for songlength
+detection not provided in this library) and eventual hardsid support.
+
+Cursor keys now work on Linux and Windows. But there is a bug in Windows 98
+first Edition which prevents them from working properly. This information
+has been admitted by Microsoft the the only proposed solution is to upgrade to
+Win 98 Second Edition. (For the time being you can use the cursor keys on
+the numpad).
+
+Added a mileage count to help determine the sid usuage since the begining of time.
+
+Added ability to use unforced PAL or NTSC.
+
+For -s, mono songs now get converted to stereo by spliting the
+channels between multiple sids.
+
+
+Removed:
+
+Timer changed test. This can easily be worked out another way.
+
+
+
+Release Notes 2.0.6:
+
+This version mainly sees bug fixes and finally gets both the Linux and
+Windows versions to exactly the same code state.
+
+Bug Fixes:
+
+Tunes which didn't play.
+DirectX fixes.
+Timers fixed for both directx and mmsystem drivers and will therefore
+never cache ahead by more than 0.5 secs. This still needs doing under
+Linux to prevent the timers getting 3 seconds ahead.
+And more...
+
+
+Added:
+
+Most of the other features of the expermental version now classed as 2.0.5
+apart from fastforward/rewind and filter redefinition.
+Ability to skip to the prev/next subtune using the '<' and '>' keys.
+And more...
+
+
+Features for next release:
+
+Ansi console support delayed till next release.
+Songlength database support delayed.
+Filter redefinition delayed.
+Fastforward/rewind, delayed indefinately untill feedback is provided
+on how good/bad it is (please any feedback at all!).
+Player configuration file.
+
+
+
+Release Notes 2.0.4-2:
+
+Bug fixes to sid mixer.
+Program termination now quicker from ^C.
+New xSID code included for testing.
+New man page added.
+Thanks to those concerened for finding/fixing the bugs in this release.
+
+To follow shortly:
+Again 2.0.5 will follow, with the last of the features from my unofficial
+experimental version (found on the sidplay2 ftp site). Be warned that there
+are now bug fixes in the main version which the experimental one does not
+contain!
+
+From now on experimental versions will be released as patches on the
+main release versions in CVS until they are determined to be stable.
+
+
+
+Release Notes 2.0.4:
+
+Temporary release to try and bring code upto date. A 2.0.5 will follow shortly
+to achieve all that implemented in experimental release 2.0.4pre5 (This is available
+at ftp://sidplay2.sourceforge.net/pub/sidplay2)
+
+Lots of new options added, bug fixes for Solaris drivers, 16 bit support... Other
+additions will fall into 2.0.5 once they have stabalised.
+
+
+
+CHANGES since 2.0.2:
+
+Added:
+
+* Timer
+
+* Support for credits
+
+* Option -fd, overrides values returned by sidtune and forces dual sid support
+ with the second sid being mapped at 0xd500. Use this to support stereo sids
+ (not stereo mus) until the format is changed to support them properly.
+
+* Windows Drivers. Code now now be built as a Win32 console application.
+ The include paths need to be changed to Visual C++ so all the headers can
+ be seen. Paths need are PATH/libsidplay-<ver>/ and PATH/libsidplay-<ver>/win.
+
+* Sparc Driver (This driver hasn't been tested or compiled)
+
+* Support for playing of playsid smaples through reSID
+
+
+Changed:
+
+* Changing the environment whilist the song is playing nolonger stops the song.
+ Environment changes are now delayed until a new song is loaded
+
+* environment class renamed to SidEnvironment to avoid some naming issues with
+ Visual C++.
+
+* xSID minior fixes to make code compile on Visual C++.
+
+* Structure of audio drivers for better auto detection and Win32 support.
+
+* Sidplayer structure now implements Cheshire Cat techniques to hide private members
+ This means that all header files required by private members no longer need to be
+ installed
+
+* Added workaround in CPU code for bug found in Visual C++ 5.
+
+* Finally corrected all playsid digi modes using information provided bu
+ Michael Schwendt from the original source of Game Over.
+
+* Removed nasty code hacks for Windows.
+
+
+Fixed:
+
+* xSID bug preventing it from not playing some samples.
+
+* myTune now initialised to NULL (reported by Jarno)
+
+* Placing of an invalid switch on an otherwise legal line did not throw an error.
+
+* Use of bitfields which breaks portability of CPU emulation
+
+* Unions on Big Endian machines where all variables are varying sizes
+
+
+Issues:
+
+* Timer is actually what has been decoded rather than what has been
+ played. This is due to the soundcard drivers buffer the samples.
+ Anyway, it's better than nothing.
+
+
+
+CHANGES since 2.0.1:
+
+Added:
+
+* Time count
+
+* xsidplays audio drivers (well linux one)
+
+* Command line options
+
+* Volume controls for left and right
+
+* 8 bit mixer
+
+
+Changed:
+
+* Renamed the project to libsidplay (eventually this code will be a library).
+ main.cpp and the audio directory will form the basis of a new project called
+ sidplay-2.X.X.
+
+* Sidtune. Only need one player emulation for stereo MUS files.
+
+* WavFile now converted to be another driver. (Makes code have better re-use)
+
+* New are now have error checking
+
+* Configure files now work
+
+* Prevented the loadSong function initialising the player twice.
+
+
+
+CHANGES since 2.0.0:
+
+Added:
+
+* Extended sid support (xSID, written by myself from scratch). xSIDs interface is designed to look like reSID and can easily be used to help developers of other players.
+
+* Support for all libsidplay-1.X.X environment modes.
+
+* Stereo SID & MUS file support.
+
+* Sid2Wav support (thanks to Michael Schwendt).
+
+
+Fixed:
+
+* CPU using wrong address for reset vector.
+
+* The use of statics in CPU a member function (Required to play stereo MUS files).
+
+
+Changed:
+
+* All data types now use _sidt namespace.
+
+* Better handling of reSID clock calls to seriously reduce CPU overhead.
+
+
+
+CHANGES from libsidplay 1.X.X
+
+* Most of the code has been re-written by myself with all the new emulated IC's being cycle based.
+
+* The interface has been revamped and is based on standard functions provided by a music player e.g. play, stop, pause, etc
+
+* reSID is now the default and currently only provided SID emulation. (written by Dag Lem)
+
+* Sidtune library taken from libsidplay-1.X.X for file support. (written by Michael Schwendt)