neues Nightly: Ich habe die SID Emulation in Denise mit neuen Features aufgewertet.
Alle SID Optionen in neuen Tab "SID" verschoben und sind während der Emulation direkt umschaltbar.
Zwei neue Optionen zur Emulation des SID Filters hinzugefügt:
- "Vice 2.4" die alte Filter Emulation für Liebhaber: unterscheidet sich nur für den 8580
- Chamberlin
Der Chamberlin ist ein digitaler Filter für Tiefpass, Hochpass und Bandpass.
Hoxs verwendet den Chamberlin Filter. ein paar Worte zur Einordnung dieses Filters.
Der C64 hatte nicht die Ressourcen eine Frequenz Filterung digital mittels komplexer mathematischer Operationen, wie Multiplikation oder Sinus, durchzuführen. Um annähernd das Gleiche zu erreichen, wurde der Filter mit analogen Bauteilen wie Widerständen, Kondensatoren und Operations-Verstärkern gebaut. Bei einer Transistor Level Emulation werden die Formeln zur Berechnung dieser Einzel Komponenten im Gesamt Schaltkreis angewandt.
Digital durchgeführte Filterungen, wie Chamberlin, sind sicherlich präziser, liefern bessere Resultate und hier wird es schwierig die ganze Geschichte richtig einzuordnen. Wenn was gut klingt, vergleicht man nicht mehr mit dem Original. Gleiches gilt auch bei Verwendung des VICE 2.4 Filter.
Vorteile Chamberlin
- geringfügig besseres Resultat als echter Filter
- kaum Spielraum für Programmierfehler oder Fehler durch fehlendes Wissen wie bei Transistor Level Emulation
- sehr guter Ersatz für 8580 Filter
Nachteile Chamberlin
- besseres Resultat als echter Filter
- keine Trennung zwischen 6581 und 8580 möglich
- kein guter Ersatz für 6581 Filter
Hinweis: Die Lautstärke Anpassung, welche dem SID per Register vorgegeben wird, findet im Rahmen der Filter Emulation statt. Alle Filter berechnen das auf verschiedene Weise. Aus dem Grund variiert die Lautstärke beim Wechsel des Filter Modells.
externer Filter
---------------
Diese Filterung passiert außerhalb des SID Chip und filtert alles außerhalb 15 Hz und 15.9 kHz weg. (durch den C64 Programmierer nicht beeinflußbar)
Sample Intervall für den Resampler
----------------------------------
Je kleiner das Intervall, desto höher die Qualität aber auch der Performance Verbrauch.
Die meisten C64 Programme benötigen kein kleineres Intervall um noch besser zu klingen.
Nur einige wenige Demos, wie Wonderland XII (Disk 3) welche Tunes in einer 16 kHz Sample Rate generieren, verursachen Artefakte, welche durch ein niedrigeres Intervall behoben werden.
Um eine 16kHz Sample Rate zu erreichen, schreibt das Demo in jeder Bildzeile in die SID Register.
Extra SIDS
----------
Je nach verwendeten Ausgabe Kanälen weiß das System ob Mono oder Stereo verwendet wird.
Jeder SID kann ein 6581 oder 8580 sein. So ist es möglich z.B. links 6581-er zu mischen und rechts 8580-er
Die meisten wollen hier sicher für jeden SID das gleiche Modell verwenden. Um dann nicht aufwendig alle SIDS einzeln umstellen zu müssen, gibt es eine Checkbox um alle auf einmal umstellen zu können.
Wenn die Power für das SID 8x Demo "tuneful eight" nicht ausreicht, Scanline Renderer verwenden und hohes Sample Intervall (18) einstellen.
Notwendige Adress-Bereiche der zusätzlichen SIDs werden im Demo angezeigt.
Savestates
----------
extra SIDs werden berücksichtigt und alle Optionen werden entsprechend des Spielstandes wieder hergestellt.
globales Audio Menu
------------------
Bass Boost (DSP)
---------
Auf einem echten 8580 klingen die Ausgaben dumpfer und in der Emulation eher heller.
Über den Bass Boost kann dies erreicht werden. Eine Grenzfrequenz von 200 Hz verstärkt alles unter 200 Hz. Will man nur den Tiefpass verstärken, sollte man hier um die 45 - 65 Hz einstellen. Je höher die Grenzfrequenz, desto brummiger wird es.
Die Einstellung 'Zunahme' gibt an, wie stark die Verstärkung entsprechender Frequenzen ausfällt.
Reverb (DSP)
------
Die Optionen hier kann ich nicht im Detail erklären, einfach ausprobieren. Eine deutsche Übersetzung dafür fällt mir schwer.
Wenn demnächst noch die Möglichkeit hinzukommt multiple Settings Files zu erstellen, können Bass Boot und Reverb für einzelne Programme definiert werden. Weil nicht jede Einstellung passt zu jedem Song, gilt besonders für Reverb.
Später kann ich auch noch Echo hinzufügen, was sich dann mit Reverb zu Echo Reverb kombinieren läßt.
Es gibt noch weitere Themen im Bereich DSP (Digital Signal Processing)
höhere Priorität
----------------
Ich weiß jetzt warum bei einigen Audio Treibern bei Verwendung niedriger Latenzen Probleme auftreten.
Einige Treiber warten im Fall von audio Sync eine Milli Sekunde und prüfen dann den Puffer Füllstand erneut.
Eine Milli Sekunde ist zu lang. In Windows ist es jedoch nicht zuverlässig z.B. gezielt 500 Mikro Sekunden zu warten. In dem Fall gibt er den Kern nicht für andere Prozesse frei und man sieht im Task Manager, das der Kern eine hohe Auslastung verursacht.
Diese Option 'höhere Priorität' prüft den Audio Puffer auf Platz in einer dichten Schleife ab, anstatt eine Milli Sekunde zuwarten. Damit sollte es auch mit niedrigen Latenzen funktionieren aber auf Kosten der CPU Auslastung.
XAudio hat das Problem nicht.
Ich weiß nicht, ob es auch eine Lösung gibt ohne die hohe CPU Auslastung. Im RetroArch Code liegt die Wartezeit bei DirectSound ebenso bei einer Milli Sekunde.
Also ist gelöst aber CPU Last steigt dann.