NAME
    sidplayfp - a C64 and SID chip emulator for playing Commodore 64 music.

SYNOPSIS
    sidplayfp [*OPTIONS*] *datafile*

DESCRIPTION
    Sidplayfp is a music player that emulates various components from a
    Commodore 64 (C64) computer. The result is a program which can load and
    execute C64 machine code programs which produce music and sound.
    Sidplayfp has been designed for accuracy which results in a quite high
    CPU usage. Additional playback modes have, however, been provided to
    allow playback on low-spec machines at the cost of said accuracy.

OPTIONS
    -h, --help
        Display help.

    -h, --help-debug
        Display additional options helpful for debugging.

    -fo*<a|b> <num>*
        Set fade-out time in seconds (default: 0). Ends a(fter) or starts
        b(efore) actual song end time, the specified number of seconds wil
        be added to the tune length when after. If not specified starts
        after. Mostly useful for looping tunes.

    -f*<num>*
        Set audio output frequency in Hz (default: 48000).

    -nf No filter emulation. This will reduce CPU overhead at the cost of
        reduced emulation quality.

    -s  Stereo playback. If the tune is identified as stereo then sid 1 and
        2 become the left and right channels respectively. For three sid
        tunes the chips are mixed as left, center and right.

    -m  Mono playback.

    -v|q[level]
        Verbose or quiet (no time display) console output while playing. Can
        include an optional level, defaults to 1.

    -b*<num>*
        Set start time in [mins:]secs[.milli] format (compatible with
        sid2wav).

    -ds*<addr>*
        Force dual sid environment by adding a second chip at specified
        address. This forces emulation of 2 sid-chips for stereo playback
        even if datafile is identified as only being mono. This occurs in
        the case of the stereo prg format as currently there is no way to
        identify them. Stereo MUS and SID files are however automatically
        detected. The second sid may be installed in the 0xD420-0xD7FF or
        0xDE00-0xDFFF address range. Address may be specified in exadecimal
        (e.g -ds0xd420) or decimal (e.g. -ds54304) format.

    -ts*<addr>*
        Add a third chip at specified address. The sid may be installed in
        the 0xD420-0xD7FF or 0xDE00-0xDFFF address range. Address may be
        specified in exadecimal (e.g -ts0xd440) or decimal (e.g. -ts54336)
        format.

    -u*<num>*
        Mute a channel. May be used more than one time. Channel 1 to 3 are
        for the first SID chip while channels from 4 to 6 are for the second
        one and 7 to 9 for the third.

    -g*<num>*
        Mute samples. May be used more than one time, 1 for the first SID, 2
        for the second one and 3 for the third.

    -p*<num>*
        Set bit precision for file saving. The default is 16 to create 16
        bit signed samples, but can be set to 32 (32 bit float). Other
        values will cause invalid output.

    -o*<num>*
        Select start track number (default: preset).

    -o*<l|s> [num]*
        Option 'l' will select continuous track looping while 's' will play
        only the current track ignoring the others. The options can be
        combined and may include the track selection. The following
        variations are possible: -ol<num>: will loop selected track allowing
        moving to another one; -os<num>: will play selected track and then
        stop; -ols<num>: will loop selected track;

    -t*<num>*
        Set play length in [mins:]secs[.milli] format (0 is endless).

    -v*<n|p>[f]*
        Set VIC clock speed. 'n' is NTSC (America, 60Hz) and 'p' is PAL
        (Europe, 50Hz). Providing an 'f' will prevent speed fixing that
        tries to compensate automatically for the speed difference. Removing
        speed fixing simulates what happens on a real C64. Options can be
        written as: -vnf or -vn -vf.

    -m*<o|n>[f]*
        Set SID chip model. 'o' is the old 6581 and 'n' is the new 8580.
        Providing an 'f' will force the selected model overriding the one
        specified by the tune.

    --digiboost
        Enable digiboost hack for 8580 model so the digi samples become
        audible.

    -r*<i|r>[f]*
        Set resampling mode. 'i' is interpolation (less expensive) and 'r'
        resampling (accurate). Providing an 'f' will provide faster
        resampling sacrificing quality. Fast resampling is available only
        for reSID emulation. Options can be written as: -rif or -ri -rf.

    -w, --wav*[name]*
        Create WAV-file. The default output filename is <datafile>[n].wav
        where [n] is the tune number should there be more than one in the
        sid. This allows batch conversion of sid tunes without them
        overwriting each other. By providing a name it is possible to
        override this default behavior. The output file will be <name> with
        no tune number added and the extension .wav appended if no extension
        is given.

    --au*[name]*
        Create AU-file. The default output filename is <datafile>[n].au.
        Same notes as the wav file applies.

    --resid
        Use VICE's original reSID emulation engine.

    --residfp
        Use reSIDfp emulation engine.

    --sidlite
        Use sidlite emulation engine.

    --hardsid
        Use HardSID device.

    --exsid
        Use exSID device.

    --usbsid
        Use USBSID-Pico device.

    --cpu-debug
        Display CPU register and assembly dumps, available only for debug
        builds.

    --delay=*[num]*
        Simulate C64 power on delay as number of CPU cycles. If greater than
        8191 the delay will be random. This is the default.

    --fcurve=*<num>|auto*
        Controls the filter curve in the ReSIDfp emulation. Ranges from 0.0
        (light) to 1.0 (dark), the default value is 0.5. If set to auto it
        will choose a predefined value for 6581 depending on the tune
        author.

    --frange=*<num>|auto*
        If available controls the filter range for the 6581 in the ReSIDfp
        emulation. Ranges from 0.0 (light) to 1.0 (dark), the default value
        is 0.5. If set to auto it will choose a predefined value for 6581
        depending on the tune author.

    -cw*<w|a|s>*
        Set the strength (width) of combined waveforms. 'w' for weak (thin)
        waves, 'a' for average waves, and 's' for strong (wide) waves.

    -co Enable old caps for 6581 model. Use old 2200pF caps mounted on ASSY
        326298 in place of the standard 470pF caps producing a lower cutoff.

    --noaudio
        Run without an audio output device.

    --nosid
        Run without sid emulation.

    --none
        Run with no audio output device and no sid emulation.

