SID Wiedergabe über VIC IRQ bei gleichzeitiger Datenübertragung via WiC64

Es gibt 7 Antworten in diesem Thema, welches 544 mal aufgerufen wurde. Der letzte Beitrag (2. Juni 2024 um 17:57) ist von InsertDisk2.

  • Hallo,

    ich hätte mal eine technische Frage zu dem im Titel beschriebenen Situation.

    In der WiCGameBox habe ich jetzt einmal ein SID File welches über den VIC IRQ angesprungen wird. Gleichzeitig kann die GameBox bedient werden und macht immer mal wieder durch Usereingaben Übertragungen, was man dann aber an "Aussetzern" im SID hört.

    Jetzt meine Frage:

    Wenn ich nur einen VIC IRQ habe und der WiC64 für die Übertragung den IRQ nicht während seiner Übertragung deaktiviert, wieso bekomme ich trotzdem Aussetzer?

    Auch wenn die Übertragung der Daten länger dauert, sollte doch der IRQ für den SID die Übertragung für ein korrektes abspielen des SIDs pausieren.. :/

    Wo liegt das Problem?

    - WiC64 - The Commodore 64 Wireless Interface -> Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.
    - WiC64 - Radio -> Bitte melde dich an, um diesen Link zu sehen.
    - WiC64 - GameBox -> Bitte melde dich an, um diesen Link zu sehen. :thumbsup:
    - WiC64 - DemoBox -> Bitte melde dich an, um diesen Link zu sehen.

  • Kommt drauf an, wie lange der IRQ vom WiC blockiert wird. Falls das länger als ein Frame passiert, gehen natürlich einzelne Raster-IRQs verloren.

    Du kannst in einem separaten Timer (CIA2/$DD06/07 zum Beispiel?) die Zeit mitzählen lassen und in Deiner IRQ-Routine dann ggf. Zeit "aufholen".

    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • Kommt drauf an, wie lange der IRQ vom WiC blockiert wird. Falls das länger als ein Frame passiert, gehen natürlich einzelne Raster-IRQs verloren.

    Das ist ja die Frage, wieso wird der IRQ vom WiC blockiert? Das WiC sperrt den IRQ nicht.

    ich glaube +wic64_dont_disable_irqs könnte dein freund werden

    Genau das habe ich ja gemacht und es bringt keinen Unterschied.

    - WiC64 - The Commodore 64 Wireless Interface -> Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.
    - WiC64 - Radio -> Bitte melde dich an, um diesen Link zu sehen.
    - WiC64 - GameBox -> Bitte melde dich an, um diesen Link zu sehen. :thumbsup:
    - WiC64 - DemoBox -> Bitte melde dich an, um diesen Link zu sehen.

  • Erfolgt der Aufruf der WiC-Routinen aus dem IRQ heraus oder wartest du im IRQ darauf, dass die WiC-Abfrage abgeschlossen ist? Ansonsten kann mich mir das auch nicht erklären. Wenn ich den IRQ von den WiC-Routinen getrennt halte, geht es bei mir.

    +wic64_dont_disable_irqs sorgt ja "nur" dafür, dass IRQs während der WiC-Abfrage weiterhin erlaubt sind. Erfolgt die WiC64-Abfrage jedoch aus dem IRQ heraus, passiert dann natürlich so lange nix im IRQ mehr, bis die Abfrage abgeschlossen ist. Da das je nach Umfang ja durchaus mal ein paar Frames dauern kann, kommt es dann zum "Ruckler".

  • Der gesetzte IRQ triggert lediglich die Playroutine.

    Die WiC Aktivitäten werden durch User Tastatur Eingaben getriggert die ausserhalb eines IRQs in einer Schleife zur Tastaturabfrage ausgewertet und gestartet werden.

    Kernal und Basic sind aktiviert und alle (System) IRQs z.b. der CIAs sind nicht deaktiviert.

    - WiC64 - The Commodore 64 Wireless Interface -> Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.
    - WiC64 - Radio -> Bitte melde dich an, um diesen Link zu sehen.
    - WiC64 - GameBox -> Bitte melde dich an, um diesen Link zu sehen. :thumbsup:
    - WiC64 - DemoBox -> Bitte melde dich an, um diesen Link zu sehen.

  • OK...merkwürdig. Die aktuellste Library-Version von GitHub hast du? Ggf. mal Testweise einen anderen Tune probieren?

  • Ja aktuelle Libs hab ich.

    Ich baue den Teil mal separat und teste dann ob das evt von dem anderen Kram irgendwo her kommt.

    - WiC64 - The Commodore 64 Wireless Interface -> Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.
    - WiC64 - Radio -> Bitte melde dich an, um diesen Link zu sehen.
    - WiC64 - GameBox -> Bitte melde dich an, um diesen Link zu sehen. :thumbsup:
    - WiC64 - DemoBox -> Bitte melde dich an, um diesen Link zu sehen.