																  
Welcome to SIDPLAY-1.7 !


This package includes the complete source for the Unix version.
For some system specific notes check out the other README files.
So far there is support for Linux, FreeBSD, SunOS and Solaris 2
SPARCstations, Silicon Graphics Indigo workstations. Support for
any other operating system might be distributed in a separate package.

This version is able to load data from standard input by handing in
the input file name '-'. For example, uncompressing a gzip'ped music 
file and piping the ouput to SIDPLAY is done like this:

 # gunzip -c rambo.dat.gz | sidplay -

SIDPLAY assumes data from standard input to be uncompressed and will
not try to apply PowerPacker decompression. Further, reading from
standard input does not work for sidtunes in multiple-files format.

The supported file formats are:

 - PlaySID single-file-format (PSID)
 - PlaySID info-file-format 
   (Raw C64 binary plus Amiga Workbench icon tooltype file)
 - SIDPLAY info-file-format 
   (Raw C64 binary plus SIDPLAY ASCII text info file)
 - C64 Stereo-/Sidplayer format (MUS)

By convention, raw data or psid files were named '*.data', '*.psid' or 
'psid.*'. Additional icon info files were named '*.info', ASCII info files 
were named '*.sid'. The multiple-files formats are obsolete, although they 
are still supported. 

By default, SIDPLAY searches your directory for the following possible 
combinations of files, if it doesn't succeed to determine the format of
the single specified data file (* is the base filename):

 - a pair of a '*.data' and a '*.sid' file
 - a pair of a '*.data' and a '*.info' file
 - a pair of a '*' and a '*.sid' file 
 - a pair of a '*' and a '*.info' file

Check out the command line arguments "-bs" and "-bn", if audio output
gets interrupted when switching virtual consoles or running other 
applications.


PLAYSID COMPATIBILITY ISSUES:

If you use music collections which are especially made for PlaySID 
(Amiga) you can safely use the command line argument "-a" (and 
sometimes have to !) without getting unwanted results. If some tunes 
are silent or sound strange in an undescribable manner, try toggling 
the "-a" switch. If you encounter such a tune (or a real non-working 
one), please contact me. 

Please note, that musics in PSID-single-file-format may have been 
converted from SIDPLAY/DOS' format without any loss of data, but the 
replay may cause problems due to a difference in PlaySID's and SIDPLAY's 
emulation and way of handling and initializing the music data.

PlaySID pretends plain 64 KB of C64 random-access-memory to get rid 
of C64-bank-switching, but does not allow the use of the memory range
"under" the SID address space. Some sidtunes use this memory for large 
data, e.g. samples in Chris Huelsbeck's "Chip Wars", and they sound
damaged in PlaySID. The C64 uses bank-switching to map parts of the 
ROM and I/O address space into the limited physical address space of 
64 KB. When SIDPLAY/DOS was developed from scratch, without any knowledge
of PlaySID's inner workings, I decided to emulate bank-switching as well. 
(The current implementation level of SIDPLAY/Linux does _not_ provide full 
support for bank switching !). One benefit of this decision is the ability 
to replay sidtunes that use any part of the C64 memory.

Attracted (or misguided ?) by the plain C64 memory of PlaySID, rippers
of hundreds of sidtunes totally neglected bank-switching in the changes
they did to the music players. Luckily, there are only a few tunes 
where bank-switching would be necessary to successfully run them on a 
real C64 or SIDPLAY. Concerning the latter, the tunes just stay silent 
or, in the worst case, drop some notes or voices, e.g. Fred Gray's 
"Army Moves", "Madballs", "Troll" or Martin Galway's "Mikie". Consider
those sidtunes as PlaySID-specific, this means you have to enable the 
"-a" option.

There is another problem with PlaySID-specific musics. In the early 
development stages of SIDPLAY/DOS some users suggested the usage of all 
three processor registers upon music initialization. Later we discovered
some PlaySID tunes to assume certain register values (zero) upon
initialization. These tunes don't run on a real C64 (where the processors'
registers contain the last active value, which is unlikely to be zero !). 
The "-a" option tells SIDPLAY to behave like PlaySID (use only one register 
and clear the other two).


PORTING & PATCHING:

This code is a C/C++ port of my DOS assembler language version 
of SIDPLAY (actually, most of the code was hacked down in a
single night). It is *not* optimized for speed and still lacks 
some emulation features, but sounds almost equivalent to the
DOS version. If you look at the code and miss comments, this is 
because I keep most of the documentation on paper (in German) 
and in the original ASM files.

If you intend to port this code to another platform, please apply
the changes in form of patches (diff -c). If you intend to improve 
certain parts please consider contacting me to receive my latest
revision group files in which you can log your changes. In both cases, 
I would like to keep uptodate with the most recent patches by merging 
your work with mine. Also, this makes sure you will get your credits 
in later releases.


BUGS & PROBLEMS:

If you encounter any bugs or problems, please don't hesitate to contact me. 
This version was tested on Slackware 3.0.0 Linux (extensively upgraded), 
compiled using the configuration in README.Linux, together with VoxWare 3.0.1 
on a SB 16 compatible soundcard.


CHANGES SINCE 1.0:

 - updated command line argument "-a" to improve PlaySID 
   compatibility
 - fixed some SID emulator differences to the DOS model
 - applied some FreeBSD patches
 - added support for data files in MUS format (Stereo-/Sidplayer)
 - added support for Sun Sparcstations
 - added support for Silicon Graphics Indigo workstations
 - added stereo and 16-bit in 8-bit quality :) 
 - fixed Galway-Noise sample-emulation
 - added support for info files in INFO format (PlaySID)
 - added support for info files in SID format (SIDPLAY)
 - more minor changes (e.g. volume envelope)
 - changed some of the PlaySID compatibility code
 - changed/fixed the emulation of ring modulation 
 - improved the Galway-Noise sample-emulation
 - improved the multiple-files format loader
 

Have fun !

Michael Schwendt <3schwend@informatik.uni-hamburg.de>

Also try http://www.student.nada.kth.se/~d93-alo/c64/Sidplay  
for more information.


THANKS to (in alphabetical order): 

           ge Rbekk <aagero@aage.aage.priv.no>
           Adam Lorentzon <d93-alo@nada.kth.se>
           Brian Nielsen <norman@iesd.auc.dk>
           Dimitri Ars <dimitri@pitel_lnx.ibk.fnt.hvu.nl>
           Johan Khler <drac@funcom.no>
           Patrick van Logchem <v912152@si.hhs.nl>
           Per Hkan Sundell <md1phs@mdstud.chalmers.se>
           Toni Nikkanen <tonikk@utu.fi>
		   