Key bindings
    1-9 Mute/unmute voice. 1-3 are for the first chip and so on.

    a,s,d
        Mute/unmute samples. a for the first chip and so on.

    f   Toggle filter.

    p/space
        Pause/unpause playback.

    h/F1
        Show/hide help.

    Esc/q
        Quit player.

    Up/Down Arrows
        Increase/reset playback speed.

    Left/Right Arrows
        Move to previous/next subtune.

    Home/End Arrows
        Go to first/last subtune.

ENVIRONMENT VARIABLES
    HVSC_BASE
        The path to the HVSC base directory. If specified the songlength DB
        will be loaded from here and relative SID tune paths are accepted.

FILES
    sidplayfp.ini
        The configuration file. See sidplayfp.ini(5) for further details.

    kernal
        The C64 Kernal ROM dump file.

    basic
        The C64 BASIC ROM dump file.

    chargen
        The C64 Character Generator ROM dump file.

BUGS
    The upstream bug tracker can be found at
    <https://github.com/libsidplayfp/sidplayfp/issues/>.

SEE ALSO
    sidplayfp.ini(5)

NOTES
    ROM dumps are not embedded due to copyright issues and must be supplied
    by the user. Check the sidplayfp.ini(5) documentation for configuration
    details and default search paths.

AUTHORS
    Leandro Nini
        Current maintainer.

    Simon White
        Wrote the original Sidplay2.

    Dag Lem
        Wrote the reSID emulation engine.

    Antti S. Lankila
        Wrote the reSIDfp emulation engine as a fork of reSID 0.16.

    The Vice team
        Large part of the emulation is based on the VICE's code.

    André Fachat
        Wrote the original reloc65 utility.

    Michael Schwendt
        Wrote the original SidTune library.

    Mikko Kilponen
        Wrote the original man page.

    Stian Skjelstad
        SID status display.

    Michael Hartmann
        filter curves.

    Thibaut VARENE
        exSID support.

    LouD
        USBSID-Pico support.

    Craig Chamberlain and Harry Bratt
        Authors of COMPUTE!'s Sidplayer.

    David Reid
        Author of miniaudio.

    Victor Zverovich
        Author of fmt.

    Steffen Schümann
        Author of filesystem.

RESOURCES
    Home page: <https://github.com/libsidplayfp/>
    Sidplay2 homepage: <http://sidplay2.sourceforge.net/>
    High Voltage Sid Collection (HVSC): <http://hvsc.c64.org/>
    Compute's Gazette Sid Collection (CGSG): <https://www.c64music.co.uk/>

COPYING
    Copyright (C) 2000-2004 Simon White
    Copyright (C) 2007-2010 Antti Lankila
    Copyright (C) 2009-2015 VICE Project
    Copyright (C) 2010-2026 Leandro Nini

    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
    Free Software Foundation; either version 2 of the License, or (at your
    option) any later version.

    This program is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
    Public License for more details.

    You should have received a copy of the GNU General Public License along
    with this program; if not, write to the Free Software Foundation, Inc.,
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

