home *** CD-ROM | disk | FTP | other *** search
-
- SIDPLAY version 1.40a
- Copyright (c) 1994,95 Michael Schwendt
- All rights reserved.
-
- Internet e-mail:
- 3schwend@informatik.uni-hamburg.de
-
- Normal mail:
- Michael Schwendt
- An der Wallpforte 1
- D-23879 Moelln
- Germany
-
- -------------------------------------------------------------------------------
-
- WHAT IS (DOES) SIDPLAY ?
-
- Basically, SIDPLAY is just an ordinary music player for PCs with a
- soundcard. It is not bound to a specific music data format. Instead, it
- emulates the sound interface device chip (MOS 6581, known as SID) and the
- micro processor unit (MOS 6510) of the Commodore 64 on your PC.
- Therefore it is able to load and execute C64 machine code programs which
- produce interrupt driven music or sound. In general these are
- independent fragments of code and data which are ripped from games and
- demonstration programs and are transfered directly from the C64.
-
- The idea for SIDPLAY is based on the Amiga program "The 100 most
- remembered C64 game-tunes" and its follower "PlaySID" by Per Håkan
- Sundell and Ron Birk.
-
- This program is not related to a music editing and playing program on C64
- called "Sidplayer" by Craig Chamberlain or "Stereo Sidplayer" by Mark
- Dickenson. When beginning this project I was not aware of the existence
- of those C64 programs and didn't want to start any confusion by choosing
- a similar name. Later, support for one of Sidplayer's music data formats
- (MUS) has been added.
-
-
- C64 MUSICS / SIDTUNES / SIDS
-
- Around 3000 different soundtracks from Commodore 64 games and demos are
- available in several packages. These musics are still copyrighted by their
- original owners. That is the reason why this program is distributed without
- any tunes though many of them are almost 10 years old by now. Hence
- spreading them is more likely to act as advertising than causing any
- consequential damage. Please consult the file "faq.doc" for additional
- information about distribution sites for SIDPLAY, C64 musics or related
- software.
-
- Approximately, the european part of the world refers to any piece of music
- from the Commodore 64 as "sidtune", while the american part of the world
- only calls musics, which were made with the original "Sidplayer" on C64,
- "sidtunes" or "sids". From what I have learned so far, the "Sidplayer" was
- very famous and there were more than 7000 sounds for it.
-
-
- THE JUKEBOX
-
- The SIDSHELL is the shell-version of SIDPLAY. It needs 224KB of EMS-memory
- (LIM/EMM >= 3.2) and a fast 486 CPU. One of its differences to SIDPLAY is
- the possibility to enter the DOS shell while playing a selection of musics
- in the background. To leave some CPU power for other applications you are
- advised to play around with the output-mixing frequency (command line option
- /f) and the mixing buffer size (option /b).
-
- Its internal selector is able to mark files and generate playlist jukebox
- files. The current version handles playlists of a maximum size of 65535
- bytes, i.e. around 1600 files. This should be enough for the moment. The
- shorter the complete path to each sidtune file, the more files fit into a
- single listfile. The playlist files can be edited with any normal ASCII text
- editor.
-
-
- SIDPLAY TO .WAV FILE
-
- This one was done to use complete sidtunes or single effects/instruments in
- own programs and on different platforms. A second version is programmed
- completely in portable C. If you use data calculated by SID2WAV, please
- don't forget to give the credits. Using some simple run-length compression,
- more than a minute of waveform data at average 22.05 KHz will fit into a few
- hundred kilobytes only.
-
-
- THE CARDWARE CONCEPT
-
- SIDPLAY is cardware. If you like this program, all I would like to get from
- you is an illustrated postcard. Please avoid sending an ordinary email as a
- substitute for a real postcard. I want to see how much this is used around
- the world. The main purpose of cardware is to support the programmer, so
- that he keeps motivation in programming updates and related software. If
- you can't find a suitable postcard in time, I am pleased with any kind of
- donation or gift, like a copy of a home-made CD or some money.
-
- -------------------------------------------------------------------------------
-
- PACKAGE LIST:
-
- The original archive named 'sidp140a.zip' should only contain the
- following files:
-
- FILE_ID DIZ 360 16.11.95 1:40
- SIDSETUP EXE 19628 16.11.95 1:40
- SIDPLAY EXE 66246 16.11.95 1:40
- SIDSHELL EXE 66086 16.11.95 1:40
- SID2WAV EXE 47044 16.11.95 1:03
-
- DOC <DIR> 16.11.95 1:40
- SIDPLAY DOC 26795 16.11.95 1:40
- REVISION DOC 9627 16.11.95 1:40
- FAQ DOC 9823 16.11.95 1:40
- LINUX DOC 127 16.11.95 1:40
- README DOC 1908 18.10.95 1:37
- LIESMICH DOC 2392 18.10.95 1:37
-
- TOOLS <DIR> 16.11.95 1:40
- EPEX DOC 6404 24.03.95 1:25
- EPEX BTM 3590 24.03.95 1:25
- INFO2SID EXE 1505 24.03.95 1:25
- PSID2DAT EXE 6948 24.03.95 1:25
- PSID2SID EXE 1661 24.03.95 1:25
- SID2PSID EXE 1749 24.03.95 1:25
- PP EXE 29696 17.06.95 0:02
- DEPP EXE 25600 31.05.95 0:02
- GO32 EXE 78826 18.12.94 21:39
-
- 28 Files 400391 Byte
-
-
- -------------------------------------------------------------------------------
-
- KEY FUNCTIONS (SELECTOR):
-
- CURSOR KEYS,
- POS1, END,
- PAGE KEYS - move the coloured bar on a drive/directory/file
- RETURN - select a drive/directory/file
- ESCAPE - quits back to DOS (confirm with Y or N)
- ALT-X - quits back to DOS immediately
- D - start DOS shell (only in the SHELL-version)
- BACKSPACE - delete current file and belonging hidden files on
- confirmation
-
-
- KEY FUNCTIONS (SOUND CONTROL):
-
- CURSOR LEFT - replay previous tune if possible
- CURSOR RIGHT - replay next tune if possible
- CURSOR UP - enter four times faster replay, back to normal speed by
- pressing any other key,
- CURSOR DOWN - enable two times faster replay, back to normal speed by
- pressing any other key
- ENTER - returns back to the selector
- ESCAPE - quits back to DOS with
- Q - pause/resume replay (quiet)
- 1, 2, 3, 4 - toggle mute for channels 1-4 (not with option /m !)
- P - opens/closes the stereo panning setup window
- (use option /s or /st to enable this function)
- L, M, R - set stereo channel output to LEFT/MIDDLE/RIGHT
- S - toggle stereo surround effect for selected channel
- (use option /st to enable this function)
-
- KEY FUNCTIONS (SIDSHELL.EXE):
-
- D - start DOS shell
- INSERT - mark file
- DELETE - unmark file
- SPACE - toggle file mark
- M - start playing marked files
- N - stop current song and play next one from list
- ALT + S - save tagged files as a playlist ASCII-file
- CTRL + - Hotkey, stop current song and play next one from list
- LEFT_SHIFT + (only in DOS-Shell !)
- F10
-
- Note1:
- The fast forward replay takes more CPU power than normal speed. Please be
- careful, because this might lock your machine !
-
- Note2:
- The output modifying actions might start/stop after a short delay. This
- happens if the mixing buffer is large. The length of delay depends on the
- CPU speed of your machine. You can set the mixing buffer size with the /b
- option to achieve smarter key handling and faster reactions on your input.
-
-
- MOUSE SUPPORT:
-
- Exit - move pointer to top-left corner of screen and press left button
- Page up - left click above selector window
- Page down - left click under selector window
-
- -------------------------------------------------------------------------------
-
- THE COMMAND LINE PARAMETERS:
-
- SIDPLAY provides an ASCII-editable configuration file and optional command
- line parameters. The command line parameters always override the settings
- in the global configuration file SIDPLAY.CFG.
-
- /f<Hz> sets the sample mixing frequency (i.e. sound quality)
- where <Hz> is a frequency between 8000 and 45891 Hz
-
- /b<length> sets the amount of bytes to be processed till next interrupt
- occurs (a value from 1024 to 65530 is possible);
- a small buffer results in faster key-interrupt handling;
- very useful for switching through plenty of sounds
-
- /h display command line syntax screen (or any unused key => e.g /?)
-
- /m force to mono-without-mute mode. this one is slightly faster than
- the default mono-with-mute output
-
- /s enables quality stereo mode (press 'Q' for quality panning setup)
- this is only possible if your sound card has stereo capabilities
-
- /st enables stereo mode (press 'Q' for stereo panning setup)
- this is only possible if your sound card has stereo capabilities
-
- /v enables a special non-realtime SID register view mode (a 486DX-33
- or better with a very small mixing buffer is recommended)
-
- /a force the emulator system to only use the Accumulator on song
- initialization. This is required for only a few musics which
- were accidentally (?!) setup to run on Amiga PlaySID only.
- Their music initialization code assumes the X- and Y-register to
- contain zero, which is a sloppy coding style. SIDPLAY uses all
- three registers on initialization to allow replaying of directly
- converted musics without previously fixing the music routine.
- Hence making that assumption is fatal and song initialization
- fails.
-
- /n BEWARE !!! This option doesn't make much sense, but needs a bit
- more explanation. Setting this switch forces SIDPLAY to call the
- replaying routine of all (!) musics with 60 Hz, like a vertical
- blanking interrupt of a NTSC based machine would do. In general
- this is the wrong speed, because most of the games for the C64
- were designed for the PAL based machines of the european users
- and have either been NTSC-fixed or use timer-interrupt replaying
- routines that do not differ in speed on NTSC systems.
-
- If american, canadian or japanese (e.g.) users think a music is
- played too slow in comparison to the C64, this is only if the
- corresponding game/intro/demo on the C64 calls its music routine
- via the vertical blanking interrupt (VBI) instead of a timer
- interrupt. 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) one. Therefore on NTSC based
- machines the VBI driven music routine is called more often, thus
- leading to falsification of the originally intended music timing
- and making the user think it sounds correctly.
-
- Only if you are used to listen to tunes that are played too fast
- and you don't care about the correct replaying speed you should
- enable the NTSC-mode. But please DON'T think you have to enable
- it to make SIDPLAY replay all sounds in the proper speed. You
- should really believe that SIDPLAY replays all sounds like
- intended, without the /n option.
-
- Of course if a game and its music were designed for a NTSC based
- machine it generally should played with 60 Hz automatically
- without the /n option. Hence the SPEED entry in the description
- file has to be set to 60 Hz (see below).
-
- /@<char> sets the background character ( default is /@▒ )
- this is useful for owners of the Video Blaster hardware, who
- get noisy output caused by the background pattern; entering
- /@<space> to get a blank background (Thanks Bernhard !) is
- able by adding further command line options behind this one.
-
- -------------------------------------------------------------------------------
-
- DESCRIPTION OF USED FILES AND FORMATS:
-
- SIDPLAY lists any file with the extension .DAT in the current directory
- whether it is a valid file or not. Refer to 'faq.doc' on how to get music
- packages for SIDPLAY or compatible ones for PlaySID. When selecting a file
- SIDPLAY tries to find an appropriate hidden information file or tries to
- determine whether the selected file is valid, by analyzing its internal file
- structure. Sometimes this is no protection against corrupt contents. The
- various formats of the information files (*.SID, *.INF) are described
- further below.
-
- The filename extensions can be renamed by changing the fields in the
- configuration file. SIDPLAY supports the following combinations of files:
-
- .DAT + .SID binary code and data file + plain ASCII file
- in SIDPLAY INFOFILE format
-
- .DAT + .INF binary code and data file + Amiga Workbench icon
- including ASCII text strings
- (used by PlaySID, supported by SIDPLAY)
-
- .DAT single file, containing binary code and data
- preceded by a binary information header
- (used by PlaySID, supported by SIDPLAY)
-
- .MUS single file, containing music data, e.g. made with
- Compute!'s (Enhanced) Sidplayer on C64
-
-
- THE DATA FILES:
-
- The .DAT files used by SIDPLAY contain binary code and data. Both, the
- programmer on the C64 and this emulator need information on how to access
- the subroutines inside the binary, that means the memory location to load
- the file at, the number of tunes, the starting address of the executable
- code and its subroutines. That specific information has to be delivered in
- a separate file (see below), except if the data file contains an information
- header (see below).
-
-
- THE .INF (.INFO on Amiga) FILES:
-
- These are Amiga Workbench icons containing binary graphic data and ASCII
- text information strings. They are used by PlaySID but are compatible to
- SIDPLAY. The appropriate data files generally don't have a filename
- extension. Refer to the chapter 'Converting from/to PlaySID' on how to
- extract Amiga archives and about file conversion.
-
-
- THE .SID FILE-FORMAT:
-
- These are plain ASCII text file introduced by the earlier versions of
- SIDPLAY. They are used to alter the information inside with a normal text
- editor and can later be converted to a single .DAT file containing a binary
- header. The format is (don't change the line order !):
-
- SIDPLAY INFOFILE
- ADDRESS=<loadaddress>,<initaddress>,<playaddress>
- SONGS=<total>[,<start>]
- SPEED=<value>
- NAME=<name of music/tune>
- AUTHOR=<name of author/composer>
- COPYRIGHT=<year/name of copyright owner/company>
- SIDSONG=<YES|NO>
-
- The first line of the text containing 'SIDPLAY INFOFILE' is only to
- identify the type of file (the .SID extension may not be enough !).
-
- ADDRESS=<loadaddress>,<initaddress>,<playaddress>
-
- <loadaddress> is the address to load the .DAT file at (0 means the file
- is in original C64 format, i.e. the first two byte contain
- the loadaddress (lo/hi).
-
- <initaddress> is the start address of a subroutine that initializes a
- sound using the 6510 accumulator as song number (0-255).
-
- <playaddress> is the start address of a subroutine that can be called
- frequently by interrupt to produce a continuous sound.
-
- Each address is a 16-bit hexadecimal effective C64 memory address.
-
- SONGS=<total>,[<start>]
-
- <total> is the decimal number of tunes/sounds that can be initialized
- using the init-subroutine (minimum = 1).
-
- <start> default=1, is the decimal number of the tune to be played
- automatically after selecting a .DAT file (lowest = 1).
-
- SPEED=<value>
-
- <value> is a hexadecimal number that contains information about the
- speed of each tune/sound. For each tune/sound a bit is reserved,
- bit 0 for tune 1, bit 1 for tune 2 and so on. A 0 bit means
- the play-subroutine is called 50 Hz and a 1 bit means the speed
- which is indicated by the CIA Timer A (DC04/05) (default 60 Hz)
-
- Examples: SPEED=0 replays every tune at 50 Hz
- SPEED=1F replays tunes 1-5 (accumulator 0-4) at 60Hz
- and tunes 6-8 (a 5-7) at 50 Hz
-
-
- NAME=<name of music/tune> ; ASCII
-
- AUTHOR=<name of author/composer> ; ASCII
-
- COPYRIGHT=<year/name of copyright owner/company> ; ASCII
-
- SIDSONG=<YES|NO> is used to let SIDPLAY know that the belonging .DAT
- file is a (Enhanced) Sidplayer file from C64.
- This is useful when wanting to add extra song
- information into the .SID file.
-
-
- The format of a file 'EXAMPLE.SID' may look like this:
-
- SIDPLAY INFOFILE
- ADDRESS=2AF0,3002,300C
- SONGS=3,2
- SPEED=0
- NAME=Example
- AUTHOR=Example
- COPYRIGHT=1993 Example
- SIDSONG=NO
-
-
- THE 'PSID' FILE HEADER:
-
- You may display any .DAT file with a normal ASCII/HEX editor. If the first
- four characters/bytes contain the word 'PSID' and there are ASCII strings
- containing the author and copyright information you can nearly be sure that
- it is in PlaySID v2.2+ (Amiga) single-file-format. This format is supported
- by SIDPLAY. Hence you only need to add the .DAT extension to the filename,
- if it came from Amiga. Refer to the next chapter for more on PlaySID files
- and optional file conversion.
-
- -------------------------------------------------------------------------------
-
- USING FILES FROM PLAYSID (Amiga):
-
- If you have Amiga sidtune files installed on your PC, each tune may consist
- out of one or two files, either named '*' or '*' plus '*.info'. In both
- cases you will have to rename the files '*' to '*.DAT' to ensure, that
- SIDPLAY's simple file selector lists them. The files '*.info' generally are
- cut to '*.INF' while extracting Amiga archives on a DOS based PC. If you
- encounter any problems while extracting the Amiga archives on your PC,
- please take a look at the SIDPLAY 'frequently asked questions'-file
- 'faq.doc'.
-
-
- CONVERTING FILES FROM/TO PLAYSID (OPTIONAL !!!):
-
- Together with SIDPLAY four small file conversion tools have been released.
- You don't (!) have to use these tools to listen to any tunes currently
- available. Only if you like to work with the tunes, e.g. edit the
- description files or reduce the number of files, you are advised to use
- these tools.
-
- 'info2sid.exe' converts any .INF(O) file in the current directory to .SID
- format. Beware - there is currently no tool to reverse this operation !
- Please make sure all files have been converted successfully, e.g. by
- counting the number of new created .SID files in comparison to the .INF
- files. Then you may delete the useless .INF files yourself. This operation
- is useful if you like to edit the song information files (please also read
- the previous chapter). This operation is useful if you like to edit the
- song information files (please also read the previous chapter). Editing a
- separate plain ASCII .SID file is much more easier than editing a binary
- .INFO workbench icon from Amiga on PC. You will have to rename any existing
- data files (generally without extension) to .DAT extension yourself (refer
- to 'faq.doc' on how to solve possible problems while extracting Amiga .lha
- archives on PC).
-
- 'sid2psid.exe' merges any belonging .SID and .DAT file in the current
- directory to a single .ONE file in the single-file-format used by PlaySID.
- Please make sure all files have been converted successfully, e.g. by
- counting the number of .ONE files in comparison to .SID files, then you may
- delete the .SID files and move the .ONE files to .DAT ! Don't delete any
- .DAT file if you're not sure it is in single-file-format already ! This
- operation is useful if you like to reduce the number of files or if you want
- to transfer sidtunes to PlaySID on Amiga.
-
- 'psid2sid.exe' separates any .DAT data file with a binary header
- (single-file-format used by PlaySID on Amiga) in the current directory into
- a .SID and a .DAT file. Please make sure all files have been converted
- successfully, e.g. by counting the number of .DAT files in comparison to
- .SID files. This operation is useful if you like to edit the song
- information files (please also read the previous chapter). Editing a
- separate plain ASCII .SID file is much more easier than editing a binary
- header of a PlaySID data file.
-
- 'psid2dat.exe' includes own online docs and was written by Henrik Isacsson.
- Basically, it is able to perform two jobs. 1) Giving PSID files (i.e.
- PlaySID single-file-format) meaningful filenames by building a name out of
- the header information. 2) Converting like 'psid2sid.exe' together with job
- 1). This really helps a lot when using archive contents from different
- platforms (like Amiga OS), because generally extracting such an archive
- results in loss of filename information.
-
- Also read the file 'faq.doc'.
-
- -------------------------------------------------------------------------------
-
- THE JUKEBOX-FILE FORMAT:
-
- SIDPLAY PLAYLIST
- <data file name including complete path>
- <0 = play default song | 1-255 = song number>
- <seconds to play>
- .
- .
- .
- END | LOOP
-
-
- END stops playing after the last entry
- LOOP causes the jukebox to restart
-
-
- To get an example jukebox playlist file, tag a few files in the
- SIDSHELL selector and press ALT+S to save it. You can than edit/display
- the save file with a simple ASCII editor.
-
- -------------------------------------------------------------------------------
-
- TECHNICAL INFORMATION:
-
- * MOS-6581 Sound Interface Device (SID) emulator:
- - realtime envelope and 8-bit waveform calculation
- - emulation of carrier-modulator ring modulation and synchronization
- - ability to mute single voices
- - playing waveforms in 8-bit mode at up to 44100 Hz
- - optional stereo and quality stereo output (unreal)
-
- * MOS-6502/6510 MPU interpreter:
- - emulation of all valid MOS-6502/6510 instructions
- - emulation of illegal MOS-6502/6510 instructions (part 1+2)
- - full RAM, ROM and I/O bank switching like the real C64
- - allowing use of full 64KB C64 host memory
- - supporting CIA-6526 Timer-A interrupt
- - running either on PAL or NTSC clock speed
-
- * PlaySID (Amiga) compatibility:
- - compatible to PlaySID's single-file-format header v1/v2
- - full compatible to PlaySID's Amiga Workbench icon tooltype info
- - supporting fixed C64 'volume sample' players
- - supporting fixed C64 'Galway-Noise' players
- - using only Accumulator on initialization (option /a)
- - supporting PowerPacker "PP20"-compression
- - supporting SIDSONG mark for Sidplayer .MUS songs
-
- * Soundcard compatibility:
- - supporting Sound Blaster, SB 2.0, SB Pro, SB 16 and compatibles
- - supporting Pro AudioSpectrum, PAS Plus, PAS 16 and compatibles
- - supporting Gravis Ultrasound, GUS Max, GUS 16 and compatibles
- - trying to support "99% hardware compatible Sound Blaster clones"
-
- * General information:
- - 100% 386 compatible macro assembler language code
- - two times and four times fast forward
- - plus optional file conversion tools (AmigaOS <-> PC-DOS)
- - separate tool is able to redirect the output to a .WAV file
- - jukebox version working with listfiles
- - DOS-shell/background jukebox playing
- - support for C64 Sidplayer .MUS files
-
- -------------------------------------------------------------------------------
-
- Greetings, thanks and messages are going to:
-
- Wolfgang Schwendt for C64 docs & tips
- Ron Birk and
- Håkan Sundell for PlaySID and its fake sample docs
- Ethan Brodsky for the info on SB/SB16 programming
- Brandon Higa and for providing first SB docs and
- Steven Eckwielen naming some FTP-sites earlier
- Ingo Meier for revealing a very lame SB 2.0 bug
- Andreas Schildbach for chats, ideas and PlaySID news
- Jan Arnt Diabelez Harries for plenty of ripped musics
- and Steffan Henke
- Agust Arni Jonsson
- Bernhard Schwall for Trans64
- Frank Littmann for the C64-Alive emulator
- Adam Lorentzon for extensive beta testing, moral support,
- good ideas and giving me the opportunity to
- use his WWW account for the SIDPLAY web page
- Henrik Isacsson for providing 'psid2dat.exe'
- Mike Paull for providing 'PEX'
- David S. Strauss for sending the C64 Sidplayer file format
- Andreas Varga for maintaining a SID WWW-homepage
- Karsten Rohrbach Linux ist Klasse :)
-
- Akintunde Omitowoju, Toni Nikkanen (for Morgul), Ben Jos Walbeehm,
- Fredrik Claesson, Roger Dahl, Robert Frahm (for beta testing on a SB clone),
- Eckhard Guether (for extensive beta testing on a PAS16),
- for useful bug'n'beta reports: Dimitri Ars, Tero Kilkanen, Daniel D. Holmes,
- Donald Moore, Henrik Simonsen, Ulrich Steppberger, Michael Wilkes,
-
- and to all my friends, on Internet, in real life, and to those who have been
- forgotten accidentally, and to the rest of the SIDPLAY beta testers and users
- who sent postcards, gave great moral support and bug reports. Keep on !
-
- -------------------------------------------------------------------------------
-
- Now you shouldn't read this file any longer. Start the player and
- enjoy the good old Commodore 64 sound !
-
- -=-
-
-