Written for the version released on the 10th of July 1996.



            README for the Windows version of SIDPLAY
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


SIDPLAY/Windows is a port of the SIDPLAY/UNIX code to the MS Windows
environment. The UNIX source code is written by Michael Schwendt
<3schwend@informatik.uni-hamburg.de>. The Windows port and user
interface is written by Adam Lorentzon <d93-alo@nada.kth.se>.

For more info about the latest SIDPLAY/Windows version, go to
           http://www.student.nada.kth.se/~d93-alo/c64/spw

For general SIDPLAY and sid music information, don't miss the original
                   -= SIDPLAY WWW Home Page =-    at
           http://www.student.nada.kth.se/~d93-alo/c64/Sidplay

This file isn't meant as a complete manual, simply as a brief description
of the features of SIDPLAY/Windows



INSTALLATION

Simply copy the SIDPLAYW.EXE file to a directory of your choice, add an
icon to it and you're done. If you wish to run the 32-bit version under
Windows 3.1, you will need Win32s. It can be obtained from Microsoft at
http://www.microsoft.com/ . The 32-bit version is almost twice as fast
as the 16-bit version.


USAGE - DESCRIPTION OF THE MENU

The file menu has five entries: Open, Save as Wav, Conversion,
  Directory-based UI and Exit.

File|Open:                  (Shortcut  -  Alt + O or Ctrl + O)
  Opens a standard Windows file open dialog, from which you can choose
  a sid music file to open and start playing.

File|Save as Wav:           (Shortcut  -  Alt + W or Ctrl + S)
  Asks for a filename to save the music as, and then writes a WAV file using
  the settings in the Settings|Wav dialog box.

File|Conversion:            (Shortcut  -  Alt + C)
  Dialog for converting sid files to a specified format.
  For example, suppose you've got a dir full of sid files in DAT+SID format.
  Use the filter to show all *.dat files, set destination directory to the
  same as the source, convert all files with the overwrite option, making
  the PSID files (.dat) overwrite the old .dat files, and the delete source
  files option, removing the old .sid files and you've replaced all DAT+SID
  files with a corresponding DAT file in PSID format. Be a little careful
  with the overwriting and deleting though, make sure you have a backup if
  something goes wrong.

File|Directory-based UI:    (Shortcut  -  Alt + D)
  Toggles a file-selection window which looks like the main window in
  SIDPLAY/DOS. Use the mouse or the arrow keys to select a drive, directory
  or file and press enter or double-click to change to the selected drive/
  directory or start playing the selected file. Backspace takes you up one
  directory. Pressing the Filter button lets you choose which files that
  will be shown in the directory window.

File|Exit:                  (Shortcut  -  Alt + X)
  Terminates the program.

---

The settings menu is for configuring the program and has seven entries:
Play, Wav, Emulation, Volume, Voices, Panning and Device.

Settings|Play:
  Controls the quality of the sound: frequency, resolution and channels:
    Frequency can be chosen between 4000 and 48000 Hz.
    8-bit or 16-bit output.
    Mono or stereo output.
  The number and size of buffers can be increased if the music is stuttering,
  and there are gaps in the music when you're running other programs. If you
  want faster response time, lower the size of the buffers.
  Higher frequency, stereo and 16-bit output all increase the CPU demand,
  so you might have to do with a little lower sound quality if you have a
  486 or a slow Pentium.

Settings|Wav:
  Here you set the type of WAV file that will be written when you choose
  File|Save as WAV. You also choose how long the WAV file will be in seconds.
  Be careful not to record too long files - the required filesize is shown
  at the bottom of the dialog.

Settings|Emulation:
  The first three options affect the emulation:
  Improved PlaySID compatibility: see PLAYSID COMPATIBILITY ISSUES below.
  Force NTSC speed: see FORCING A TUNE TO PLAY AT NTSC-SPEED below
  SID filter emulation: partially emulates the SID filter.
  Cache data for faster reloading: makes SIDPLAY/Windows cache the sid data
    in a memory buffer. This makes reloading it each time a new song from the
    same data file is to be played a lot faster, especially if the sid file
    is big and powerpacked, but it takes an extra 64kb of memory.

  Mixing mode: controls which mixing routines the program uses.
  The first choice is the fastest routines, but you can't control the
    individual voice volume levels or panning.
  The second choice lets you control the voice volume levels and "blend"
    the left and right channels.
  The third choice gives you full control of the voice volume levels, for
    both channels. The drawback is a slight loss of sound quality, which
    might be noticeable in 8-bit stereo.

Settings|Volume:
  A volume control, plain and simple. If you want more control over your
  soundcard, I suggest you use the mixer program that comes with the card.

Settings|Voices:
  If the appropriate mixing mode (HQ or full control) is selected in the
  Settings|Emulation dialog, you can control the volume level of the
  individual SID voices here.

Settings|Panning:
  If stereo playback and HQ or full control mixing mode is selected
  this dialog is where you change the panning of the SID voices. In HQ
  mixing mode you only have limited control over the panning, a sort
  of blending of the left and right stereo channels.

