SID music

SID music has been and still is collected at several sites throughout the Internet.
The most popular collections are:

  • High Voltage SID Collection (HVSC) - the biggest SID music collection on earth https://www.hvsc.de/

  • Compute’s Gazette SID Collection (CGSC) - A collection of COMPUTE!'s Sidplayer music containing tons of stereo files http://www.c64music.co.uk/

  • Stone Oakvalley’s Authentic SID Collection (SOASC=) - A recording project containing SID music both in SID and MP3 format. https://www.6581-8580.com

  • HVMEC (High Voltage Music Engine Collection) - A collection of music editors, trackers and other music and sound effect makers

Supported File Formats

Table 1. Supported File Formats
Format Description

SID

HVSC format (PSID v1-4, RSID v2,3 or Basic), the old MUS-specific PSIDs are no more supported by this player!

MUS

CGSC stereo format (voices 1-3)

STR

CGSC stereo format (voices 4-6)

DAT

SID music data

PRG

C64 program files (a C64 program)

P00

C64 program files created by the abandoned PC64 emulator

D64

Disk image

G64

Disk image

NIB

Disk Image (read-only support)

TAP

Tape image

T64

Tape program files

REU

Ram Expansion Unit memory dump

CRT

Cartridge memory dump

MP3

the popular and lossy compression sound format (not C64 related)

Table 2. Supported Cartridge Formats

Action Replay

Atomic Power

Comal 80

EasyFlash

Epyx FastLoader

Expert Cartridge

Final Cartridge v1

Final Cartridge v3 (87, 88)

Magic Desk (32Kb, 64Kb and 128Kb)

MikroAss

Generic 8Kb

Ocean Type1

Rexx Datentechnik

Zaxxon

GeoRAM (64kb, 128kb, 256kb, 512kb, 1024kb and 2048kb)

REU (1700: 128 kB, 1750: 512 kB, 1764: 256 kB, 1750 XL: 2 MB and 16 MB which was never produced)

SFX Sound Expander [FM-YAM alike] (OPL1: YM3526 and OPL2: YM3812)

GMod2 (8Kb, 16Kb, 32Kb, 64Kb, 128Kb, 256Kb and 512Kb)

JSIDPlay2 can play:

  • Mono sound

  • Stereo sound

  • 3-SID sound

  • or even switch between MP3 recording and emulation on-the-fly for comparison reasons

We emulate up to 3 SID chips at the same time plugged into a C64 and using configurable base addresses for the second and the third SID chip at:

  • 0xd400 (always reserved for the first SID chip)

  • 0xd420-0xdfff (every 32 bytes)

  • 0xde00

  • 0xdf00

Sound output can be recorded optionally as:

  • WAV (lossless)

  • FLAC (lossless)

  • AAC (lossy)

  • MP3 audio (lossy)

  • AVI video (lossy)

  • MP4 video (lossy)

  • FLV video (lossy)

  • SID dump format (note sheet as CSV)

  • SID registers (register writes and timing as CSV )

Supported Devices

Just to name a few possibilities for SID output, this is the list of currently supported SID devices.

1. JSIDPlay2 comes with two really good software emulation types. One created by Dag Lem (ReSID) or as a really good alternative an enhanced version by Antti S. Lankila (ReSID-fp), that contains emulations of the combined waveforms and distortion emulation as well and is the default for our player.

Beside these software emulation types we support some decent Hardware as well, where you can add the real SID chips inside.

2. HardSID4U, HardSID UPlay and HardSID Uno (USB devices) can be used with up to 4 SID chips, but are hard to find on ebay these days and they are not produced anymore.

3. Additionally we support SIDBlaster USB devices, e.g. SIDBlaster device TicTac Edition. It contains exactly one chip either MOS6581 or MOS8580 per device.

Information to use that device in software like JSIDPlay2 is available here

4. Additionally we support exactly one of ExSID or ExSID+ (USB devices), e.g. exSID USB. It contains exactly two chips one MOS6581 and one MOS8580 per device.

5. If you have created your own hardware device or a software-based implementation of the SID chip, you could choose Network SID Device to use the player with it. To make use of it you will have to implement the Network SID device protocol either hardware or software wise and here you go.

Compatibility

