Hallo Besucher, der Thread wurde 33k mal aufgerufen und enthält 122 Antworten

letzter Beitrag von Squidward am

Bad Reception TV (BR-TV)

  • So...ich glaube, ich habe das Problem gefunden. Offensichtlich wird mit dem Autoload-Command doch nicht die Reu_Bank (Reu_Base+2) inkrementiert - zumindest nicht abfragbar bzw. komplett bis $ffxxxx (war damals ja auch nicht nötig - gab ja keine MB-REUs)...


    Im WinVice 2.4 Emulator wird das aber noch gemacht. Die neusten NightlyBuilds von Vice scheinen das (der realen Hardware) angepasst zu haben...

  • Ich habe das Video mit dem neuen Player sowohl auf der 1541u1 als auch auf dem TC64 getestet: auf beiden läuft das Video einwandfrei. Es gibt lediglich einen kleinen Unterschied: bei TC64 gibt es keine Sprünge im Wave, aber das Video endet kurz vor Ende des Wave, d.h. die letzten paar Sekunden vom Wave werden abgeschnitten, bei der 1541u1 höre ich gelegentliche kleine Sprünge, aber das Wave endet mit Ende des Videos.


    Ich vermute dass der kleine Unterschied an der Art der REU-Emulation liegt: soweit ich weiß emuliert die 1541u1 bei einer 16 MB-REU einen "Wraparoundbug", das TC64 jedoch nicht. Der Wraparoundbug passierte auf echter Hardware nur, wenn man eine echte REU auf mehr als 512 KB erweitert hat: dann "springt die REU nach 512 KB wieder an den Anfang", wenn man nicht per Kommando die Speicherbank umschaltet (genaue Details kenne ich nicht, da ich mich mit der REU-Programmierung noch nicht viel beschäftigt habe, außer für das Konfigurationstool, wo aber nur das zweite Byte und nichts in höheren Adressbereichen bearbeitet werden muss). Da es nie eine 16 MB-REU gegeben hat und alle REUs mit mehr als 512 KB nicht offiziell gab (waren so nicht von Commodore hergestellt, sondern "aufgebohrte REUs"), gibt es keine "korrekte Emulation". Ob man diesen Wraparoundbug implementiert oder nicht ist Auslegungssache. Beim TC64 hat man darauf verzichtet, da durch diesen Bug manche Software nicht korrekt läuft (z.B. der Limon REU Wave Player), bei der 1541u1 hat man sich dazu entschieden ihn zu implementieren, um ein Verhalten von "aufgebohrten REUs" zu emulieren. Die meiste Software, die 16 MB-REUs unterstützt läuft sowohl mit als auch ohne Wraparoundbug (z.B. der Nuvieplayer und der Hitmen REU Wave Player).

  • Danke für die positiven Nachrichten :)


    Mit dem Wrap Problem kenn ich mich aus, das hat nämlich schon das Video-Abspielen betroffen (dort werden 3kb am Stück gefetcht). Beim Sampleplayer hatte ich das auch abgefangen, aber die Abfrage ging vom Vice2.4 Verhalten aus, das leider nicht ganz der Originalhardware entspricht. Diese Routine habe ich in der Testversion noch nicht ersetzt. Deshalb läuft es wohl mal mit, mal ohne Sprünge.

  • Ich habe gerade mal die 0.62beta getestet. Beim TC64 erhalte ich nur bunte Streifen auf dem Bildschirm, bei der 1541u1 wird das Video jedoch in beiden Varianten korrekt abgespielt. Ich habe das Gefühl dass das TC64 mit einem Firmware-Update noch irgendeinen anderen REU-Bug bekommen hat, denn der Sampleplayer von Hitmen läuft auch nicht mehr korrekt (Ton springt ziemlich stark bei 11kHz-Samples), der hat aber früher mal funktioniert...

  • Ich habe das Gefühl dass das TC64 mit einem Firmware-Update noch irgendeinen anderen REU-Bug bekommen hat

    Dann müßte v0.61 eigentlich auch nicht mehr laufen, oder..? Die lief doch zumindest teilweise. :nixwiss:
    Gibt es ein Change-Log zur neusten TC64 Version & steht da was von "REU" drin?

  • Die v0.61 läuft auch noch, die v0.62 allerdings nicht.
    An der REU wurde in vergangenen Versionen mehrmals was geändert, da ich die REU aber meist nur für Nuvies benutzt habe, die immer noch laufen, weiß ich nicht, bei welcher Version sich die Fehler eingeschlichen haben.


    Hier mal Infos zu REU-Änderungen aus den Changelogs:


    Beta 9d:
    - Fixed RetroReplay "REU compatibility" logic.
    - Fixed REU so it can write into color RAM correctly (REU emulation)
    - Fixed REU buffer swap operation (REU emulation)
    - Fixed REU register contents after failed verify operation (REU emulation)


    Beta 9e:
    - Fixed REU eliminating transfer errors caused by badlines (and sprite DMA).


    Beta 9f:
    - Fixed glitch when writing to colorram from REU when BA signal goes low.

  • So, gestern nicht mehr geschafft, aber jetzt Zeit zum testen gefunden.


    Auf der 1541 Ultimate II funktioniert es auch. Ich habe es auf mehreren Rechnern mit dem 8580 SID und dem aktuellsten Player gestestet.
    Irgendwelche Sprünge im Wave sind mir nicht aufgefallen. Auf meinem C64 mit Digifix klingt es lauter und irgendwie dynamischer, aber auch etwas verzerrt und unsauber.


    Ein paar Dinge sind mir aufgefallen, die eventuell nicht so gewollt sind:
    Am Schluss laufen Farbstreifen über den Bildschirm, es startet nicht wie ein Nuvie von neuem.
    Beim "Buffered Playback" gibt es nur Grautöne, im "Brute Force Modus" sind die Szenen ja unterschiedlich eingefärbt. Ansonsten sehe ich keinen Unterschied.
    Wenn ich Wave ohne Bild im Tool einstelle, komme ich nicht mehr mit der mittleren Taste in das Menü der Ultimate, das Bild bleibt schwarz bzw es wechselt die Farben wenn ich eine der anderen 2 drücke. In diesem Abspielmodus musste ich den C64 komplett ausschalten, um wieder einen anderen zu testen.

  • Danke für´s Testen! Schön, dass es zumindest auf Ultimate I & II funktioniert :)


    Die Farbstreifen sind meine ERROR-Loop. Da ich die Synchronität testen wollte habe ich absichtlich das wiederholte Abspielen des Clips verweigert, da dieser mit jedem Loop asynchroner wird. Ein wirkliches Reset von Audio & Video gibt es nämlich noch nicht.
    Der Unterschied zwischen bunter Szenen und Grautönen liegt am Player: "Buffered" hat es schlicht noch nicht implementiert.


    Wenn ich Wave ohne Bild im Tool einstelle, komme ich nicht mehr mit der mittleren Taste in das Menü der Ultimate, das Bild bleibt schwarz

    Mmmh. Vielleicht wird der Screen nicht wieder eingeschaltet? Allerdings habe ich keine U1541 und weiß eh nicht, was der mittlere Knopf macht :P Passiert das denn auch mit v0.61?


    Die v0.61 läuft auch noch, die v0.62 allerdings nicht.
    An der REU wurde in vergangenen Versionen mehrmals was geändert, da ich die REU aber meist nur für Nuvies benutzt habe, die immer noch laufen, weiß ich nicht, bei welcher Version sich die Fehler eingeschlichen haben.

    Seltsam. Mit v0.62 habe ich das Inkrementieren der REU-Bank wieder komplett selbst übernommen (weil die REU das nicht selber macht? Zumindest bei der Ultimate und den NightlyBuilds von Vice). Bei v0.61 hab ich das nur unsauber reingehackt - und das gab Sprünge beim Abspielen in Vice...

  • Ich habe mal die neuen Dateien getestet. Die Musik klingt tatsächlich etwas besser (wobei ich auch die erste Version schon gut fand, wenn man bedenkt, dass gleichzeitig noch ein Video läuft).


    Auch gut: die 0.63beta läuft auch wieder auf dem TC64 (und auch auf der 1541u), wobei beim TC64 das Video vor der Musik zu Ende ist (die Musik wird hart abgebrochen). Dieses Problem tritt bei der 1541u nicht auf.

  • Ich habe mal die neuen Dateien getestet. Die Musik klingt tatsächlich etwas besser

    Danke! Mein Eindruck war auch etwas besser. Besonders der Anfangston, und generell etwas satter. Gut zu wissen, dass die neuen Builds von WinVICE so nah am Original sind.


    Auch gut: die 0.63beta läuft auch wieder auf dem TC64

    Hey, super! Scheint wohl eher ein IRQ Problem gewesen zu sein: am Player hatte ich nämlich nix geändert :)
    PS: Vielleicht liegt´s auch am Packer. Mir ist aufgefallen, dass ich die neuste Beta gar nicht gepackt hatte, sorry...


    die Musik wird hart abgebrochen

    Könnte es sein, dass die Musik beim TC64 (minimal) zu schnell abgespielt wird?

  • eher umgedreht: die Musik scheint auf dem TC64 etwas zu langsam zu laufen, das höre ich auch raus, wenn ich direkt mit deinem hochgeladenen Video vergleiche. Dadurch, dass die Musik langsamer als das Video läuft, ist sie noch nicht zu Ende wenn das Video zu Ende ist und wird dadurch abgebrochen, wenn der Player stoppt.


    Edit: ich habe gerade mal aus Spaß ausprobiert, was passiert, wenn man bein TC64 den Turbo aktiviert: dann wird die Musik VIEL zu schnell abgespielt ("Mickymausmusik"), wenn sie durch ist spielt er offenbar die Videodaten als Musik ab (Rauschen und andere Störgeräusche) und nach einer Weile kommt nochmal das Lied in der "Mickymausedition". Das Video wird aber mit normaler Geschwindigkeit abgespielt und zwar fehlerfrei, damit ist dein Player "turbofester" als der Nuvieplayer (dort kommt bei aktiviertem Turbo nur Grafikmüll auf dem Schirm). Durch dieses Experiment weiß ich jetzt, dass der Player die Musik nicht direkt mit dem Video synchronisiert, was vermuten lässt, dass es eventuell gar nicht an der REU liegt, sondern der C64 ein geringfügig anderes Timing bei gestecktem TC64 hat.

  • Ja, du hast natürlich recht - die Musik scheint zu langsam zu spielen. 44.1KHz sind da ja sehr empfindlich, nur 1 Cycle mehr verlangsamt hörbar. Falls du die Möglichkeit hast probier mal, im Sprite-On/Off-Register ($d015) alle Sprites auszuschalten ($00). Dies erhöht nochmal die Abspielgeschwindigkeit der Wave-Datei. Vielleicht reicht das schon, um auch mit dem TC64 wieder synchron zu sein, wenn es gleich zu Beginn gemacht wird..?

  • Hab mal ein paar Frames "in Farbe" gemacht - sprich: Zeichensatz+Screen+Colorram, dazu unnötige 44.1KHz Audio. Qualitativ wird´s da in allen Bereichen echt grenzwertig... :/


    [Externes Medium: https://vimeo.com/198720443]


    Das Source-Video hätte dringend noch angepasst werden müssen. CSAM hat da echt Probleme mit den gleichen Zeichen (Video hatte miese Qualität) und Farben. Mußte sogar auf Dithering zurückgreifen, obwohl ein Zeichentrickfilm eigentlich ohne Dithering besser aussehen sollte. Dem war leider nicht so - und Nick sieht noch am besten aus.
    Hier mal der Vergleich:

  • Ich finde das sieht gar nicht schlecht aus, der Sound ist auch ok, immerhin läuft das auf einem 1 MHz-Prozessor und ist das erste Videoformat für den C64, das Farbbilder + Samples spielen kann (avf kann nur schwarz-weiß und für den Ton wird ein mp3-Modul benötigt, Nuvie hat zwar die beste Bildqualität, kann aber nur SID-Sound).


    Was mich technisch interessiert: warum wird bei deinem Player das Mahoney-Format verwendet und kein normaler Wave-Player ? Spart das Mahoney-Format Rechenleistung oder Speicherplatz ? (ich kenne das Format nicht, daher die Frage)

  • Bei Mahoney wird nur stets ein Wert an der Lautstärke vorbeigeführt, genau wie beim "klassischen" 4Bit Sample (den der Player auch unterstüzt). Mahoney hatte herausgefunden, dass sich mit bestimmten SID Einstellungen die "Knacks" alle minimal unterscheiden, so daß man mit ihnen eine quasi 8Bit Auflösung bekommt. Leider sind die Werte nicht linear, so dass man die Wavedatei erst konvertieren muss.


    Es gibt noch eine Methode unkonvertierte 8Bit (?) Waves abzuspielen (evtl. macht der Lemonplayer das), aber die habe ich mir nie richtig angesehen. Ich glaube, dort wird der Wert am Filter vorbeigeführt. Falls dort pro Aufruf mehr als ein Wert gesetzt werden muss wäre es bei mir wahrscheinlich zu langsam für 44.1KHz. Zudem braucht es bei der Methode wohl ein ständiges Carrier-Signal. Aber, wie gesagt, das habe ich mir nie richtig angeschaut :/


    PS:Ich hoffe, demnächst nochmal ein Update zu posten. Das sollte dann neben "Nick" auch "Bad Apple" und "Personal Jesus" abspielen. Habe nochmals am Waveplayer optimiert (?), er sollte nun in 1-Cycle Schritten die Abspielgeschwindigkeit anpassen können. Bin gespannt, ob das noch auf realer Hardware funktioniert ;)