Skip to content

Latest commit

 

History

History
257 lines (208 loc) · 14.6 KB

File metadata and controls

257 lines (208 loc) · 14.6 KB

USBSID-Pico software manual

Disclaimer

Supported platforms

For configuring your board itself (not the software listed below), see the USBSID-Configtool-manual file for the GUI tool, or the USBSID-Pico-firmware-manual file for the command line cfg_usbsid tool.
In active development
Linux: Vice, JSidplay2, Denise, SidplayFp, RetroDebugger, SidBerry, USB Midi, WebUSB & ASID (in webbrowser) SID Play
Windows: Vice, JSidplay2, Denise, SidBerry, USB Midi, WebUSB & ASID (in webbrowser) SID Play
Android: USB Midi, WebUSB & ASID (in webbrowser) SID Play
Amiga: PlaySID library

Drivers

Linux Udev rules

In the examples/udev directory you can find the udev rules that I use on Linux.
This purely an example file that you can use and change to your own needs. Steps required for this to work

# Check if you are in the plugdev group with the groups command
groups
# If not, add yourself to the plugdev group, then log out and in
sudo usermod -aG plugdev $USER
# Copy the udev ules file to the correct directory
sudo cp 69-usbsid-permissions.rules /etc/udev/rules.d
# Now reload the udev rules
udevadm control --reload-rules && udevadm trigger
# Not working? Try reloading the service
sudo systemctl restart udev

Windows driver

Use Zadig to install the correct driver. Replace the driver for USBSID-Pico Data with WinUSB.
zadig list all devices zadig install driver

Test and configure

After setting up your linux udev rules or Windows driver check, configure and test your board on the USBSID config tool website
usbsid config connect usbsid config checkversion
For more information on how to configure your board, please refer to the Firmware manual

Supported software

Each section covers the basic use of USBSID-Pico with the software under that section. For more in depth information please refer to the repective website and or github repo of the software.

Deepsid

On the deepsid website you can select WebUSB (Hermit) or ASID (MIDI) for playing PSID files using a supported browser.

WebUSB: After selecting WebUSB (Hermit) you need to click the CONNECT button and select USBSID-Pico in the pop-up window. Due to the autoplay feature of Deepsid, you might have to press STOP a couple of times before the CONNECT button will work.

ASID: After selecting ASID (MIDI) you need to select USBSID-Pico in the dropdown box next to the line that says MIDI port for ASID. It might require refreshing the page a couple of times for the box to be filled with midi devices.
Supported browsers:

  • Firefox supports ASID.

  • Chrome supports both WebUSB and ASID.

  • Edge supports both WebUSB and ASID.

SidBerry

SidBerry supports PSID files only and can play SID files on USBSID-Pico via CDC (default) or on ASID supporting players via command line arguments.
General Linux usage:

# to play sidfile.sid on USBSID-Pico
usbsidberry path/to/sidfile.sid
# to detect and print available midi devices
usbsidberry -midi
# to play sidfile.sid via ASID on USBSID-Pico where `1` is the respective port of the ASID device
usbsidberry -asid 1 path/to/sidfile.sid

Basic Windows usage:

# to play sidfile.sid on USBSID-Pico
usbsidberry.exe path/to/sidfile.sid
# to detect and print available midi devices
usbsidberry.exe -midi
# to play sidfile.sid via ASID on USBSID-Pico where `1` is the respective port of the ASID device
usbsidberry.exe -asid 1 path/to/sidfile.sid

Vice

This section covers the use of USBSID-Pico with Vice under Linux, Windows and MacOS for the GTK and SDL2 versions of vsid and x64sc

Warning
Switching on readmode and then switching it off again without restarting the PCB and Vice will result in distorted audio

Command-line arguments

Command-line arguments override any previously configured items in your vicerc config file.
All three OS support the same command-line arguments for both vsid and x64sc.
However, the sound device argument is OS specific and vsid supports a maximum of 3 SID chips
Note that if you define extra SID’s and their addresses, these addresses need to point to the required address for the SID tune or Software you want to use. The Vice USBSID-Pico driver will automatically convert each write to the in firmware configured SID chip.
Below is an excerpt from the Vice manual with information about each command-line option

-usreadmode <0 or 1>
    Enable USBSID-Pico read mode. When enabled, this mode allows for reading from SID registers that provides a means to configure an FPGASID that is seated on USBSID-Pico. This mode is not suited for regular audio use as it disables cycle exact writing & digiplay. Default is (SidUSBSIDReadMode=0) for off, (SidUSBSIDReadMode=1) for on.

-usaudiomode <0 or 1>
    Set USBSID-Pico PCB (v1.3) audio mode to Stereo or Mono. When enabled the audio of SID socket 1 will be output over the left audio channel and the audio of SID socket 2 over the right channel of USBSID-Pico's audio out. Default is (SidUSBSIDAudioMode=0) for Mono, (SidUSBSIDAudioMode=1) for Stereo.

-usdiffsize <number divisable by 8>
    Specifies the minimal difference in bytes to use between the head and tail of the drivers ringbuffer, this allows for some audio quality tuning on slower systems. In most cases the default value of 64 bytes (also the size of a USB packet) is the right setting for best audio quality. (SidUSBSIDDiffSize=32-256).

