MSP
Miscellaneous Sound Player 
v0.51
by Sevy & Marp
S & M Software (http://smsoft.zophar.net)

4/24/2000

**** New Features & Changes ****
  Fixed a really dumb bug that caused MOD playing to not work in the
   released binary (v0.50).  An #ifdef had to be changed to #ifndef.
   My apologies for making this mistake.  It disturbs me that it took 
   3 months to discover this ;-).  Many thanks to Mecha for pointing this
   bug out. I personally do not use MOD playing very frequently, so I didn't
   even realize that it was broken in the last release.
  A few small, insignificant (hopefully...) changes otherwise.
  I probably should have updated the cores, but did not in this release.
   I hope to do this in the near future as well as add some new features :-).  

------------
What is MSP?
------------
MSP is a DOS command line prog that plays miscellaneous sound files.

Currently supported formats and abilities:
 - NSF (NES Sound Format)
 - Genecyst GYM files (YM2612/SN76496 Register Dumps)
 - Callus CYM files (YM2151 Register Dumps)
 - WAV/VOC files
 - MIDI files
 - MOD files (.MOD, .XM, .S3M, etc.)
 - MP3/MP2 files
 - Audio CD Tracks (with MSCDEX)
 - Tone Generation (through PC Speaker)
 
Please type: 'msp -i' (without the quotes) for more info.
Please type: 'msp -?' or just 'msp' (without the quotes) for help on how to
use this program.

-----------
Source Code
-----------
MSP is written in C.  I used djgpp with GCC 2.95.2 to compile the released
binary.  You'll need to get Allegro (v3.12 works for sure), LibAmp,
MikAllegro, and zlib for it to compile.  However, if you would just like
to compile it without support for MOD's, MP3's, and compressed GYM's,
define ANOREXIC (ANOREXIC=1) in the MAKEFILE.  You will still need Allegro,
but none of the other libraries.

------------------
Terms & Conditions
------------------
Feel free to play around with the source.  You can go ahead and use parts
(or all) of it if you want.  I really don't care.  But it would be nice
if you gave Marp and I (Sevy) some credit in your program.  The one thing 
required is: DON'T USE THE SOURCE IN A COMMERCIAL APPLICATION.  Also, you
should release the source code of any programs with which you utilize some
MSP source.  Specifically, the YM2151, YM2612, and SN76496 code is subject
to the M.A.M.E. license, as it is from M.A.M.E.  The NSF/NES code is (c)
Matt Conte and has a separate license agreement available in the source
files.

E-Mail me if you have any questions.  Also, send any improvements,
optimizations, and/or new file format code (SPC, etc. maybe?) to me
as well.  I'll give you full credit if I use your code or info.

Use GNU MAKE and the provided MAKEFILE to compile it.

--------
Thanx...
--------
Marp - for co-authoring with me, and improving the program a ton
Matthew Conte (a la Nofrendo/Nosefart) - for writing and letting us use his
    NSF code, and adding support for it himself in MSP :-).  Also for good
    advice on EXE compression awhile back.