Settings|Device:
  If you have several audio devices installed on your system, you may want
  to select the one with the best audio capabilities. Here you can choose
  between the installed devices.

---

The info menu have two entries: Sidfile and About.

Info|Sidfile:
  Shows information about the file currently loaded.

Info|About:
  Shows information about the program, such as authors, whether it is
  the 16-bit or the 32-bit version, and what date it was created.


USAGE - OTHER

A filename can be given on the command line, so associating SIDPLAY/Windows
with the .dat extension might be a good idea. If you have SIDPLAY/Windows
open you can drag a sidfile from the File Manager (Explorer in Windows 95)
and drop it on the main window and it will start playing.


SHORTCUT KEYS:

Alt+P     = Play/Pause
Alt+S     = Start/Stop playing
Ctrl+O    = Open file
Alt+O     = Open file
Alt+W     = Save as Wav
Alt+C     = The conversion dialog
Alt+D     = Show/Hide the directory window
Alt+X     = Terminates the program
Alt+Left  = Previous subsong
Alt+Right = Next subsong
Alt+Up    = Toggle playspeed x2
Alt+Down  = Toggle playspeed x4



The next three chapters were written by Michael Schwendt
---


Consult this file, if a sidtune or some of its songs

 (1) do not run in SIDPLAY
 (2) do only run in SIDPLAY's PlaySID-compatibility-mode

-----------------------------------------------------------------------------
If you find a sidtune which only plays in SIDPLAY's PlaySID-compatibility
mode, please check out the appended list of corrected sidtunes.
If it is not listed here, contact <Michael_Schwendt@public.uni-hamburg.de>.
Please do not send me the music files, but always state the complete
information from the sidfile, not just a file name.

Note to sidtune rippers: Without bank-switching it is nearly impossible for
an emulator to determine which memory region should be accessed. There are
some sidtunes that do *not only* use the memory under the address space of
the Basic and Kernal-ROM, but also the memory under the SID chip. To have
all sidtunes in a unique format, it is prefered to use valid machine code,
that would also run on a real C64, except the modified sample-players of
course.
Please don't neglect bank-switching. It doesn't make the code of a ripped
sidtune much longer. Generally it takes only 24 bytes of additional code in
front of the initialization and main player routines.

Following is an alphabetically sorted list of sidtunes, which have already
been corrected to either make use of bank-switching (for SIDPLAY or a real
C64) or they include sample players which were modified to use PlaySID's
extended set of SID chip registers, but played at half volume:


A Cool One                      Gamma Cracking Force            1988 Strike Force
Afternoon (1)                   Shade                           1988 The Troopers
Afternoon (2)                   Shade & Oinno                   1988 The Troopers
Agent X II:The Mad Prof's Back  Tim Follin                      1987 Mastertronic
Antics/Dulcedo Incognitations   Chris Huelsbeck                 1987 Time Warp Productions
Army Moves                      Fred Gray                       1987 Imagine
Bad Cat (Intro)                 Chris Huelsbeck                 1987 Rainbow Arts
Batman, The Movie               Matthew Cannon                  1989 Ocean
Bubble Bobbble                  Peter Clarke                    1987 Firebird
Chip War                        Chris Huelsbeck                 1987 Rainbow Arts
Clystron                        Thomas Detert                   X-Ample
Density                         Reyn Ouwehand                   1991 Reyn Ouwehand
Dragon Ninja                    Jonathan Dunn                   1989 Imagine
Dreams Odyssee                  Pri                             1994 Oxyron
Dynamoid                        Thomas Detert                   X-Ample
Elite Squad                     Markus Schneider                1990 Double Density
Game Over                       Martin Galway                   1987 Imagine
Green Beret                     Martin Galway                   1986 Imagine
Gunstar                         Peter Clarke                    1987 Software Creations
Hip House                       Edwin Van Santen & F.P. (20CC)  July 1989
Hotrod                          Maniacs of Noise                <?>
Ice Pirate                      Mr.Honk & Drago (GCC 1911)      1987 German Cracking Company
In 80 Days Around The World     Georg Brandt                    1987 Time Warp Productions
Inxs                            HFC                             1988 Inxs
Jinks (Intro)                   Chris Huelsbeck                 1987 Rainbow Arts
Judge Dredd                     Greg Holland                    1987 Melbourne House
Madballs                        Fred Gray                       1988 Ocean
Mikie                           Martin Galway                   1987 Imagine
Mip Mip Police (Intro)          Thomas 'Laxity' E. Petersen     1988 2000 AD/System/TST
Mutants                         Fred Gray                       1987 Ocean
Myth (Loader)                   <?>                             1989 System 3
Never Ending Story              Martin Galway                   1985 Ocean
No Mercy                        Markus Schneider                1989 Double Density
North & South                   Maniacs Of Noise                1989 Infogrames
Peter Pack Rat                  Tim Follin                      1988 Firebird
Platoon                         Jonathan Dunn                   1988 Ocean
Psycho                          Mark Tait                       <?>
Quarterback                     <?>                             1987 German USA-Team
Ramparts                        Mark Cooksey                    1987 Go!
Satellite II                    Thomas 'Laxity' E. Petersen     1988 The Supply Team
Scooby Doo                      Mark Cooksey                    1986 Elite Systems Ltd.
Scuba Kidz                      Wally Beben                     1988 Silverbird
Special Events                  Marcus Schneider                1988 Markt & Technik
Spijkerhoek 2                   20CC                            July 1989
Starion                         Greg Holland                    1987 Melbourne House
Street Gang (Intro)             Georg Brandt                    1987 Time Warp Productions
Street Gang                     Georg Brandt                    1987 Time Warp Productions
The Chambers Of Shaolin         Holger Knipping & Michael H.    1989 Thalion
To Be On Top (Intro)            Chris Huelsbeck                 1987 Rainbow Arts
Troll                           Fred Gray                       1988 Outlaw
Ultima V - Warriors of Destiny  Kenneth Arnold                  1985 Origin, inc.


---

PLAYSID COMPATIBILITY ISSUES:

If you use SIDPLAY together with older music collections which were especially
made for PlaySID (Amiga) you might find a few troublemakers between the
sidtunes.
If some tunes stay silent or sound strange in an undescribable manner, try
toggling the "PlaySID compatibility mode". This mode is disabled by default,
since it does not provide as flexible emulation as the native SIDPLAY mode
does. It is not recommended to enable it by default, unless you really 
encounter some PlaySID-specific sidtunes !

Please note, that PlaySID's single-file-format PSID is still the most common
format used in sidtune collections. The musics in PSID format might have been
converted from SIDPLAY SID 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 War", 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 was developed
from scratch, without any knowledge of PlaySID's inner workings, I decided to 
emulate bank-switching as well (although 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 required 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. As long
as there are still PlaySID-specific sidtunes floating around, you might have
to temporarily enable the PlaySID compatibility mode to get a tune to work.

There is another minor problem with PlaySID-specific sidtunes. We discovered
some sidtunes to assume the processors registers to contain a constant value
(zero) upon initialization.
Those tunes don't run on a real C64 (where the processors' registers contain
the last active value, which is unlikely to be zero !). Inspite of this,
SIDPLAY provides the song number in all three processor registes upon song
initialization. This was proposed by some users in the early development
stages of SIDPLAY/DOS. In "PlaySID compatibility mode" SIDPLAY behaves like 
PlaySID and uses only the Accumulator and clears X- and Y-Register.


---

FORCING A TUNE TO PLAY AT NTSC-SPEED:

= What is written here reflects a personal opinion and must not apply to
= every available sidtune. You might also encounter a few bad rips. - [MS]

Beware !!! This option doesn't make much sense, but needs a bit more
explanation. Setting this switch forces SIDPLAY to replay any music at NTSC
speed, regardless (!) of whether it has been configured to play at any other
intended speed.

In NTSC-mode SIDPLAY calls the music replaying routine at 60 Hz, like a
vertical blanking interrupt (VBI) of a NTSC based machine would do. 
Generally this is the wrong speed for a sidtune, because all sidtunes contain
additional information about their original and intended replaying speed. This
info is always supposed to be correct, even if the corresponding C64 game was
PAL-NTSC fixed or vice versa. Thus, if a game and its music were designed for
a NTSC based machine it generally should play at 60 Hz automatically. You can
verify this by taking a look at the SPEED setting.
Musics which were called via timer interrupts are not affected by PAL<->NTSC
conversion anyway.

Due to the fact that PAL based screens (TV, monitor) generally are able to
display more lines of pixels than NTSC based ones, the NTSC screen refresh
rate (60 Hz) is 1.2 times faster than the PAL (50 Hz) rate. Therefore on NTSC
based machines a VBI driven music routine is called more often, thus leading
to falsification of the originally intended music timing.

Unfortunately, a lot of european games have not been PAL->NTSC fixed, and as
their musics were often played via VBI, it was played too fast on NTSC based
machines.
Thus, it seems, as if former users of NTSC base machines now think that a lot
of tunes are played too slow in comparison to what it was like on their old
computer.

If you don't care whether a tune is playing at its originally intended and
correct replaying speed, and you are used to listen to tunes that are played
too fast, enabling the NTSC-mode is a cure. But please believe the fact that
any sidtune is supposed to run at proper speed *without* explicitly enabling
the NTSC mode.


---

THANKS TO

  Michael Schwendt for everything
  All betatesters for finding bugs, making suggestions and general motivation
  Jonathan Hunt for drawing the nice icon
  All C64 composers for the groovy tunes
  Sid rippers and sid collection organizers (esp. Agust Arni Jonsson and
    David Greiman) for making them available


---

CONTACTING THE AUTHOR

If you have questions, comments, suggestions or bug reports, don't hesitate
to mail me at d93-alo@nada.kth.se .

The C64 WWW Games page at http://www.student.nada.kth.se/~d93-alo/c64/
has links to most C64 resources on the net. Try it!

Be well!

/ Adam Lorentzon   <d93-alo@nada.kth.se>
