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. Requirements ============ - Last version of XMMS1, version 1.2.11. - Last versions of Gtk+1 and Glib1: 1.2.10 (http://www.gtk.org/) - 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 accurate. 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 eventually. 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: http://www.xmms.org/ 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: http://www.tnsp.org/?p=libsidplay1 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: http://www.tnsp.org/?p=libsidplay2 Where to get libSIDPlay-FP? =========================== $ apt-get install libsidplayfp-dev Or head to: http://sourceforge.net/projects/sidplay-residfp/ 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 http://tnsp.org/hg/xmms-sid xmms-sid-hg If you have all required tools installed, you can then just $ cd xmms-sid-hg $ hg update tip $ ./bootstrap.sh Running bootstrap.sh 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 -> Select "Audio I/O Plugins"-tab -> Choose "XMMS-SID x.y.z [libxmmssid.so]" from the list -> Click "Configure" Please refer to README for more information about configuration.