Sardu - for creating incredibly excellent emulators.
Zophar - for offering and hosting us on his great site, Zophar's Domain
    (http://www.zophar.net)
loopy (a la loopyNES) - miscellaneous advice
Death Adder - for sound format information
Mecha - for pointing out the MOD bug in v0.50
Author(s) of MikAllegro/MikMod, for a great library.
Authors of UPX, for a great EXE compression program
    Get UPX @ http://wildsau.idv.uni-linz.ac.at/mfx/upx.html
The M.A.M.E. Team, et al - for the great emulator and processor code
Meck, Nate, and Rodimus - chats and testing

Bug reports, questions, comments, etc. can be e-mailed to sevy@zophar.net
ICQ UIN: 11906516

Marp can be contacted with the same info @ ICQ UIN: 2893271
Send him e-mail to marp@technologist.com

If you would like to play GYM and CYM files from within Winamp, check out
YMAMP, Marp's plugin for these files.  It's available @ the MSP web site.

Visit the S & M Software Web Site @
http://smsoft.zophar.net

Peace out,
Sevy

-------
History
-------
New features in v0.50:
  NSF (Nes Sound Format) now supported!!!  It's powered by Matt Conte's
   Nosefart v1.7 engine.  Many thanks go out to Matt for writing and
   submitting this code to us.
  GYM's containing sampled audio can now be played with the sampled audio.
   Currently, Megasis and DGen have the ability to dump GYM's with sampled
   audio in them.
  Marp's new GYM header format is now supported.  Specifications for it are
   available in the source distribution of both MSP and YMAMP.
  Support added to play zlib compressed GYM files.
  Matt Conte added the ANOREXIC definition that will let you compile MSP
   without support for MOD's, MP3's, and compressed GYM's.  Define ANOREXIC
   (ANOREXIC=1) in the MAKEFILE.
  By request, the config file can now be suppressed from creation.  Pass
   the second option '-x' every time you would like MSP to run without
   creating a config file.  
  Updated the YM2151 & YM2612 cores (from M.A.M.E. v0.36b12):
   YM2151: Version 2.101, December, 5th 1999
   YM2612: Version 0.36c
  Marp cleaned up the emulation code (YM2151, YM2612, and SN76496) and
   removed everything that MSP didn't need.  
  Various small code & structural changes to msp.c, etc. 
  S & M Software is now hosted on Zophar's Domain.  The new site is @
   http://smsoft.zophar.net

New features in v0.40:
  Audio CD tracks can now be played!!! Use 'msp -p #', where # is the track
   number.  You must have MSCDEX installed for this to work.
  MSP now generates and uses a configuration file, MSP.CFG, now you can
   toy around with stuff.
  A much better MAKEFILE
  CYM playing now uses v2.100 of Jarek's YM2151 code.
  Now compiled with GCC 2.95.2 
  Now compiled with Allegro v3.12
  Compressed with UPX v0.90
  WDOSX now utilized.  MSP no longer requires cwsdpmi or any other DPMI
   server.

New features in v0.35:
  Support for 8 new file formats using MikAllegro (MikMod).
   New formats: .MOD, .XM, .ULT, .M15, .S3M, .UNI, .MTM, and .STM
   Note:  Not all formats have been tested.  We are confident that they do
   work, however, it cannot be guaranteed.  If you have trouble or success
   with various formats, please inform us. 
  Implemented looping for all sound formats.  Enable it on the command line
   by passing the '-l' switch _after_ the file name that you would like to
   have looped.
  Many comments added in the source code.
  Source code is now warning free upon compilation.
  Some code cleanup. 

New features in v0.30:
  Complete GYM file support (Genecyst YM2612/SN76496 logs) using YM2612 &
   SN76496 code from M.A.M.E. that was really borrowed from GYMX and modified
   slightly.
  Confirmed that the ID3v1.1 MP3 tags work.  We've written a tag editor that
   will let you use ID3v1.1 as well.
  Small tweak to the CYM code.
  Improved command line argument parsing.
  Rewrote OS/Processor detection code.  
  libc keyboard functions now used replacing Allegro functions in some
   places.
  Lucky Lotto Numbers added to the info section '-i'. :-) 

New features in v0.25:
  CYM code re-written, no longer uses CYMPLAY code. 
   Now @ 48KHz, 16-bit, stereo sound.
  CYM code now uses v2.0 of Jarek's YM-2151 code (modified slightly).
  Tone Generator now implemented, using the PC Speaker.
  ID3v1 tag support for MP3 files now implemented.  
   Displays file info when playing.
  Added untested ID3v1.1 support.  
  MAKEFILE added to the source distribution.
  Added OS/Processor detection code that displays when using the '-i' switch. 
  MSP no longer hogs CPU as much as it did before.
  Small amounts of code cleanup.

New features in v0.20:
  Marp has joined me as co-author. 
  CYM file support now rules!!!!
  The program now runs in pure DOS dandily!!!!
  The source code has been completely restructured for the better.
  A bunch of improvements to small things.
  Small code changes here and there. 
  I might be forgetting something... Don't think so though ;-)

New features in v0.15:
  Now compiled with PGCC (Pentium Optimized Compiler)
  Now compiled with Allegro v3.11 (which was compiled with PGCC)
  EXE is now considerably smaller (even before using UPX)
   Size Change -  v0.1:  175,032 bytes
                 v0.15:  138,680 bytes
  MP3's now sound much better because of some new features implemented
  CYM files don't sound as good as in v0.1 -- use that version if you only
   want to play CYM files.  They are much faster though!  Sorry ;-)
  General speed increase throughout the program thanks to PGCC, etc.
  Source Code now commented!!!!  (Don't expect anything great though)
  Still does not work in Pure DOS (I still don't know why.  Tell me if you
   do get it to run.)
  It _will_ run in Win95/98 and Win3.1 DOS boxes.  It will probably work
   in others, but I can't test that myself.


