Skip to content

Deltafire/SCPlayer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SAM Coupé song replayer library
===============================

Background:

 The SAM Coupé is an 8-bit British home computer that was first released in
 late 1989. It is commonly considered a clone of the Sinclair ZX Spectrum
 computer, since it features a compatible screen mode and emulated
 compatibility, and it was marketed as a logical upgrade from the Spectrum.
 Six channel, 8 octave stereo sound is provided by a Philips SAA 1099 chip.


Purpose:

 The purpose of this library is to replay SAM Coupé song files (these
 generally have the extension .sng or .cop).  This is achieved by the use of
 a Z80 CPU emulator coupled to a SAA1099 audio chip emulator, with some RAM
 thrown in.  The Z80 replayer routine is either included with the song
 files, or the E-Tracker replayer is used (this is stored in the library
 itself).

 It is intended that this library is used to develop input plugins for
 multi-format media players.  However, a simple SDL test player (scplay) is
 included for reference and to test playback.


Installation:

 This project uses the cmake build system. Typical build steps are as follows:

   $ mkdir build
   $ cd build
   $ cmake ..
   $ make
   $ make install (optional)

The command line player 'scplay' is built only if SDL is detected.


Usage:

 For the command-line player (if installed and in the path):

   scplay <filename>

 The following command line arguments are accepted:

   -d <duration> stop playback after 'duration' seconds
   -n            disable looping when playing eTracker songs
   -o            write audio to stdout, raw S16 stereo

 For use of the replayer library in your own projects, you will need the
 header file "SCPlayer.h" and the libscplayer library file. If you have
 installed the package, these should be available in PREFIX/include and
 PREFIX/lib. Please refer to the source code of scplay.cpp for an example
 usage of this library.

   1. Include "SCPlayer.h"
   2. Create a SCPlayer object (named player for the purpose of these
      directions).
   3. player.load(<filename>)
   4. player.init(<Mixer frequency>)
   5. Call player.generate(<pointer to buffer>, <length in bytes>) to
      generate audio samples.
   6. Link with libscplayer.


Credits:

 SAASound library:
   Dave Hooper <dave@rebuzz.org>
   http://sourceforge.net/projects/saasound/

 Z80 CPU emulator:
   Marat Fayzullin
   http://fms.komkon.org/
 
E-Tracker replayer (Z80 binary):
   Ethanol Software Inc (ESI)
     Maciej J. Woloszyk (Mat)
     Andrzej Siuda (Ziutek)

 This package/library:
   Christopher O'Neill <code@chrisoneill.co.uk>

 Thanks to Spot / Up Rough for the idea, motivation and beta testing.