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
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) |
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.11.exe # (1)
jsidplay2-console-4.11.exe # (2)
-
Launch User interface version
-
Launch Console version
For Java8 to be backward compatible you need for JSIDPlay2 User Interface version a different launch:
jsidplay2-java8-4.11.exe
Other operating systems launch JSIDPlay2 using the following command:
cd Downloads/jsidplay2-4.11
jsidplay2.sh # (1)
jsidplay2-console.sh # (2)
-
Launch User interface version
-
Launch Console version
For Java8 to be backward compatible you need for JSIDPlay2 User Interface version a different launch:
cd Downloads/jsidplay2-4.11
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:
-
Current working directory
-
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.
The main window is divided in several regions:
-
Menubar - reveals all possible functions of JSIDPlay2 by a classic menu
-
Toolbar - For always visible and important settings like emulation, sound device and sampling parameters
-
Tabs Area - Switch between currently opened views
-
View - contents of the currently opened view
-
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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. |
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.
"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.
Please refer to the JSIDPlay2 Server API Documentation
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.
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.
Appendix A: Copyright and License
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