JSIDPlay2 is known to be a very accurate C64 emulator. All tunes you will find should work. It emulates all components of a C64 and some important peripherals. The emulation is cycle exact and passes many test programs.

  • CPU We pass the entire Lorentz suite. The CPU compatibility should be very good.

  • CIA We pass Lorenz suite’s CIA tests, and various VICE testprograms. The CIA compatibility should be very good.

  • VIC We have a reasonably good, cycle-exact simulation of the VIC, and pass some very complicated VICE testprograms such as the irqdma suite. However, some sprite tests like those used by various emutesters, and some inline video mode changes are buggy.

  • C1541 The disk drive is very compatible. All chips are emulated cycle exact, although a few loaders deny to work.

  • ReSID 1.0 beta. Sound work is always ongoing.

Launch JSIDPlay2

Note: Whereas Windows users get an executable (.EXE) to launch:

jsidplay2-4.9.exe # (1)
jsidplay2-console-4.9.exe # (2)
  1. Launch User interface version

  2. Launch Console version

For Java8 to be backward compatible you need for JSIDPlay2 User Interface version a different launch:

jsidplay2-java8-4.9.exe

Other operating systems launch JSIDPlay2 using the following command:

cd Downloads/jsidplay2-4.9
jsidplay2.sh # (1)
jsidplay2-console.sh # (2)
  1. Launch User interface version

  2. Launch Console version

For Java8 to be backward compatible you need for JSIDPlay2 User Interface version a different launch:

cd Downloads/jsidplay2-4.9
jsidplay2-java8.sh

Configuration

JSIDPlay2 user interface version is configured using an XML file.
The first time JSIDPlay2 the user interface version gets started the configuration file is created in the users home directory:

Caution
Please replace my user name "ken" with yours in these examples.

Windows:

C:\Users\ken\jsidplay2.xml

Linux:

/home/ken/jsidplay2.xml

OSX:

/Users/ken/jsidplay2.xml

JSIDPlay2 console version is configured using an INI file.
The first time JSIDPlay2 the console version gets started the configuration file is created in the users home directory:

Windows:

C:\Users\ken\jsidplay2.ini

Linux:

/home/ken/jsidplay2.ini

OSX:

/Users/ken/jsidplay2.ini

If you want to place JSIDPlay2 on an USB stick you can move it to the current working directory as well. Search order is:

  1. Current working directory

  2. Home directory

Tip
If JSIDPlay2 denies to launch the most probable reason is that the configuration can not be read. It is a good idea to move it away and to restart.

Additionally JSIDPlay2 always creates a temporary folder in the home folder, if it does not exist.

Windows:

C:\Users\ken\.jsidplay2

Linux:

/home/ken/.jsidplay2

OSX:

/Users/ken/.jsidplay2

JSIDPlay2 stores downloads, temporary created files and such here.

Distribution variants

JSIDPlay2 exists in two alternative versions:

  • Console version is for execution in a terminal or command prompt. It has no user interface and no graphical output. Its purpose is just to play a SID tune. However it prints out a little text based menu and reacts on keyboard input.

Use INI file: /home/ken/jsidplay2.ini
+------------------------------------------------------+
| Java SIDPLAY - Music Player & C64 SID Chip Emulator  |
+------------------------------------------------------+
| Title        :            Turrican 2-The Final Fight |
| Author       :       Markus Siebold & Stefan Hartwig |
| Released     :                     1991 Rainbow Arts |
+------------------------------------------------------+
| Playlist     :                     1/9 (tune 1/9[1]) |
| Song Length  :                                 03:00 |
+------------------------------------------------------+
Keyboard control (press enter after command):
< > - play previous/next song
h e - play first/last tune
, . - normal/faster speed
p   - pause/continue player
1   - mute voice 1
2   - mute voice 2
3   - mute voice 3
4   - mute voice 1 (stereo-SID)
5   - mute voice 2 (stereo-SID)
6   - mute voice 3 (stereo-SID)
7   - mute voice 1 (3-SID)
8   - mute voice 2 (3-SID)
9   - mute voice 3 (3-SID)
f   - enable/disable filter
g   - enable/disable stereo filter
G   - enable/disable 3-SID filter
q   - quit player
  • User interface version is the more complete C64 emulator with video screen output and access to additional tools. you can create and save favorite tunes and configure completely by keyboard or mouse.

JSIDPlay2 User Interface

Screen Layout

In the following image the general layout of the UI is shown.

JSidplay2 4.9 - Start Screen

The main window is divided in several regions:

  1. Menubar - reveals all possible functions of JSIDPlay2 by a classic menu

  2. Toolbar - For always visible and important settings like emulation, sound device and sampling parameters

  3. Tabs Area - Switch between currently opened views

  4. View - contents of the currently opened view

  5. Statusbar - For the currently chosen settings like chip type, song speed and peripheral device infos

Menubar

