Hallo Besucher, der Thread wurde 8,9k mal aufgerufen und enthält 46 Antworten

letzter Beitrag von cktwo am

SID-Player für CBM-II Rechner

  • Klingt vielversprechend. Danke für die Hinweise!


    @ Axorp: Würde Deine Variante mit der verlinkten "cbmcart.bin" - Datei funktionieren, wenn Sie auf ein passendes Eprom gebrannt ist? Welchen Typ Eprom kann ich hier verwenden?


    Toast_r: Streifenratserplatine klingt auch gut! Hättest Du vielleicht einen Schaltplan für mich für diese Variante?


    Danke schön!

  • Bin ich blind oder habe ich was übersehen? :silly:


    Ich dachte es wurde ein SID-Player für den CBM-II geschrieben, der die durch die 2MHz verbogenen Frequenzen geradebiegt... ich finde das aber nicht. Kann mich mal jemand auf den richtigen Weg führen bitte? :)

  • Nachdem ich ja Space Chase programmiert habe (und somit auch die SID-Routinen angepasst habe), melde ich mich mal zu Wort...


    1. Ja, der SID ist ab $DA00 in Bank 15 (und nur dort!) erreichbar.
    2. Ja, er läuft definitiv mit 2 MHz. Das führt dazu, dass alle Töne 1 Oktave höher ausgegeben werden, als beim C64.
    3. Nein, man kann keine Register lesen. Das ist aber irrelevant. Die einzigen lesbaren Register des SID sind die für die Paddle-Abfrage (lassen sich ohnehin am CBM II nicht anschließen) sowie die Register 27 und 28 (Oszillator und Hüllkurve Stimme 3), die aber von den mir bekannten SID-Playern nicht genutzt werden.
    4. In Bank 15 sind nur wenige Bytes RAM verfügbar. Der SID-Player-Code samt Daten muss also fast zwangsläufig in einer anderen Bank arbeiten und dafür angepasst werden.
    5. Nein, man kann den SID nicht in eine andere Bank einblenden. Die einzige Möglichkeit ist, über STA ($xx),Y indirekt indiziert auf andere Banks zuzugreifen.
    6. Nein, es gibt keinen Raster-IRQ. Ob man nun aber einer Raster-IRQ mit 50 Hz nimmt oder einen Timer-IRQ mit 50 Hz (die gibt's auf dem CBM II), ist aus meiner Sicht egal. Space Chase nutzt einen Timer IRQ für die Musikausgabe.


    Möchte man einen SID-Player für den CBM II bauen, muss man sich primär um zwei Dinge kümmern:
    - Den Code so anpassen, dass er aus einer anderen Bank indirekt indiziert auf dem SID zugreift.
    - Bei der Initialisierung die Musikdaten so anpassen, dass alles eine Oktave tiefer abgespielt wird.


    Bei Space Chase habe ich mich nur um den ersten Punkt gekümmert. Max Hall, der die Musik für Space Chase gemacht hat, hat die Verschiebung um eine Oktave direkt berücksichtigt. Oder anders ausgedrückt: Würde man die Musik von Space Chase auf dem C64 abspielen, so würde diese eine Oktave zu tief erklingen.


    Im Übrigen verwendet Space Chase den SID Player von Mihaly "Hermit" Horvath. Der ist Open Source, d.h. den Quellcode kann man herunterladen und anpassen. Da der SID-Player extrem viel selbstmodifzierenden Code nutzt, ist das aber harter Tobak. Das dürfte dennoch der vielversprechendste Startpunkt für einen universellen SID-Player für die CBM II-Maschinen sein.


    VG CK


    P.S.: Ich bin am kommenden Samstag (03.09.) auf der Xzentrix in Seeshaupt. Falls jemand von Euch dort ist, können wir mal ein paar Schritte in Richtung SID-Player wagen...

  • Frage zum SID-Player:


    Läuft dieser auch auf dem CBM P-500?


    Im Prinzip entspricht dieser ja den CBM II Geräten bis auf den Unterschied, dass er einen VIC II (deswegen auch nur ca. 1 Mhz), Rasterzeilen-IRQ's sowie 2 Joystick Ports hat.