neues Projekt: FPGASID

  • @andi6510:
    Nachdem Du jetzt den Stereo-Modus implementiert hast, habe ich nach Studieren der Register-Map im benachbarten Thread noch leichte Verständnisschwierigkeiten über den Funktionsumfang:

    * Man hat nach einem Reset zwei 6581-SID auf $D400 liegen, wobei beide SIDs dann einfach parallel arbeiten. Read-Operations im $D400-Bereich betreffen nur den ersten SID (z.B. für Paddels).

    * Man kann den zweiten SID auf andere Adressen legen, Read-Operations im SID2-Bereich liefern dann auch gültige Werte (bis auf z.B. die Paddle-Register, da der SID2 keine Eingänge für die Paddles hat)

    * Man kann die Filter beider SIDs getrennt vom 6581 auf den 8580 umschalten. Hier verstehe ich ehrlich gesagt den Zusammenhang mit den Lookup-Tabellen nicht. Könnte ich SID1 als 6581 laufen lassen und SID2 als 8580? Beide im $D400-Bereich? So dass ich die Analogausgänge (extern über Schalter umschaltbar) auf beide Kanäle eines Verstärkers legen kann und dann quasi ein Musikstück einmal als 6581-Version und einmal als 8580-Version ausgebe?

    * So wie ich es bis jetzt verstanden habe, verbraucht ein Umschalten zwischen 6581 und 8580 über jeweils einen FPGA-Eingang (also individuell 6581/8580 auf beiden Kanälen) zuviel Resourcen? Abgesehen davon, dass sowas aktuell nicht vorgesehen ist...


    Kannst Du hier nochmal etwas über den derzeitigen Funktionsumfang sagen? (Passt hier besser, als im Thread über die Register-Map)

    Fragen über Fragen...

    Danke und Gruß,
    Thomas
  • Freak schrieb:

    Man hat nach einem Reset zwei 6581-SID auf $D400 liegen, wobei beide SIDs dann einfach parallel arbeiten. Read-Operations im $D400-Bereich betreffen nur den ersten SID (z.B. für Paddels).
    Richtig!


    Freak schrieb:

    Man kann den zweiten SID auf andere Adressen legen, Read-Operations im SID2-Bereich liefern dann auch gültige Werte (bis auf z.B. die Paddle-Register, da der SID2 keine Eingänge für die Paddles hat)
    Richtig! Der zweite SID liefert die gleichen Paddle-Werte wie der erste SID. Die Paddles gibts nur einmal. Aber OSC3 und ENV3 kann unterschiedlich sein.


    Freak schrieb:

    Man kann die Filter beider SIDs getrennt vom 6581 auf den 8580 umschalten. Hier verstehe ich ehrlich gesagt den Zusammenhang mit den Lookup-Tabellen nicht. Könnte ich SID1 als 6581 laufen lassen und SID2 als 8580? Beide im $D400-Bereich? So dass ich die Analogausgänge (extern über Schalter umschaltbar) auf beide Kanäle eines Verstärkers legen kann und dann quasi ein Musikstück einmal als 6581-Version und einmal als 8580-Version ausgebe?
    Ja, beide SIDs können unterschiedlich laufen, einmal 6581 und einmal 8580. Dazu muss man nur temporär den SID2 auf eine andere Adresse legen, ihn umkonfigurieren und dann wieder auf D400 zurück schalten. Dein Szenario sollte also funktionieren (probiere ich mal aus, habe ich tatsächlich noch nie gemacht)

    Freak schrieb:

    So wie ich es bis jetzt verstanden habe, verbraucht ein Umschalten zwischen 6581 und 8580 über jeweils einen FPGA-Eingang (also individuell 6581/8580 auf beiden Kanälen) zuviel Resourcen? Abgesehen davon, dass sowas aktuell nicht vorgesehen ist...
    Nö, das wäre ja nur ein externes Bit, welches das entsprechende Registerbit überschreibt. Evtl noch ein extra Registerbit um das einzuschalten. Sowas läuft unter Kleinigkeiten und verbraucht sicher nicht zu viele Ressourcen.
    Leider haben wir, wie Du ja weißt, im Moment keinen Zugang zu weiteren FPGA-pins. Das wäre also erst mit FPGASID_proto2 möglich.


    Freak schrieb:

    Kannst Du hier nochmal etwas über den derzeitigen Funktionsumfang sagen? (Passt hier besser, als im Thread über die Register-Map)

    Mit dem momentanen Funktionsumfang ist folgendes möglich:

    1. Mono: Beide SIDs auf D400. Hier bekommen beide SIDs exakt die gleichen Registerwerte und spielen auch das gleiche Stück ab. Da der interne Zustand der beiden SIDs aber je nach Historie anders ein kann (z. B. die Phasenregister) kann es sein, dass sich leichte Unterschiede zw. rechts und links ergeben, die das Ganze etwas räumlich klingen lassen. Wer wirklich voll Mono will, muss die Testbits vorher setzen um alles zurück zu setzen.
    Sonderfall: In diesem Modus können beide SIDs auch unterschiedlich konfiguriert sein. Also einer im 6581 Modus under der andere im 8580 Modus. Auch das bringt ein netteres Klangbild (noch zu testen).

    2. Pseudostereo: Wie bei 1, jedoch ebenfalls ein Sonderfall: Man kann bei beiden SIDs einzelne Stimmen muten. Wenn man jetzt bei beiden SIDs unterschiedliche Stimmen muted, verteilen sich die jeweils restlichen auf den linken und rechten Kanal. Als Beispiel also z.B. SID1 Voice 1 und Voice 2 aktiv, Voice 3 gemuted, SID2 voice 1 gemuted, Voice 2 und Voice 3 aktiv. Jetzt erklingt voice 1 nur links, voice 2 in der Mitte und voice 3 rechts. Damit werden dann normale MONO-Stücke trotzdem in Stereo wiedergegeben (was ziemlich cool ist, wie ich finde :) )

    3. echtes Stereo: Der zweite SID wird auf eine andere Adresse gelegt und kann von entsprechender Software als zweiter SID angesprochen werden und echte 6-stimmige Stereostücke können abgespielt werden.

    Um in Modus 1 und 2 die beiden SIDs unabhängig voneinander zu konfigurieren, muss temporär der SID2 auf eine andere Adresse gelegt werden. Damit kann man die Konfigurationsregister separat beschreiben. Anschließend wird wieder zurück geschaltet und beide SIDs liegen auf D400 und werden von den gleichen Musikdaten versorgt. So einfach ist das.

    Ich glaube ich stelle mal eine paar BASIC-Progrämmchen zusammen, die die Vorgehensweise durch gut kommentierte Pokes demonstrieren.

    Zugegeben: Die Doku ist noch in der Kinderschuhen... Ziel ist irgendwann ein Handbuch zu haben, wo einfach ALLES drinnen steht. Irgendwann eben. Ihr Alphatester müsst da jetzt auf die harte Tour durch...
  • Punkt 2. ist wirklich sehr interessant, diese Möglichkeit konnte bisher noch keine Stereo-Lösung bieten...
    Wäre es da prinzipiell auch möglich (sofern es die Sache nicht erheblich kompliziert), die Lautstärken einzelner Stimmen einzustellen, sodass man eine Stimme exakt im Stereobild platzieren kann?
  • Henning schrieb:

    Punkt 2. ist wirklich sehr interessant, diese Möglichkeit konnte bisher noch keine Stereo-Lösung bieten...
    Wäre es da prinzipiell auch möglich (sofern es die Sache nicht erheblich kompliziert), die Lautstärken einzelner Stimmen einzustellen, sodass man eine Stimme exakt im Stereobild platzieren kann?
    Ich hatte auch schon mal an ein Panning Register für die 6 Stimmen (8 mit Sampling) gedacht, wollte aber zum jetzigen Zeitpunkt noch nicht danach fragen. Diese strikte rechts/links Aufteilung der Stimmen klingt für mich nicht so gut. Wie beim Amiga halt ;)
    Zuletzt repariert:
    21.2. Logitech M570 Microschalter ausgetauscht - geplante Obsoleszenz durch Billigtaster?
    19.11. Toshiba 3,5" Floppy defekter Elko durch Kerko getauscht auf Motorplatine
    27.11. 1541B Dauerlauf, Elko im Resetschaltkreis defekt, nicht der 7406 wie zuerst verdächtigt!
  • Henning schrieb:

    Punkt 2. ist wirklich sehr interessant, diese Möglichkeit konnte bisher noch keine Stereo-Lösung bieten...
    Wäre es da prinzipiell auch möglich (sofern es die Sache nicht erheblich kompliziert), die Lautstärken einzelner Stimmen einzustellen, sodass man eine Stimme exakt im Stereobild platzieren kann?
    Ja, ich kenne das nur von meinem modifizierten DTV, bei dem die drei Stimmen ja separat aus dem ASIC raus kommen und man sie dann aufteilen kann. Ist auch mit echten SIDs schwierig zu realisieren...

    *Prinzipiell* wäre auch eine Lautstärke-Anpassung drin. Allerdings fehlten mir da die Register und ich brauche dazu 6 Multiplizierer, die ich glaube ich gar nicht mehr übrig habe. Nach ersten Experimenten habe ich gemerkt, dass vor allem diejenigen Stimmen, die auf beiden Kanälen wiedergegeben werden, eigentlich auf die Hälfte abgesenkt werden müssen, sonst sind sie zu laut. Evtl hilft also auch nur ein Extrabit pro Stimme, welches den Pegel entsprechend halbiert. Ist dann aber kein Panoramaregler wie am Mischpult.
    Die Sache hat auch einen Nebeneffekt, den ich nicht verschweigen will: Vor allem die 6581 Filter reagieren recht empfindlich auf den Gesamtpegel des Signals. Wenn man da jetzt einfach was weg lässt, klingen die Filter u.U. nicht mehr ganz so, wie sie sollen. Aber das ist evtl. nur für Puristen schlimm, die dieses Feature ohnehin verdammen werden. ;)
  • andi6510 schrieb:

    Stimmen, die auf beiden Kanälen wiedergegeben werden, eigentlich auf die Hälfte abgesenkt werden müssen
    Leider sogar eigentlich auf -3dB... :/
    ────────────────────────────────────────────────────────────
    Time of Silence - Time of Silence 2 Development Blog
    ────────────────────────────────────────────────────────────
  • Haben heute auf der Arbeit ein benachbartes geräumtes Großraumbüro nach "Schätzen" durchsucht und ich habe das hier gefunden:



    Probleme mit den SID-Filtern sollten ja jetzt wohl der Vergangenheit angehören, oder? Einfach 2-3 mal sprühen, dann müsste alles ok sein. Ja, hier sind Profis am Werk!

    Gruß,
    Thomas
  • "Turns an Ordinary Filter into an Electrostatic Filter!", ja da wird der Sound endlich wieder luftig :thumbup:
    ────────────────────────────────────────────────────────────
    Time of Silence - Time of Silence 2 Development Blog
    ────────────────────────────────────────────────────────────
  • Benutzer online 1

    1 Besucher