Die ursprüngliche erste Nachricht dieses Threads befindet sich unten. Den ersten Eintrag aktualisiere ich bei Neuerungen des Projekts.
Der SIDKick ist ein quelloffener SID-Ersatz für den C64/C128 (PAL und NTSC) basierend auf einem Teensy 4.1 und einer SIDKick-Platine. SIDKick kann zwei SIDs (6581 und/oder 8580), einen SFX Sound Expander (Yamaha OPL FM sound), und ein MIDI-Interface emulieren. Die Emulation von SID und FM basiert auf reSID and fmOPL.
Die Funktionen im Überblick:
- Dual 6581 und/oder 8580 Emulation basierend auf reSID 0.16 oder reSID 1.0 (konfigurierbar)
- Adressen für den 2. SID: $d400, $d420, $d500, $d420 + $d500 simultan, $de00, $df00
- Sound Expander/FM Emulation basierend auf fmOPL (bei $dfxx)
- Paddle-/Maus-Unterstützung
- eingebautes Konfigurationsmenu (Start mit "SYS 54301" oder "SYS 54333", auch vom C128-Modus aus)
- eingebauter PRG-Launcher (via Menu)
- 10 Profile um Einstellungen zu speichern, wählbar über das Menu oder einen optionalen Taster
- optional "SAM speech synthesis" zur Ansage des gewählten Profils
- MIDI Interface Emulation und Platine für Anschluss der Geräte (emuliert werden DATEL, Sequential, Namesoft und kompatible Interfaces die auf dem MC6850 UART IC basieren, Adressen bei $de0x)
- LED-Streifen (WS2812b) können zur Musik angesteuert werden (Display-Modi: peak meter, color cycling, ...)
- Sound-Ausgabe entweder über Teensy MQS (PWM) oder mit hoher Qualität über einen PT8211/TM8211-DAC, Filter, und OpAmp
- Ausgabe entweder über Anschlüsse auf der Platine (stereo) oder über das Mainboard (mono)
------ ursprüngliche Nachricht -----
Ich möchte euch heute ein neues Mitglied der Sidekick64-Familie vorstellen... dazu hat mich toms01 genötigt angestiftet motiviert, aber eigentlich war kein zu großer Anstoß notwendig
Es handelt sich dabei um einen SID-Ersatz, also eine Lösung für das "SID-Problem", das Dank verschiedenster Alternativen eigentlich keins mehr ist (aber man darf das Ersatzrad ja auch mehrfach erfinden).
Das Ganze basiert auf einem Teensy 4.1 und ist damit auch nicht der erste Versuch mit dieser Plattform. Zwei ältere mir bekannte sind z.B.
- Playback von SID-Register-Dumps (https://github.com/FrankBoesing/Teensy-reSID), war ein gutes Einstiegsbeispiel in Teensy-Programmierung
- Inplace-Emulation (https://github.com/kokotisp/6581-SID-teensy)
... die aber alle so Ihre Einschränkungen auf Hardware- und/oder Software-Seite haben.
SIDKick kommt der Lösung, wie zumindest ich sie mir vorstelle, recht nahe:
- einfach selbst zu bauen
- wenn's dann soweit ist: quelloffen
- klingt gut -- Dank einer Dual-SID Emulation mit reSID 0.16 oder 1.0 (gerade letzteres war zunächst gar nicht so trivial, weil reSID erstmal >>15MB Lookup-Tabellen vorberechnen möchte, was nicht direkt vereinbar mit einem SoC mit 1MB RAM ist)
- Ausgabe wer's einfach will via MQS (Teensy's eingebaute Medium Quality Sound-Ausgabe), optional mit einem 44.1kHz 16-Bit Stereo-DAC
- Maus/Paddle-Unterstützung
- Sound Expander/FM-Emulation ebenfalls dabei
- Konfigurationstool "eingebaut", es wird einfach mit SYS 54272 gestartet
- geplant: PRG-Launcher für eine Zusammenstellung von Programmen (ca. 3MB Flash-Speicher sind frei dafür). Das funktioniert auch, ich suche nur noch nach einer komfortablen Möglichkeit die PRGs zusammenzustellen
... ist aber auch noch nicht ganz fertig:
- Platine ist nur ein Schnellschuss, muss noch optimiert werden, ggf. Varianten erstellt für unterschiedliche C64-Boards
- Software-Fleißarbeit
- Testen
- ...
Warum eigentlich Sidekick-Familie? Abgesehen von low-level Teensy-Code, einer Modifikation der Teensy-Audiobibliothek (damit sie der Kommunikation auf dem C64-Bus nicht in die Quere kommt) und den reSID-Änderungen… läuft eigentlich derselbe Emulationscode wie beim Sidekick auf dem Raspberry Pi.