Beiträge von kenchis

    Hi Leute,


    ich muss jetzt schon wieder vertrösten. Liege gerade mit einer Lungenentzündung flach. War anscheinend doch ernster als angenommen.

    Ich hatte allerdings bereite den Linux Code für VICE angepasst und war kurz vorm Testen.

    Sorry, aber aktuell ist etwas der Wurm drin. Aber keine Sorge, es geht bald weiter.

    Hallo,


    ich habe jetzt schon eine Weile nix mehr von mir hören lassen.

    Nachdem ich mir den VICE Code angeschaut hatte war ich erst mal krank geworden und das zog sich dann auch mehr als 2 Wochen hin.

    Das war mal ein aggressiver Virus wie schon lange nicht mehr und zog quasi durch die ganze Familie.


    Heute habe ich dann wieder angefangen und bin jetzt wieder dabei weiterzumachen.

    Aktuell noch in der Mache: Laden der Linux Library und Aufruf der HardSID Methoden.

    Ich rechne in Kürze mit dem ersten Sound unter Linux. Dann schließt sich noch der MacOSX Port an.

    Ich werde aber als Zwischenschritt schon ein Patch File veröffentlichen für den, der das ganze selber unter Linux übersetzen möchte,

    bzw einen fertigen binary Build für GTK.


    Beste Grüße,

    Ken

    Okay, Ich habe jetzt mal die nächsten Schritte ausgelotet.


    Zunächst mal zu den VICE builds für Windows und Linux.

    1)

    Unter Windows kann ich VICE zwar Debuggen, habe allerdings nur Breakpoints innerhalb meines hardsid library Projektes im Visual Studio, da es die *.pdb Dateien braucht, die hier aber nicht rausfallen.

    Eine SLN Projektdatei entsteht hier auch nicht.

    2)

    Unter Linux kann ich VICE mit Breakpoints/single step debugging und alles was das Herz begehrt debuggen. Habe alle Debugsymbole eingeschaltet beim Make und die Optimierungen ausgeschaltet, damit ich alles sehe.

    Aber: Hardsid Linux support ist per default deaktiviert, wenn keine linux/hardsid.h header Datei unter Linux vorhanden ist.

    Es gab also schon mal eine frühere Linux HardSID Lösung, die nicht im Quellcode des VICE Projektes vorliegt.


    Ich werde also Schritt 2 gehen und zunächst mal den HardSID Support unter Linux so anpassen, das er wie bei Windows die libhardsid.so shared library zur Laufzeit lädt und meinen neuen hardsid Treiber verwendet.

    Im Anschluss hat VICE dann unter Linux standardmässig ebenfalls die Möglichkeit die USB-Hardware zu verwenden, sobald die libhardsid.so Datei im Ordner vorliegt.

    Also gleiches Verhalten für Windows und Linux.


    Das alles ist Vorbedingung dafür, das ich die Konfiguration für HardSID erweitern und dann auch testen und debuggen kann.

    So weit der Plan.

    Ja super das es schon gut läuft.

    Ich will jetzt an VICE ran und gucken was ich tun kann was die Einstellungen betrifft.

    Andere Geräte werden danach ebenfalls als dll realisiert, für die die kein HardSID, aber andere Alternativen haben.


    Edit: Was mute betrifft, muss ich erst noch herausfinden, wie ich das hinbekomme, mal schauen.

    So, ich habe die Version vollständig aktualisiert und die hardsid.dll in soweit geändert, dass die Auswahl des Hardware SID jetzt geht.

    Also einfach die DLL tauschen:

    https://sourceforge.net/p/jsid…n/resources/win32-x86-64/


    Der Aufruf lautet dann:

    x64sc.exe -sidenginemodel 768 -sidengine 3 -hardsidmain 3

    Wobei der Parameter hardsidmain den Wertebereich 0..3 hat für die Slots 1-4


    Die VICE INI Datei ist egal, wenn alles wie in meinem Beispiel auf der Kommandozeile angegeben wird.

    Hier ein Video zur Demonstration:

    https://haendel.ddns.net/nextc…dex.php/s/nZYnWAqRzw6giZM

    Gerne mal ausprobieren.

    Wenn du im ersten Slot keinen Chip hast nimm mal mit dem Wert 1 für den Parameter hardsidmain den 2. Slot.


    Ich weiss aktuell noch nicht, wann der 2. parametrierbare Chip zum Einsatz kommt (-hardsidright). Oder welche Möglichkeiten ich noch mit VICE habe. Es bleibt spannend.

    Fake Stereo oder die Ausgabe für ein bestimmtes SID Modell einen bestimmten Chip anzusteuern schaue ich mir noch an.


    Beste Grüße,

    Ken

    Hi,

    Also die config ist unter [C64SC], weil ich ja auch x64sc.exe starte. Also die cycle exakte Version.


    Davon ab verwende ich gerade nur den ersten Slot. Wenn der leer ist, bleibts stumm. Ich will allerdings die DLL nochmal ändern und dann kannst du wieder einen beliebigen Slot verwenden, so wie vorher.

    Also der VICE Emulator übergibt mir zwar eine deviceID gemäss dem Parameter SidHardSIDMain, aber ich regiere nur auf die 0 (1. Slot). Das wird bei mir geändert werden.

    Mein Ziel ist schließlich, dass es sich erst mal genau so verhält wie vorher.


    Ich denke bei der nächsten Version kann ich dir dann genauer sagen,

    was du setzen musst, dass muss ich auch erst mal lernen, also erstmal musst du mir glauben, dass ich bereits eine Demo gucken konnte ;-)


    Ich habe übrigens keine Antwort auf meine Frage an Wilfred und Sandor bekommen, wegen der SID Adressierung aber ich denke VICE hat hier einfach Recht.

    So, da ich jetzt alle Plattformen abdecken,.mache ich mit VICE weiter.


    Zunächst schaue ich mir die bestehende Parametrierung mal an.

    Die Auswertung der benötigten SIDodelle würde eh nur für SID Widergabe funktionieren.

    Wenn ich einen Überblick habe muss ich VICE wohl mal im Quellcode auschecken und schauen ob es übersetzt.

    Das könnte unter Windows nochmal haarig werden.nunter Linux war ich schon Mal so weit.

    Ich schaue mal wegen VICE.


    Was den Mac Port angeht, kann ich endlich Erfolg vermelden.

    Bin zwar noch am Testen, aber libusb geht auch unter MacOSX, wenn man erst claim_interface aufruft und danach get_active_config_descriptor. Bei Windows und Linux ist's egal!

    Es geht also voran.

    Was die hardsid Schnittstelle angeht, werde ich höchst wahrscheinlich den VICE Ansatz wählen und die Schnittstelle nochmal ändern. Dann kann man auch wieder jeden SID des HardSID4U ansteuern.

    Das wäre natürlich super, wenn das so on the fly ginge wie es auch in ACID64 funktioniert. Aber jeden SID einzeln ansteuern macht auf jeden Fall Sinn. :-)

    Ob evtl. sogar eine SID-Erkennung anhand des SID-files möglich wäre, so dass 6581/8580 automatisch ausgewählt werden könnten?! Aber letzteres ist nur ein Gedanke und sicher keinen großen Aufwand wert. Stelle mir das im Emulator auch sehr schwierig bis unmöglich vor, dass auszulesen. ACID64 benutzt ja nur .sid-files wo die infos zum richtigen SID mit gespeichert sind.


    Ich habe gestern noch mal einige Zeit mit der HardSID.dll in JSIDplay2 gehört. Also meines Erachtens ist die zuverlässig. Mir sind bis jetzt keine Aussetzer oder Fehler aufgefallen.

    Das es stabil läuft ist erfreulich. Was die automatische Auswahl des richtigen SIDs angeht muss ich mal im VICE schauen, ob die Info schon vorliegt.

    Dann könnte das schon klappen. ImJSIDPlay2 mache ich das auch so (eine Chipnummer für 6581 und eine für 8580). Ist zwar nicht perfekt (Was ist mit Stereo?) aber es reicht fast immer.

    Ich habe jetzt dir hardsid library nach Apple MacOSX portiert und es sieht so aus, dass ich dort wieder auf Schwierigkeiten stoße, diese zu verwenden: "Cannot retrieve config descriptor".

    Also der Aufruf libusb_get_active_config_descriptor geht schief.

    Mal schauen ob ich das herausfinde.


    https://sourceforge.net/p/jsid…rc/main/resources/darwin/


    Was die hardsid Schnittstelle angeht, werde ich höchst wahrscheinlich den VICE Ansatz wählen und die Schnittstelle nochmal ändern. Dann kann man auch wieder jeden SID des HardSID4U ansteuern.

    Edit: Es kann sein, das mein keine andere vice.ini benötigt, aber ich blicke noch nicht ganz durch mit dessen Parametern.

    Wichtig ist, das er Gerät 0 verwendet (SidHardSIDMain=0???)

    Wer sich da auskennt, bitte mal sein Wissen teilen.

    Ich habe ja keine Ahnung von programmieren. Aber könnte es nicht hilfreich sein Wlfred zu fragen wie er in seinem ACIDPlayer die Auswahl des SID-Chips vornimmt?

    Ja natürlich. Ich hatte Sandor Téli von HardSID und Wilfred von ACID64 geschrieben.

    Ich bin auf Wilfreds Antwort gespannt


    und habe zwischenzeitlich am Mac OSX Port der hardsid.dll weitergemacht.

    Ich habe einen virtuellen MacOSX El Capitan am laufen und mit installiertem brew.

    Damit komme ich erstmal weiter

    Nur zur Info.


    Ich wunderte mich, dass VICE mit der deviceID SID chips adressiert.

    Ich mache das so, das es im JSIDPlay2 nur ein Device gibt und das SID Register mit Bit 6/7 den Chip adressiert.

    Ich habe die Frage wie das mit der HardSID Schnittstelle gemeint ist mal an Sandor Télio von HardSID weitergeleitet.

    Ich werde dann wahrscheinlich nochmal Änderungen vornehmen.


    Zwischenzeitlich versuche ich einen Virtuellen Mac zu verwenden mit VirtualBox oder ein Gerät aufzutreiben um diese Platform mitzubauen.

    Hallo,


    so ich kann endlich Erfolg vermelden. Ich habe jetzt VICE am laufen mit der DLL (getestet mit HardSID4U).

    Was ist also zu tun?


    1. WinUSB Treiber installieren für HardSID:

    https://zadig.akeo.ie/

    und das Gerät dem WinUSB Treiber zuordnen


    2. korrigierte DLL runterladen:

    hardsid.dll

    und hardsid.dll Speichern im VICE Verzeichnis

    C:\Users\kschw\Downloads\GTK3VICE-3.9-win64\bin


    3. angepasste VICE INI Datei in das gleiche Verzeichnis kopieren

    vice.ini


    4. VICE mit HardSID Unterstützung starten

    x64sc.exe -config C:\Users\kschw\Downloads\GTK3VICE-3.9-win64\bin\vice.ini -sidenginemodel 768 -sidengine 3


    Edit: Es kann sein, das mein keine andere vice.ini benötigt, aber ich blicke noch nicht ganz durch mit dessen Parametern.

    Wichtig ist, das er Gerät 0 verwendet (SidHardSIDMain=0???)

    Wer sich da auskennt, bitte mal sein Wissen teilen.

    Nabend,


    ich habe gerade mal eine halbe Stunde etwas getestet, zum Schluss diverse Digi-Sids, u.a. von Cycleburner und A-Man´s Black Panther gespielt. Und ich muss sagen, alles klaglos. das einzige was mir auffällt, ist, allerdings egal, ob HardSID.dll oder die originale HardSID-Unterstützung, dass der Player oben rechts, mit dem man auf Pause schalten kann, die HardSID zumindest bei Musik in Demos, leider nicht mutet, so dass es da immer zu Soundhängern kommt, falls man mal auf Pause stellt.


    aber sonst freu ich mich echt, dass es so weit mit der dll gut läuft. :-)

    Das mit der Pausefunktion fehlt tatsächlich noch. Also Mute/Unmute. Da muss ich mal schauen.

    Ich habe mir heute mal GTKVice3.9 installiert und die DLL versucht damit zu testen.


    x64sc -config C:\Users\kschw\Downloads\GTK3VICE-3.9-win64\bin\vice.ini -sidenginemodel 768 -sidengine 3


    und vice.ini:

    ...

    [C64sc]

    SidHardSIDMain=1

    SidEngine=3

    SidModel=0

    ...


    Erkenntnisse:

    1.

    VICE ruft InitHardSID_Mapper anscheinend nicht auf

    initialisisern muss ich USB also implizit.

    2.

    GetHardSIDCount hat anscheinend keine Parameter für VICE. Ich dachte, es muss eine DeviceID angegeben werden.

    3.

    In den Settings von VICE taucht zwar hardsid auf und ist angehakt, aber die Soundausgabe schaltet nicht um.

    Ich übersehe mal wieder etwas.

    Ich habe jetzt noch ein Update nachgeschoben.

    Das USB Gerät wird jetzt auch ordnungsgemäß wieder freigegeben.

    Dadurch kann man jetzt auch in der Toolbar die Geräte hin und her wechseln, ohne das es mehr zu Fehlermeldungen kommt.


    Mir fällt übrigens auf, dass ich auch noch eine MacOSX Version hinzufügen sollte um alle Platformen abzudecken. Dabei kam es beim letzten Mal zu Problemen.

    Ich bin mal gespannt, ob es jetzt besser klappt, ohne den Java Wrapper.