The file menu is for loading a tune from file basically.

Table 3. File Menu

File/Load…​

load a tune, reset C64 and immediately start playing

File/Load REU Video…​

Insert a REU (Ram Expansion Unit) memory dump containing video data, reset C64 and immediately start playing using NUVIE video player 1.0

File/Save…​

Save current tune

File/Reset

Reset C64

File/Quit

Quit JSIDPlay2

Selecting a specific View menu entry will open various tabs in the tabs area. Each tab can be opened exactly once.

Table 4. View Menu

View/Video Screen

Show video screen

View/Oscilloscope

Show oscilloscope with real-time SID output

View/Favorites

Show the favorites browser

View/Music Collections/HVSC

Show the music collection HVSC

View/Music Collections/CGSC

Show the music collection CGSC

View/Disk Collections/HVMEC

Show the disk collection HVMEC

View/Disk Collections/Demos

Show the demo disk collection

View/Disk Collections/Magazines

Show the disk magazine collection

View/Tools/SID Dump

Record notes while playing tune

View/Tools/SID Registers

Show register writes while playing tune

View/Tools/Kick Assembler

Use kickassembler to assemble machine code into C64 RAM

View/Tools/Disassembler

Simple Disassembler possibility of the C64 RAM

View/Online/Assembly64

Open Assembly 64 search engine

View/Online/GameBase 64

Open GameBase64 to search for games

View/Online/<website>

Open a web browser view for that site

View/Online/JSIDPlay2 Source Code

Show source code of JSIDPlay2 in a web browser view

View/Printer

Open the printer view (as a replacement for paper)

View/Console

Show console output and error messages

View/Recording

Show recently created recording

The player menu is to control playback of a tune.

Table 5. Player Menu

Player/Pause

Player will be paused

Player/Previous

Play previous song of a tune. After the first 4 seconds the current song is restarted instead.

Player/Next

Play next song of a tune

Player/Normal speed

Play song in normal speed

Player/Fast Forward

Play song twice as fast (up to 5x)

Player/Stop

Stop emulation, song playback stopped

Player/Playlist starts with song 1

Choose playlists to start with start song or song 1

The devices/Datasette menu is the interface to the keys on a magnetic tape data storage device (datasette), where a tape can be inserted to store program data.

Table 6. Devices/Datasette Menu

Devices/Datasette/Record

Press Record key on device

Devices/Datasette/Play

Press Play on device

Devices/Datasette/Rewind

Press Rewind key on device to control storage medium position

Devices/Datasette/Forward

Press Forward on device to control storage medium position

Devices/Datasette/Stop

Press Stop key on device

Devices/Datasette/Reset Counter

Reset the counter of the storage medium position to zero

Devices/Datasette/Enable turbo tape for t64

Enable turbo tape for t64

Devices/Datasette/Insert Tape…​

Insert a tape into the datasette (.TAP file format). Different file formats are converted

Devices/Datasette/Eject Tape…​

Physically eject a tape from the datasette

The devices floppy menu is the interface to the floppy disk device using a disk as the storage medium (a thin and flexible magnetic storage medium) for data storage

Table 7. Devices/Floppy Menu

Devices/Floppy/Turn Drive On

Switch power on/off key

Devices/Floppy/Drive Sound

Play pre-recorded floppy disk drive sound for disk rotation and track change

Devices/Floppy/Parallel Cable

Connect floppy disk drive and C64 using a parallel cable for faster disk read/write speed

Devices/Floppy/jiffyDos

Use floppy speeder

Devices/Floppy/Floppy Type/C1541

Choose C-1541 as the floppy disk drive device (old model)

Devices/Floppy/Floppy Type/C1541-II

Choose C-1541-II as the floppy disk drive device (new model)

Devices/Floppy/40 Track handling/Never Extend

Normally a disk uses 35 tracks, but can be formatted using up to 40 tracks. This option means a disk will never extend to 40 tracks.

Devices/Floppy/40 Track handling/Ask On Extend

Ask the user, if the floppy disk should extend to 40 tracks.

Devices/Floppy/40 Track handling/Extend On Access

The floppy disk should extend to 40 tracks automatically.

Devices/Floppy/Memory Expansion/8K RAM Expansion 0x2000

The floppy disk drive memory gets 8Kb extra RAM at 0x2000.

Devices/Floppy/Memory Expansion/8K RAM Expansion 0x4000

The floppy disk drive memory gets 8Kb extra RAM at 0x4000.

Devices/Floppy/Memory Expansion/8K RAM Expansion 0x6000

