Eine neue Kategorie muss her!
Die Retro Szene ist in den letzten Jahren wieder erstärkt. Es gibt unheimlich viele, gute & neue Dinge zu entdecken.
Ich habe seit einigen Jahren mein Faible für die alten Retro Dinge wieder entdeckt und versuche diese
jetzt wieder mehr in meinen Tagesablauf zu integrieren.
Was nicht einfach ist, weil es auch unheimlich viel Zeit in Anschpruch nimmt und ich die nicht immer
aufbringen kann.
Und natürlich muss dann dieses Quentchen Lust auch noch dabei sein …
USBSID
Ich bin irgendwann im letzten Jahr LouDnL über den Weg gelaufen.
Keine Ahnung, ob es bei GitHub, bei Mastodon
oder dem damaligen Twitter war. Ich bekomme es nicht mehr zusammen.
Aber ich fand sein Projekt ziemlich genial: Einen RaspBerry Pico mit 2 SIDs zusammen auf einem Board. Mit dem entsprechenden Player kommt dann das gute Zeug in Stereo aus den Lautsprechern.
Lieferzustand
Man kann das Board voll bestückt und getestet im Retro8bitShop erwerben. (Aufgrund von meinem Fanboygehabe, habe ich meines direkt von Loudnl erhalten :D)
Dazu fehlt noch ein Raspberry Pico …
… und - natürlich - die SID Chips.
Die Original sind kaum noch zu bekommen, daher bin ich auch Nachbauten ausgewichen und habe mich für
ARMSID entschieden.
Diese sollen von allen Verfügbaren Nachbauten am Originalgetreuesten sein. Ob ich das überhaupt hören kann? Ich glaube nicht …
Auf Grund einer Fehlinterpretation des Beschreibungstextes, habe ich 2 Stück geordert.
Braucht man nicht! Wenn ihr den ARM2SID +FM kauft, bekommt ihr 2 Stück!
Installation
Die Hardwareinstallation war einfach. Chipfs aufs Board stecken, fertig.
Bei der Software ging es ähnlich flott. Ich benutze Linux (ein Arch Clone) und habe dementsprechend meine Freiheiten.
Der folgende Part wird sich also eher mit Linux (und im speziellen mit Arch) beschäftigen.
udev
Als erstes müssen die udev
Regeln erstellt werden.
Ich habe hier 2 erstellt:
Die Regel mit Vendor 2e8a
und der ProductId 0003
entsprechend dem Gerät, welches am USB Port sichtbar wird, wenn man es
blank und ohne Firmware an seinen Rechner anschließt. (Wer nicht weiß, wie man an die Daten kommt, führt ein lsusb
aus!)
Damit bekomme ich den Pico immer unter dem gleichen Devicenamen im System zu fassen und muss nicht immer nachschauen, was sich
der DeviceManager ausgewürfelt hat.
Die original Regel (vendor: cafe
und product: 4011
) kommen erst nach der Installation der Firmware zum tragen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cat /etc/udev/rules.d/69-usbsid-permissions.rules
# Copy to /etc/udev/rules.d
# Reload udev with:
# sudo udevadm control --reload-rules && sudo udevadm trigger
ACTION=="*", KERNEL=="ttyUSB[0-9]*",MODE="0777", GROUP:="plugdev", TAG+="uaccess"
ACTION=="*", KERNEL=="ttyACM[0-9]*",MODE="0777", GROUP:="plugdev", TAG+="uaccess"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="cafe", ATTRS{idProduct}=="4011", MODE="0777"
SUBSYSTEMS=="tty", ATTRS{idVendor}=="cafe", ATTRS{idProduct}=="4011", MODE="0777"
SUBSYSTEMS=="tty", ATTRS{idVendor}=="cafe", ATTRS{idProduct}=="4011", MODE="0777", SYMLINK+="usbsid%n"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="cafe", ATTRS{idProduct}=="4011", MODE="0777", SYMLINK+="usbsid%n"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0003", MODE="0777"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0003", MODE="0777", SYMLINK+="usbsid-rasp%n"
Nach einem udevadm control --reload-rules && udevadm trigger
konnte ich den Raspberry im System unter meinen gewählten Namen finden und mounten
1
2
3
4
5
6
7
ls -l /dev/usb*
lrwxrwxrwx 1 root root 3 20. Jul 16:23 /dev/usbsid-rasp -> sda
lrwxrwxrwx 1 root root 3 20. Jul 16:23 /dev/usbsid-rasp0 -> sg0
lrwxrwxrwx 1 root root 4 20. Jul 16:23 /dev/usbsid-rasp1 -> sda1
lrwxrwxrwx 1 root root 15 20. Jul 16:23 /dev/usbsid-rasp2 -> bus/usb/003/006
mount /dev/usbsid-rasp1 /mnt/usbsid
Soweit so gut, jetzt noch die …
Firmware
Da wurde es etwas hakeliger.
Von den Picos gibt es nämlich ein paar Versionen mehr.
Ich hatte mir einen Raspberry Pico H
organisiert, also musste ich hier die entsprechende Firmware heraussuchen.
Die findet man unter GitHub. Für meinen Pico war dann usbsidpico-v1.3.uf2
die passende Version.
1
curl -L -o /mnt/usbsid/usbsidpico-v1.3.uf2 https://github.com/LouDnl/USBSID-Pico/releases/download/v0.5.0-BETA/usbsidpico-v1.3.uf2
Nach einem kleinen sync
auf der Konsole startete der Pici automatisch neu. (Alternativ, hätte ich auch den Pico über seinen minimal Taster zurücksetzen können.)
Nach dem Neustart zeigt mir lsusb
ein neues Device:
1
2
3
4
5
6
7
lsusb
Bus 003 Device 013: ID cafe:4011 LouD (v0.5.0-BETA.20250628) USBSID-Pico v1.3
ls -l /dev/usbsid*
lrwxrwxrwx 1 root root 12 22. Jul 19:01 /dev/usbsid0 -> snd/midiC2D0
lrwxrwxrwx 1 root root 15 22. Jul 19:01 /dev/usbsid2 -> bus/usb/003/013
Yes! \m/
Tests
Hier wurde es dann etwas hakliger.
Laut Webseite kann man sich hier um einen Test seiner Hardware kümmern: usbsid.loudai.nl.
Mein Firefox konnte das neue Device aber nicht finden.
Ich habe daraufhin andere Firmwares probiert. Ohne nennensweite Änderung …
Bis ich auf den Trichter kam mal einen anderen Browser zu testen!
Und siehe da, it works! Also mit dem frisch installiertem Chromium funktionierte es auf Anhieb.
Und wie weiter?
Aktuell teste ich die nötigen Clients.
Ich habe mir den gepatchten Vice aus dem Repo von LouDnl organistiert.
Der Build war simple.
Der alte Dreierschritt: autogen.sh
, configure
und make
…
Bei meinem Arch Linux musste ich nur noch glib2-devel
und xa
nachinstallieren, schon lief der Zauber und ich konnte eine kleine Runde Turrican mit fettem Sound spielen.