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 . 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 . 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