The floppy disk drive memory gets 8Kb extra RAM at 0x6000.

Devices/Floppy/Memory Expansion/8K RAM Expansion 0x8000

The floppy disk drive memory gets 8Kb extra RAM at 0x8000.

Devices/Floppy/Memory Expansion/8K RAM Expansion 0xA000

The floppy disk drive memory gets 8Kb extra RAM at 0xA000.

Devices/Floppy/Insert Disk…​

Insert a disk into the floppy disk drive

Devices/Floppy/Eject Disk

Remove disk out of the floppy disk drive

Devices/Floppy/Reset Floppy

Reset floppy disk drive. Normally it does not have a reset button and will be reset altogether with the C64

Devices/Floppy/Create and Insert Empty Disk (D64)

Insert a new empty floppy disk into the floppy disk drive

The devices printer menu is the interface to the printer device using a printer tab with graphical output as the paper to print on. The printer MPS-803 is currently supported.

Table 8. Devices/Printer menu

Devices/Printer/Turn Printer On

Switch power on/off key

The devices cartridge menu is the interface to the various multi-purpose cartridges currently supported by JSIDPlay2.

Table 9. Devices/Cartridge menu

Devices/Cartridge/Insert Cartridge…​

Insert a multi-purpose cartridge. The cartridge type will be auto-detected by reading the cartridge header.

Devices/Cartridge/GeoRAM/Insert GeoRAM…​

Insert a RAM expansion cartridge GeoRAM. The RAM size is determined by the cartridge contents.

Devices/Cartridge/GeoRAM/GeoRAM (64KB)

Insert a RAM expansion cartridge GeoRAM of 64Kb size with empty contents.

Devices/Cartridge/GeoRAM/GeoRAM (128KB)

Insert a RAM expansion cartridge GeoRAM of 128KB size with empty contents.

Devices/Cartridge/GeoRAM/GeoRAM (256KB)

Insert a RAM expansion cartridge GeoRAM of 256KB size with empty contents.

Devices/Cartridge/GeoRAM/GeoRAM (512KB)

Insert a RAM expansion cartridge GeoRAM of 512KB size with empty contents.

Devices/Cartridge/GeoRAM/GeoRAM (1024KB)

Insert a RAM expansion cartridge GeoRAM of 1024KB size with empty contents.

Devices/Cartridge/GeoRAM/GeoRAM (2048KB)

Insert a RAM expansion cartridge GeoRAM of 2048KB size with empty contents.

Devices/Cartridge/GeoRAM/Insert REU…​

Insert a RAM expansion cartridge REU. The RAM size is determined by the cartridge contents.

Devices/Cartridge/GeoRAM/REU 1700 (128KB)

Insert a RAM expansion cartridge REU of 128KB size with empty contents.

Devices/Cartridge/GeoRAM/REU 1750 (512KB)

Insert a RAM expansion cartridge REU of 512KB size with empty contents.

Devices/Cartridge/GeoRAM/REU 1764 (256KB)

Insert a RAM expansion cartridge REU of 256KB size with empty contents.

Devices/Cartridge/GeoRAM/REU 1750 XL (2MB)

Insert a RAM expansion cartridge REU of 2MB size with empty contents.

Devices/Cartridge/GeoRAM/REU (16MB)

Insert a RAM expansion cartridge REU of 16MB size with empty contents. This REU size has never been manufactured, but is very popular in the scene.

Devices/Cartridge/SFX Sound Expander [FM-YAM alike]/SFX Sound Expander (OPL1: YM3526)

Insert Sound Expander Module with OPL1

Devices/Cartridge/SFX Sound Expander [FM-YAM alike]/SFX Sound Expander (OPL2: YM3812)

Insert Sound Expander Module with OPL2

Devices/Cartridge/Action Replay V6.0

Insert multi-purpose cartridge Action Replay V6.0

Devices/Cartridge/Eject Cartridge

Disconnect multi-purpose cartridge from C64

Devices/Cartridge/Freeze

Press the freeze button on the multi-purpose cartridge

The devices hardcopy menu is to make screenshot of the video screen of the C64.

Table 10. Devices/Hardcopy menu

Hardcopy/GIF

Create a hardcopy of the C64 video screen output in GIF format. Output is stored in the temporary folder of JSIDPlay2.

Hardcopy/JPG

Create a hardcopy of the C64 video screen output in JPG format. Output is stored in the temporary folder of JSIDPlay2.

Hardcopy/PNG

Create a hardcopy of the C64 video screen output in PNG format. Output is stored in the temporary folder of JSIDPlay2.

