view INSTALL @ 984:2b6184fa7e4a

author Matti Hamalainen <>
date Sun, 31 Mar 2013 11:43:27 +0300
parents 2531396c2718
children bafb3f102e91
line wrap: on
line source

This document describes overall requirements and procedure
for installation of XMMS-SID package, please read it carefully!
For more information and tips, please refer to README and FAQ.

- Last version of XMMS1, version 1.2.11.

- Last versions of Gtk+1 and Glib1: 1.2.10 (

- ANSI-C and C++-compiler. Preferably GCC along with rest of
  the GNU toolchain. I have no idea whether this compiles with
  any other compiler ... sorry.

- You need AT LEAST one of the following emulation libraries:

   * libSIDPlay1
   * libSIDPlay2 or libSIDPlay-FP (mutually exclusive)

  Only one emulator backend library is required, but all are
  supported with compile & run-time configuration. You may also
  need some supplementary libraries for each emulator library.
  See below for more information.

Emulator library selection hints
Some words on which emulation library you should choose to install
and use - it depends somewhat on your system and personal preferences.

- libSIDPlay v1: This is the old and original emulation library. Its
  emulation is "frame-based" and not very accurate. The waveforms
  produced are harsher and emulation of SID filter is far from

  libSIDPlay v1 requires very little CPU power, it is faster and
  may have fewer bugs due to being more mature software. Many
  OS distributions have pre-built packages of it, not something that
  can be said of libSIDPlay v2. Some people may even like the
  harsher sound produced by libSIDPlay v1.

  Drawbacks are: worse emulation, eventually weakening compability
  as new SID-tunes/files are ripped into "RSID"-format which
  libSIDPlay v1 does NOT support.

- libSIDPlay2+reSID or HardSID: A much more accurate emulation
  framework. Unfortunately the original fork has mostly stalled,
  though works. Much heavier CPU-load compared to libSIDPlay1,
  but not as heavy as libSIDPlay-FP.

- libSIDPlay-FP: Fork of libSIDPlay2. New, next generation modular
  SID-emulation framework. Along with reSID-library it produces
  probably most accurate software-emulated representation of
  SID-chip available. This, however, comes at high cost:
  libSIDPlay2/FP tends to eat CPU like popcorn.

  It is also less spread, not packaged in distributions (that I know of,
  at the time of writing of this), so you may have to roll your own.

  Also the API-stability of libSIDPlay2/FP is not yet 100%, there may
  be changes. Bugs are evident, though many of them will be fixed

Conclusion thus is as follows: If you are using a VERY old system with not
much spare CPU-power, choose libSIDPlay v1. On a relatively "recent"
system (Pentium-M, Pentium4 1GHz+) you may wish to choose libSIDPlay v2.

On a Intel Core2 or Intel Core i5/7 level system you could choose
libSIDPlay-FP, if you have ~20% CPU to spare.

Where to get XMMS?
Latest version of XMMS should be available from:

Please refer to XMMS documentation for information on its usage
and installation, etc. You probably have XMMS already installed,
but if you installed from a pre-built package, make sure that
you have corresponding xmms-devel -package also.

Where to get libSIDPlay1?
Typically your OS distribution and/or some supplementary package
repository may contain libSIDPlay1 packages. Usually those work
well, but remember to also install the corresponding -dev/-devel
package so that XMMS-SID can be compiled.

For example, in Debian (or Ubuntu):

$ apt-get install libsidplay1-dev

If your OS/distribution does not offer packaged libSIDPlay1, head to:

Where to get and how to install libSIDPlay2?
You might have it in your $OS_DISTRIBUTION of preference. For example
Debian should have a compatible set of packages available, try:

$ apt-get install libsidplay2-dev libresid-builder-dev

If your OS/distribution does not offer packaged libSIDPlay1, head to:

Where to get libSIDPlay-FP?

$ apt-get install libsidplayfp-dev

Or head to:

Version 0.3.7 should be compatible. Earlier and later ones might not,
as the API seems to be in flux at the moment.

Building a Mercurial-version
To build a version of XMMS-SID from Mercurial repository,
you need to have following tools installed:

 - GNU autoconf 2.65 or newer
 - GNU automake 1.11 or newer
 - GNU libtool 2.4.2 or newer
 - Glade for Gtk+ 1.2 programs (I use Glade 0.6.4)

Source repository can be fetched via Mercurial using:

$ hg clone xmms-sid-hg

If you have all required tools installed, you can then just

$ cd xmms-sid-hg
$ hg update tip
$ ./

Running should generate all necessary build-files,
assuming everything went well. After successfull bootstrapping,
you should be able to compile the package normally, following
steps described below.

Installing XMMS-SID
When you have the requirements installed and working succesfully,
you may try compilation and installation of XMMS-SID.

Invoke configure script (use 'configure --help' for help)

$ ./configure

The configure script will print out lots of information and in
the end it tells you some of the selected build options.

NOTICE! On some systems it may be necessary to force 'configure'
to use gcc instead of g++ with following syntax:

$ CC=gcc CXX=g++ ./configure

If configure passed without errors, try compilation. (Depending
on your system, you may need to invoke 'gmake' instead of 'make'.)

$ make

If that went OK too, then you may try installation. Again, you
may need to invoke 'gmake' instead of 'make'. Install globally
to whole system (as root):

# make install

or install for current user only: (NOTICE! Locales and data files
will not be installed with this method)

$ make install-user

Assuming all went correctly, XMMS-SID is now installed. You should
now start or re-start XMMS and configure XMMS-SID's various options.

Post-installation configuration
To gain full advantage of using XMMS-SID, you need to configure it.
XMMS-SID can be configured just like any other XMMS plugin, in XMMS
do as follows:

 -> Press <ctrl+p>
 -> Select "Audio I/O Plugins"-tab
 -> Choose "XMMS-SID x.y.z []" from the list
 -> Click "Configure"

Please refer to README for more information about configuration.