-usbuffsize <number divisable by 8>
    Specifies the size in bytes to use as ringbuffer to store temporary data when sending SID writes to USBSID-Pico, this allows for some audio quality tuning on slower systems. In most cases the default value of 8192 bytes is the right setting for best audio quality. (SidUSBSIDBufferSize=512-16384).

x64sc GTK

ALT+O or click Preferences/Settings to open the settings menu.
Sound configuration
The sound configuration will require tuning for the computer you use it on.
In the screenshot below you can see that for this system I use the pulse audio driver and have the Buffer size set to 1 millisecond and Fragment size set to very small.
These 3 settings can make or break the audio quality.
x64sc soundsettings linux gtk
SID configuration
For any audio to come out of the board you need to select USBSID-Pico as SID engine.
If you want to use more the one SID then you need to select the amount of Extra SIDs and set their I/O addresses.
x64sc sidsettings linux gtk

x64sc SDL2

Press F12 (Linux/Windows) / F10 (MacOs) to open the settings menu.
Sound configuration
The sound configuration will require tuning for the computer you use it on.
In the screenshot below you can see that for this system I use the pulse audio driver and have the Buffer size set to 25 milliseconds and Fragment size set to very small.
These 3 settings can make or break the audio quality.
x64sc soundsettings linux sdl2
To get to these settings follow the following settings path:
Sound settingsOutput driver ⇒ Select the driver you want to use
Sound settingsBuffer size ⇒ Select the milliseconds you want to use
Sound settingsFragment size ⇒ Select the size you want to use
SID configuration
For any audio to come out of the board you need to select USBSID-Pico as SID engine.
If you want to use more the one SID then you need to select the amount of Extra SIDs and set their I/O addresses.
x64sc sidsettings linux sdl2
To get to these settings follow the following settings path:
Machine settingsModel settingsSID settingsSID modelUSBSID-Pico
Machine settingsModel settingsSID settingsExtra SIDs ⇒ select the amount of extra SID’s and set their addresses

vsid GTK

ALT+O or click Preferences/Settings to open the settings menu.
Sound configuration
The sound configuration will require tuning for the computer you use it on.
In the screenshot below you can see that for this system I use the pulse audio driver and have the Buffer size set to 1 millisecond and Fragment size set to very small.
These 3 settings can make or break the audio quality.
vsid soundsettings linux gtk
SID configuration
For any audio to come out of the board you need to select USBSID-Pico as SID engine.
If you want to use more the one SID then you need to select the amount of Extra SIDs and set their I/O addresses.
vsid sidsettings linux gtk

vsid SDL2

Press F12 (Linux/Windows) / F10 (MacOs) to open the settings menu.
Sound configuration
The sound configuration will require tuning for the computer you use it on.
In the screenshot below you can see that for this system I use the pulse audio driver and have the Buffer size set to 10 milliseconds and Fragment size set to very small.
These 3 settings can make or break the audio quality.
vsid soundsettings linux sdl2
To get to these settings follow the following settings path:
Sound settingsOutput driver ⇒ Select the driver you want to use
Sound settingsBuffer size ⇒ Select the milliseconds you want to use
Sound settingsFragment size ⇒ Select the size you want to use
SID configuration
For any audio to come out of the board you need to select USBSID-Pico as SID engine.
If you want to use more the one SID then you need to select the amount of Extra SIDs and set their I/O addresses.
vsid sidsettings linux sdl2 To get to these settings follow the following settings path:
SID settingsSID modelUSBSID-Pico
SID settingsExtra SIDs ⇒ select the amount of extra SID’s and set their addresses

jsidplay2

This section covers the use of USBSID-Pico with jsidplay2

Settings

After starting JSidplay2 you can choose USBSID-Pico from the dropdown menu that says emulation and set the board to mono or stereo using the settings dropdown

jsidplay2 sid config jsidplay2 usbsid config

c64jukebox

c64jukebox website that runs on jsidplay2 available at haendel.ddns.net:8443/static/c64jukebox.vue

To enable USBSID-Pico in a WebUSB supporting browser (like Chrome) click on the Hardware tab and then click Connect in the USBSID-Pico box. After connecting search for any SID file in the search tab and click the play button.

Warning
Because this play method is not perfected yet there will be delays when selecting a follow up tune and pressing stop or pause. This can be circumvented enabling use await for USBSID write on the Hardware tab, but this will severely impact playing tunes that rely on timing

c64jukebox usbsid config

Denise

This section covers the use of USBSID-Pico with the C64 emulator of Denise

USBSID settings

Open the C64 settings menu and go to the audio tab. Under this tab on the left side you will see an USBSID-Pico option
Here you can enable or disable the use of USBSID-Pico. If you have any audio issue you can try to increase the buffer and diff sizes. denise usbsid config

SID settings

Open the C64 settings menu and go to the audio tab. Under this tab on the left side you will see a Chip option
Here you can configure the amount of SID’s you have on the board. Be sure to try the different settings for better output. denise sid config

Retrodebugger

t.b.d.

sidplayfp

t.b.d.

License

Author: LouD - generated on 2026-09-03