The extras menu provides special functionalities.

Table 11. Extras menu

Extras/Ultimate64

Show Ultimate64 audio and video data shared over socket connection.

The settings menu opens a new window to configure JSIDPlay2. All settings will be persisted.

Table 12. Settings menu

Settings/Audio Settings…​

Open the audio settings window of JSIDPlay2.

Settings/Emulation Settings…​

Open the emulation settings window of JSIDPlay2.

Settings/WhatsSID Settings…​

Open the WhatsSID settings window of JSIDPlay2.

Settings/Joystick Settings…​

Open the joystick settings window of JSIDPlay2.

Settings/Proxy Settings…​

Open the proxy settings to be used for internet connections.

The help menu provides access to user help and credits.

Table 13. Help menu

Help/Userguide

Open the userguide of JSIDPlay2.

Help/Java documentation

Open the Java API documentation of JSIDPlay2.

Help/Check For Updates

Check for updates of JSIDPlay2.

Help/About

Open the about box with the credits of all supporters of JSIDPlay2.

Tabs Area

Shows a selection of currently opened tabs.

View

Shows the contents of the currently selected tab.

Statusbar

The status bar shows currently active settings and emulator status. Additionally a progress bar shows background task activity. Status bar infos are comma separated.

Table 14. Status information

"PAL" or "NTSC"

Shows the currently chosen video norm. PAL region clock frequency is 985248.4 whereas NTSC region clock frequency is 1022727.14.

"RESID" or "RESIDFP" or HardSID4U(Device 0 as MOS6581)/ 2 Devices

Shows the currently used SID emulation engine. RESID is ReSID 1.0 beta by Dag Lem whereas RESIDFP is Antti S. Lankila’s resid-fp (distortion simulation). If multiple SIDs are used, each SIDs emulation type is printed separated by a plus sign. In case of hardware SIDs e.g. HARDSID4U each device number and configured chip model is printed in brackets altogether with the total device count.

"MOS6581" or "MOS8580"

Shows the currently plugged-in SID chip type, that is emulated. If multiple SIDs are used, each SIDs SID chip type is printed separated by a plus sign and each additional SIDs base address is printed hexadecimal in brackets, eg. "MOS6581(at 0xd420)".

"Player: DMC"

Shows the currently identified player of the tune, e.g. Demo Music Creator System (DMC). Players are identified by memory analysis of the play routine identity scanner tool SIDId. A click on the tool tip of the status bar opens a browser window of the online available player.

PSID64

Shows if PSID64 format has been detected.

REU

Shows the cartridge name of the currently inserted cart.

SPEED: 2.0

Shows the measured tune speed.

"Song: 1/7"

Shows the currently played song number and the available number of songs within a tune, but only if more than one song is available.

"Floppy Track: 18"

Shows the read/write head position of the floppy disk drive, if a disk has been inserted and the motor is on.

"Datasette Counter: 001"

Shows the counter of the storage medium position, if a tape has been inserted and the motor is on.

250MB/4096MB

Shows the current memory usage.

"Time: 00:01.000/04:37.000"

Shows the current playing time of a tune or song in minutes, seconds and milliseconds. If the song length is well-known, it is separated by a slash and printed as well.

"Recording: /path/to/filename"

Shows the currently recorded filename.

JSIDPlay2 Server

JSIDPlay2 has a built-in server mode.

Network SID Device Interface

Create a software or hardware replacement for a SID by implementing the Network SID Device protocol, then control it by JSIDPlay2.

FAQ

How to Record SIDs as MP3 by Command Line

Record your favorite SID music to MP3 files.

Glossary

C64

Commodore 64 (C64) is a very popular Home Computer of the 80’s

SID

SID (Sound Interface Device) is the name of the sound chip of the Commodore 64. It is a synthesizer which can be programmed in Basic and Assembler to produce sound output.

SID music

SID music or alternatively a SID tune is a program running on the C64, that produces sound. It is therefore required to emulate a complete C64 in order to run any program producing sound. SID is also a file extension used for SID tunes. A SID tune sometimes contains multiple songs. Emulators such as JSIDPlay2 are able to play the songs contained in a SID tune.

JSIDPlay2

JSIDPlay2 is a software that makes it possible to listen to SID music of the Commodore 64. Beside that, it is a complete, very compatible and cycle exact Commodore 64 emulator. It emulates not just a naked C64, but many additional devices as well. Datasette, Floppy, Printer and multi-purpose cartridges. On top of that many useful tools dealing with SIDs have been added.

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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA