Hello, Guest the thread was called12k times and contains 213 replays

last post from lolof at the

Projektvorstellung SIDKick

  • 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.

    ... 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.

  • Das klingt nach einem *sehr* spannenden Projekt, ich kann es kaum erwarten, das nachzubauen! :thumbsup: Besonders gut gefällt mir auch der Ansatz, auf geeigneter, existierender Software aufzubauen und nicht gleich jedes Rad neu erfinden zu wollen. Dadurch bleiben u.a. mehr Ressourcen für Verbesserungen im Detail.

  • es gibt auch noch diesen Free Sid Projekt von Matthias (Als Host-Chip wird der Teensy 4.0 mit 600 Mhz verwendet)

    FREE STEREO SID: Neuentwicklung zum mitmachen

    :-)


    Ich hatte auch schon einen Teensy 3.5 (5V Tolerant) mit reSID als Stereo Variante am laufen, aber da die 3.5er 3.6er und 4.1er Teensy Serie so extrem lang ist, habe ich mich schlussendlich für den kurzen Teensy 4.0 entschieden, der dem SID von der Größe sehr nahe kommt. Beim Teensy 4.0 geht auch ein Quad-SID (mit reSID probiert und funktioniert), aber ich denke Stereo reicht erst einmal ;-) reSID zu verwenden liegt natürlich nahe, aber reSID ist nicht frei, somit kann man das leider nicht in einem Free SID (Public Domain) nutzen :-) Zwar muss man so das Rad zum x-Male neu erfinden, jedoch finde ich das auch spannend, weil einen eigenen Sound-Chip zu programmieren, ist schon eine spannende Sache ;-)

  • ein neues Mitglied der Sidekick64-Familie

    Als Sidekick64-Fanboy bin ich natürlich über derartigen Familienzuwachs hocherfreut und sehr gespannt!


    Historisch war Sidekick64 in meinem Retrodasein der erste "steckbare" SID-"Ersatz", den ich an einem C64 in Betrieb genommen habe (bin ja noch nicht so lange dabei). Als jemand, der die Flut an neuen Szene-Tunes und existierenden Dual-SID-Tunes gerade erst zu genießen begonnen hat, von der Existenz von FM-SID-Tracks vorher gar nichts wusste, dann zufällig unter den ersten war, die The Tuneful Eight auf Sidekick64 nach Software-Update genießen durften und sogar auch schon die 8-SID-Emu von Sidekick64 mit ein paar ausgewählten Triple-SID-Tunes aus der CSDb "missbrauchen" konnte, muss ich resümieren, dass die SID-Emu von Sidekick64 aus meiner Sicht neben sehr flexiblen Möglichkeiten nur zwei hardwarebedingte Grenzen hat, die man wahrscheinlich nicht loswerden wird, die aber mit Hilfe von SidKick ausgeglichen werden könnten!


    Der erste "Grenzpfosten" der SID-Emu in Sidekick64 ist meiner Meinung nach, dass diese nicht beliebig kombinierbar ist mit allen Spielarten von Sidekick64. Beispiel: Wenn ich ein CRT starte, kann nicht parallel auch die SID-Emu aktiv sein (EasyFlash, etc., zum Beispiel ein SMB64 als CRT würde ich gern mit Dual-SID-Emu launchen können). Gleiches gilt glaube ich bei NeoRAM-Nutzung. Das bedeutet, dass die SID-Emu meist im Kontext von PRGs aktiv ist (SMB64 also als PRG starten). Also brauche ich innen im C64 immer noch einen SID(-Ersatz) für EasyFlash.


    Der zweite "Grenzpfosten" ist der Pegel des PWM-Sounds des Raspberry Pis. Obwohl dies im Alltag überhaupt nicht ins Gewicht fällt, bin ich persönlich leicht genervt, wenn ein an mein Mischpult angeschlossenes Sidekick64 auf Maximallautstärke immer noch nur einen sehr leisen Pegel bietet. Dies ist eigentlich nur ein Wahrnehmungsproblem, weil die PWM-Lautstärke sonst gut genug ist, um damit einfach Spaß zu haben. Aufgrund dieser Pegel-Geschichte freue ich mich auf:

    optional mit einem 44.1kHz 16-Bit Stereo-DAC

    Eine qualitativ höherwertige Sound-Ausgabe finde ich gut, auch wenn man darüber nur die emulierten Mono-Klänge eines 8-bit-Synthie-Chips ausgibt, der schon 40 Jahre alt ist. Wer weiß, was man im Laufe der Zeit noch für DSP-Späße hinzufügen kann.


    Im Sidekick64 kann man die SID-Konfiguration recht genau justieren über das entsprechende Menü, und man kann einen Preset speichern, was gut und zeitsparend ist. Entsprechend finde ich es cool, dass auch in Sidkick ein

    Konfigurationstool "eingebaut"

    ist. Da ich in der letzten Zeit viel bei Dual-SID-Tunes in der CSDb gestöbert habe, wäre es für die Zukunft ideal, wenn man Sid-Konfig-Presets abspeichern könnte, die zu einem bestimmten Musik-Release passen und die meinetwegen beim Launchen eines bestimmten Tunes automatisch gesetzt werden würden (über Datei-Hashvergleiche oder so). (Beispiel: 2x8580 Mono, 2x8580 Stereo, 2x6581, etc.)


    Gibt es solche automatisierten Presets eventuell schon für andere SID-nahe-Projekte / Emus?

  • ... 4, 8 oder gar 16 SIDs sind doch durch Kinzi vorgegeben.

    Bei 2x und 3x ist doch noch Platz. :-D

    aber reSID ist nicht frei,

    Mir ist das ...

    Quote

    "reSID is free software, published under the GNU General Public License."

    ... frei genug.


    Nein, das soll nicht der x. OT-FlameWar zu Open Source werden, es soll nur Leute, die von reSID zum ersten mal lesen davon abhalten zu denken, reSID wäre was Böses oder Schlechtes.


    Frenetic Hammer Sache! *HandvolLikesRüberschieb*

    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.


    Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.


    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.

  • Gibt es solche automatisierten Presets eventuell schon für andere SID-nahe-Projekte / Emus?

    an Presets hatte ich auch schon gedacht -- ich vermute U64 hat bestimmt sowas?


    Da ich in der letzten Zeit viel bei Dual-SID-Tunes in der CSDb gestöbert habe, wäre es für die Zukunft ideal, wenn man Sid-Konfig-Presets abspeichern könnte, die zu einem bestimmten Musik-Release passen und die meinetwegen beim Launchen eines bestimmten Tunes automatisch gesetzt werden würden (über Datei-Hashvergleiche oder so). (Beispiel: 2x8580 Mono, 2x8580 Stereo, 2x6581, etc.)

    im SID-Sockel bekommt man natürlich nicht viel mit von dem, was sonst so gerade passiert. Aber ein Punkt, den ich oben noch vergessen hatte (den emulaThor schon vorgeschlagen hatte): InterOp mit dem Sidekick64 -- könnte bedeuten, wenn man ein Programm/CRT/irgendwas vom Sidekick64 startet, könnte das die SID-Emulation dafür automatisch einstellen.

  • Ich bin immer noch begeistert von der Idee, den Konfigurator mit SYS54272 zu starten. Ich hätte monatelang nachdenken können, das wäre mir im Leben nicht eingefallen. Dafür ein extra :thumbup: !

    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.


    Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.


    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.

  • Der 4.0er Teensy war da schon ziemlich ausgereizt mit verfügbaren normalen Pins (steckbar) - glaub ich. Hatte Frenetic mal gefragt, ob ein DAC möglich wäre, da PWM meistens schlechter klingt.

    die Pins am normalen Header reichen einfach nicht -- nicht mal, wenn man sich auf PWM/MQS beschränkt, einfach nur alle Signale für DualSID-Betrieb abgreift und einen Bus Transceiver verwenden will. Das bedeutet, man müsste an die Lötpads auf der Unterseite des Teensy 4.0 und dann wird es unschön. Der Unterschied zwischen MQS und DAC ist m.E.n. signifikant...

  • Ja, man muss mit dem Teensy 4.0 wegen der Pin-Knappheit sich genau überlegen wie man das umsetzt, aber es funktioniert (für Luxus müsste man an die 4 unteren Lötpads ran ;-) ). Und die MQS Ausgabe (über die 2 MQS Pins -> Stereo) klingt wirklich gut. Sonst hätte ich das "Free Stereo SID" Projekt auch nicht mit dem 4.0er vor einigen Monaten gestartet (damit funktioniert sogar ein Quad-SID mit Mouse Unterstützung und Registerzugriff (Testweise Werte ausgelesen und geschrieben) für das Config Tool - zusammen getestet mit reSID, für das LED VU Meter war im main Loop auch noch Platz :D Da das alles dann aber an der Leistungsgrenze arbeitet, habe ich mich dann nur für Stereo anstatt Quad entschieden. So geht man auf Nummer Sicher :-) )


    Ich find SIDKick ist die logische Konsequenz :thumbsup: ( Frenetic, jetzt ist mir auch klar warum Du Dich für die Hardware/Pegelwandlung bei meinem Free Stereo SID interessiert hattest ;-)), da man beim Raspi immer das Problem hat mit der langen Bootzeit (bei mir dauert das booten vom SideKick immer ca. 12-15 Sekunden). Aber mit dem doppelt so großen Teensy Boards 3.5/3.6/4.1 hätte ich keinen SID gemacht, interessant ist es natürlich dennoch :-) (bei Frank Bösing hatte man schon auf seinen Bildern gesehen, dass das dann ein doch ziemlich riesiger SID wäre, noch größer als der FPGA-SID). An sich ist der Teensy 4.1 natürlich gut wegen vielen Pins und der Leistung, deshalb werde ich ihn wohl als System Controller einsetzen (ein C64 Screen-Overlay hab ich damit schon umgesetzt), wobei ich mir einen besseren Port-Zugriff wünschen würde, so wie man es von der Arduino Reihe oder vom Teensy 3.0/3.1/3.5/3.6 kennt :-) Deshalb wollte ich eigentlich mal den STM32F405 einsetzen, der aber nur als SMD Variante existiert. Naja, vielleicht bringt Paul Stoffregen noch einen Teensy 4.2 mit allen Vorteilen von der 3.0/3.1/3.5/3.6 Serie und auch eine schmale Version. Ich hatte ihn schon mal wegen der Länge bzgl. 3.6/3.6/4.1 angesprochen, und ihm Alternativen vorgeschlagen (teilbare Platine, oder einer Doppelreihen-Version). Mal schauen :-) Manchmal muss man einfach nur abwarten ;-)

  • aber es funktioniert

    (wie ich finde) aber nur mit Abstrichen. Wie ich damals (hoffe richtig) geschaut habe, hast du die Reset-Leitung überhaupt nicht mehr angeschlossen. Geht vielleicht ins Detail, aber ich mag es, wenn der C64 beim Reset aufhört zu dudeln. Die Teensy-4.1-Variante von Frenetic ist sicher auch erstmal ein Meilenstein, um zu schauen was man überhaupt benötigt. Das Ziel wird es sein, dass man das ganze verkleinert und auf Original-SID-Größe bringt.

  • aber ich mag es, wenn der C64 beim Reset aufhört zu dudeln.

    Stimmt, aber werden beim Reset nicht alle SID Register automatisch neu gesetzt? Damit dürfte der SID automatisch aufhören etwas abzuspielen. Oder war es bei einem speziellen Modul... müsste ich noch mal nachsehen :-)

    Kommt wahrscheinlich daher das ich den Reset nie benutze, sondern immer den Power Schalter ;-)

  • 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

    Was mir beim nochmaligen Lesen noch eingefallen ist:

    TapeCart hatte ja ein ähnliches "Problem" und dort wurde ein tolles Menü (EF3-like) dazugeklöppelt. Eventuell ließe sich das ohne großen Aufwand "portieren"? TapeCart liest von zwei oder drei Leitungen an der CPU, eventuell kann man dem emulierten SID ein Register zusätzlich spendieren, das den CPU-Port emuliert, dann müsste es nach meinen einfachen Vorstellungen :-) nicht so schwer sein das anzupassen.

    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.


    Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.


    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.