Ich freue mich, Euch hier mein neustes Projekt vorstellen zu können, das Stereo-SID-Board MixSID:
Features in Kürze:
- Freie Mischbestückung mit unterschiedlichen SID-Modellen unabhängig vom Mainboard
- Einbau auf den gebräuchlichsten Mainboards, im Brotkasten oder im flachen Gehäuse
- Konfiguration für andere SID-Modelle und/oder Mainboards auch nach dem Aufbau weiterhin möglich
- Integrierter, digital steuerbarer Stereo-Kanal-Mischer und dedizierter Stereo-Ausgang
- Originalgetreue Ausgangsschaltungen, Digiboost-, Rauschunterdrückungs- und Eingangsschaltungen
- Zusätzliche Lautstärkeregler zur Feineinstellung der Stereo-Balance
- Pragmatischer Stereo-Adressierungsmodus ($D420 und $D500 gleichzeitig, optional auch $DE00 und $DF00)
- Virtuelles Tauschen der SIDs im Hinblick auf die Adressierung im Stereo-Modus möglich
- Paddles und Maus funktionieren immer, unabhängig von der gerade gewählten Betriebsart
- Kontrolle darüber, welcher SID auf softwareseitige Erkennung antwortet
- Adressierung, Mischung, Priorität und Zuschalten von $DE00/$DF00 im Betrieb digital steuerbar
- Open Hardware, umfassende Dokumentation, interaktive Aufbau- und Konfigurationshilfen
Projektseite:
Weiterführende, ausführliche Informationen gibt es auf der Projektseite, die diesmal auch in deutscher Sprache zur Verfügung steht.
Dort findet Ihr unter anderem eine interaktive Konfigurationshilfe, die einen schnellen Überblick über die Hardwareoptionen und Betriebsarten geben kann. Eine detaillierte Aufbauanleitung ist ebenfalls vorhanden. Ebenso sind alle Steuersignale und ihr Zusammenspiel detailliert beschrieben.
Motivation:
Nachdem ich in den letzten Jahren immer weiter um meinen DualSID herumgebastelt habe, habe ich mich im Frühjahr entschlossen, meine Bemühungen auf einer einzigen Platine umzusetzen. Wichtig waren mir dabei vor allem die folgenden Aspekte, die ich insgesamt leider bei keiner der existierenden Lösungen finden konnte:
Zum einen sollte es möglich sein, die Adresse des zweiten SIDs im Betrieb wechseln zu können, ohne den C64 ausschalten und die Platine umjumpern zu müssen und auch ohne den dafür u.U. verbastelten Drehschalter schnell genug schalten zu müssen und dabei zu hoffen, dass die CS-Leitung dabei nicht prellt und den Rechner abstürzen lässt. Zum anderen sollte es auch nicht mehr nötig sein, die genaue, vom Stereo-Stück erwartete Adresse für den zweiten SID wissen und einstellen zu müssen.
Diese Anforderungen sind hier erfüllt: Es gibt nur noch zwei verschiedene Betriebsarten. Im Parallelbetrieb lauschen beide SIDs auf $D400, im Stereobetrieb lauscht der zweite SID immer gleichzeitig auf den üblichen Adressen $D420 und $D500, sowie optional noch bei $DE00 und/oder $DF00. Außerdem kann die Steuerleitung jederzeit im laufenden Betrieb geschaltet werden, ohne dass der Rechner abstürzt (sprich die CS-Leitung zwischendurch in der Luft hängt).
Ebenso sollte im Betrieb steuerbar sein, welche SID-Ausgabe auf welchem Kanal erscheint, um sowohl je einen SID auf je einem Stereokanal hören zu können als auch einen einzelnen SID in Mono hören zu können. Schließlich eignen sich nicht alle Mono-Stücke dazu, von zwei unterschiedlichen SID-Modellen in Stereo gespielt zu werden. Der integrierte Stereo-Kanal-Mischer erfüllt diese Anforderung und lässt sich bequem über zwei Steuerleitungen im Betrieb umschalten. Auch für Musiker, die ihre Stücke für beide SID-Modelle anpassen möchten, ist die Möglichkeit, zwischen beiden Modellen im Betrieb hin- und herschalten zu können sicher von Vorteil.
Während der Entwicklung kam dann noch der Wunsch auf, bestimmen zu können, welcher SID im Stereobetrieb denn nun auf $D400 bleiben soll und welcher auf die Stereoadressen "umziehen" soll. Schließlich gibt es Stereo-Stücke, die zwei unterschiedliche Modelle erwarten, allerdings mal das eine, mal das andere Modell bei $D400. Mit der Prioritätskontrolle (Priority Select) können solche Stücke nun auch mit der korrekten Bestückung abgespielt werden.
Ebenfalls wollte ich eine Lösung, in der Paddles bzw. die Maus einfach immer funktionieren, ohne dass die Stereo-SID-Platine dabei auf eine bestimmte Art konfiguriert sein muss und ohne dass es dabei zu Einschränkungen im Klang kommt. Dazu wird nun immer nur ein SID auf $D400 im Schreib-Lese-Modus betrieben, während der andere strikt im Nur-Schreiben-Modus (und nicht etwa im Immer-Schreiben-Modus) betrieben wird, solange er ebenfalls bei $D400 adressiert wird.
Aus der Kombination dieser beiden Features ergibt sich dann auch die Möglichkeit, zu kontrollieren, welcher der beiden SIDs bei Mischbestückung auf softwareseitige Erkennung antwortet.
Alle weiteren Features wie die freie Mischbestückung, Unabhängigkeit von der verwendeten Hauptplatine, Flexibilität ohne Festlegung auf eine bestimmte Bestückung beim Aufbau, die integrierten Digiboost-Schaltungen und andere Details haben sich aus dem Wunsch ergeben, eine möglichst universelle, aber immer noch technisch einfache und vor allem für den Anwender unkompliziert aufzubauende und dennoch flexibel verwendbare Lösung zu finden.
Ich hoffe, dass mir dies mit dem MixSID gelungen ist.
Projektstatus:
Die Platine wurde in mehreren Revisionsschritten entwickelt und ist nun in der offiziellen Revision 1 in einem brauchbaren Zustand. Sie ist bereits als Prototyp bei c0zmo, GI-Joe, GMP und mir im täglichen Einsatz und ist von uns auf den am meisten verbreiteten Hauptplatinen 250407, 250425, 250466 und 250469 erfolgreich eingebaut und mit verschiedenen Bestückungen ausgiebig getestet worden. Der Einbau erfolgte sowohl in Brotkästen, flachen Gehäusen als auch im Lichtmichel-Gehäuse.
Danken möchte ich vor allem c0zmo, der mich während der Entwicklung fleißig mit immer weiteren Wünschen genervt hat und ohne dessen Beteiligung die Platine sicher um einiges weniger flexibel ausgefallen wäre.
Ebenso danke ich GI-Joe, der mich ebenfalls während der Entwicklung mit weiteren Ideen und einer guten Portion Pragmatismus unterstützt hat.
Und auch GMP und Meikel haben sich als fleißige Betatester erwiesen und wertvolles Feedback geliefert.
Verfügbarkeit:
Ich bin gerne bereit, bei ausreichendem Interesse eine Sammelbestellung für Bausätze zu organisieren. Ein Bausatz bestünde dann aus der Platine und allen benötigten Bauteilen (außer Kabeln), und würde ungefähr 25€ kosten (Versand EU-weit frei). Da ich dazu jedoch nicht in Vorleistung gehen kann, bitte ich Euch, hier nur verbindliches Interesse zu bekunden. Eine erste Serie wird erst in Produktion gehen können, wenn alle Besteller bereits bezahlt haben.
Davon abgesehen sind alle zur Produktion nötigen Dateien inklusive den Gerber-Dateien auf der Projektseite und auf github unter GPL2 veröffentlicht.
Vielen Dank für Euer Interesse,
Henning