Hallo Besucher, der Thread wurde 273k mal aufgerufen und enthält 2404 Antworten

letzter Beitrag von frankyman1969 am

Denise C64 + Amiga Emulator

  • @enigma


    ich habe die Tickets als 'open' markiert und kurz was dazu geschrieben.


    Das mit dem Chroma Artefakt passiert nur mit den alten VIC-II ? Gibt es einen Bezeichner für diesen Effekt ? Ist der RF Modulator im C64 aktiv oder S-Video?


  • Da habe ich übrigens noch keinerlei Antwort im 1541U Forum dazu erhalten, hab eben mal nachgeschaut. Früher wurde das schneller beantwortet von irgendeinem Foren-Member dort, wenn was unklar war und jemand mal was gefragt hat. Nun habe ich gesehen, dass dort doch mehrere ältere offene Fragen verschiedener Member sind, auf die niemand bislang geantwortet hat. Naja, mal weiter abwarten. Genau solch eine "Disks durchschalten" Funktion habe ich immer vermisst auf meinem 1541-Ultimate.

  • @enigma


    ich habe die Tickets als 'open' markiert und kurz was dazu geschrieben.


    Das mit dem Chroma Artefakt passiert nur mit den alten VIC-II ? Gibt es einen Bezeichner für diesen Effekt ? Ist der RF Modulator im C64 aktiv oder S-Video?

    Ich hatte soeben noch etwas dazu gepostet. Ist nur beim alten VIC-II so. C64 ist über S-Video angeschlossen. Ein Name fü den Effekt ist mir nicht bekannt.

  • enigma

    Ich will noch mal kurz ein paar Sachen zwecks PAL Emulation beschreiben. In Deutsch fällt mir das leichter als in englisch auf Bitbucket.

    In den Schaltkreisen des RF-Modulator kommt es zu einer Verzögerung bei Veränderung der Luminanz, nicht jedoch bei der Chrominanz. Besonders der Anstieg von Luminanz ist hiervon betroffen.

    Das erzeugt einen Schmier-rand im C64 Start Bildschirm wenn die border rechts beginnt, da das dunkle Blau nicht sofort im nächsten Pixel die Luminanz des hellen Blau erreicht. Die Luminanz im nächsten Pixel ist dann ungefähr der Mittelwert aus alter und neuer Luminanz. Ebenso wird dadurch der Schrift Font dünner und wirkt verschmiert. Aus diesem Grund hauen viele den RF-Modulator aus ihrem C64 raus.

    Luminanz Anstieg/Abfall emuliert ausschließlich den RF-Modulator. Sind beide Checkboxen deaktiviert, bedeutet das kein RF-Modulator aktiv.

    Der schwarze Schatten den man um den weißen FastLoad Text sieht, ensteht durch Chroma Subsampling. Das Chroma wird durch Bandbreiten Reduktion (verringerte Abtastrate) nicht in voller Qualität übertragen. Das Chroma anliegender Pixel vermischt sich. Über den FIR Filter slider in Denise kann man die Bandbreiten Reduktion steuern. Z.b. beim Spiel Toki kann man mal schauen ob der TV die schwarzen Pixel in den grünen Blättern noch erkennbar darstellen kann oder ob sich beide Farben mischen. Deaktiviert man die PAL/CRT Emulation erkennt man den schwarzen Pixel ganz genau. Zieht man den FIR Filter Slider vermischt es immer mehr.

    Die Übertragungs-Bandbreite ist für Composite und S-Video übrigens gleich. Bei S-Video wird Chroma nur von Luma getrennt übertragen. Bei Composite ist Chroma dem Luma aufmoduliert und wird am Empfänger wieder rausgerechnet, was nicht verlustfrei funktioniert, deswegen die schlechtere Qualität.

    Die beiden Blau Töne im C64 Start Bildschirm haben genau das gleiche Chroma aber natürlich unterschiedliches Luma. Aus diesem Grund sieht man den schwarzen Schatten beim Normal Text über dem Fastload Text nicht. Denn hier haben mehrere Bildzeilen das gleiche Chroma. Chroma Subsampling verursacht hier keine Abweichung vom im C64 generierten Chroma. Wenn der Wert sich nicht ändert, ist es egal wie viel Zeit zwischen den Abtastungen liegt.

    Dies ist ein Grund die Farbspektrum Emulation der Paletten Emulation vorzuziehen. Beim zurückrechnen der RGB Palette in Luma/Chroma muss nicht zwingend für die beiden zuvor erwähnten Blau Töne das selbe Chroma ermittelt werden. Egal wie verschoben die Phase auf dem Farbkreis zwischen einzelnen C64 Geräten auch ist, die beiden Blau Töne haben immer das gleiche Chroma.

  • Zitat von enigma

    Ich hatte soeben noch etwas dazu gepostet. Ist nur beim alten VIC-II so. C64 ist über S-Video angeschlossen. Ein Name fü den Effekt ist mir nicht bekannt.

    https://www.linusakesson.net/scene/safevsp/index.php ich glaube in einem der unteren postings wird der Effekt beschrieben. Ich versuche das mal umzusetzen und dann sehen wir ja ob es den Effekt verursacht.

  • Die Annahme mit dem 9/16 Periodengewinn des Farbträgers pro Pixel klingt sehr plausibel.


    Ich finde es wichtig, dass sich eine Emulation immer am echten C64 orientiert. Der 'purpur Ton' Effekt (bezogen auf den Startbildschirm) ist aber schon lange bekannt. Es wäre schön, wenn die Emulation das auch reproduziert. Dass der Effekt mit dem Farbträger zu tun haben muss, ist naheliegend.

  • Ich hab das mit den unterschiedlichen Hertz-Zahlen für den Vollbildmodus jetzt mal vorübergehend, bis es offiziell Einzug hält in den Emu, für mich mit einer Zwischenlösung vereinfacht. Denn es gibt ja noch mehr Emulatoren, welche dies nicht anbieten, kann man deshalb auch dafür brauchen.


    Zunächst versuchte ich es über einen "Godmode "Ordner im Win7, aber auch dort findet man keine Verknüpfung, welche direkt zur Hertz-Umschaltung oder Auflösungs-Umschaltung führt. Es gibt zwar an die 200 Direkt-Verknüpfungen in diesem Ordner, wenn man ihn sich anlegt, aber keine führt direkt zur Bildschirm-Refresh-Rate. Um mir aber den ständigen Weg zu ersparen, im Win-7 immer in die Menüs "Bildschirmauflösung / Erweiterte Einstellungen / Monitor" gehen zu müssen, um es dort abzuändern, suchte ich nach einer schnelleren Lösung.


    Diese fand ich dann auch mit dem Tool "NirCmd":

    https://www.nirsoft.net/utils/nircmd.html


    Es gibt dort nämlich unter anderem diesen "setdisplay" Befehl hier

    http://nircmd.nirsoft.net/setdisplay.html

    über den man sowohl die Vollbildauflösung als auch die Refresh-Rate und noch ein paar andere Sachen direkt per Commandline-Befehl verstellen kann


    Damit hab ich mir jetzt zwei Verknüpfungen direkt auf's Desktop gelegt, welche zwischen 50Hz und 60Hz umschalten. Die Auflösung, die man auch noch ändern könnte wie man will, bleibt dabei bei mir jetzt aber bei 1280x1024, ich will nur die Hz-Zahl ändern für diejenigen Emu's, die das nicht direkt im Menü selbst anbieten. Zu den zwei Verknüpfungen hab ich mir dann noch ein paar Icons nach meinem Wunsch bearbeitet, also direkt den Hz Wert in's Icon geschrieben. :)


    Das ganze sieht jetzt hier dann so aus momentan:




    Und in den Verknüpfungen stehen direkt die dafür nötigen Befehle. Ich nenne die hier mal, denn vielleicht will sich ja noch jemand, so eine schnelle Hz-Umschaltmöglichkeit direkt auf's Desktop legen? Wenn man häufig verschiedene Emulatoren benutzt, verbessert das auf jeden Fall das Handling.


    In den zwei Verknüpfungen sieht es dann so aus:



    In der dortigen "Ziel" Zeile werden die NirCmd Kommandos einfach hinten angefügt, was dann bei der "switch to 50Hz" Verknüpfung dann insgesamt so aussieht:


    "C:\Program Files\nircmd (tool um sachen als commandline umzuschalten)\nircmdc.exe" setdisplay 1280 1024 32 50


    Man muss lediglich


    setdisplay 1280 1024 32 50


    in der "Ziel" Zeile noch hinten anfügen. 1280 und 1024 sind die Auflösung, 32 die Farbtiefe und 50 die Hz-Zahl, also die Bildwiederholrate (Refresh-Rate).


    Bei der "switch to 60Hz" Verknüpfung muss man dann logischerweise dies hinten anfügen:


    setdisplay 1280 1024 32 60



    Ich bin momentan noch am herumexperimentieren, wie ich EINE Verknüpfung erstellen kann, welche direkt das Laden desjenigen Emulators, bei dem ich auf 50Hz vorher umschalten muss, mit diesem Umschaltbefehl zusammen ausführt. Das wird sicher auch irgendwie funktionieren mit "NirCmd" (wahrscheinlich über einen zusätzlichen "exec" Befehl in dieser Zeile), aber ich hab es bislang noch nicht hinbekommen, dass er das so macht, wie ich will.


    Das wäre natürlich die beste Lösung. Dann klickt man beispielsweise einfach nur die Verknüpfung von "Denise" an, der Emu wird geöffnet und gleichzeitig schaltet Windows dafür noch automatisch auf 50Hz Bild um, und man muss rein gar nichts mehr selbst machen. Nur nach dem Beenden des Emu's wird es wohl nicht automatisiert klappen, dass er wieder auf 60Hz Bild geht. Dafür muss man halt dann noch einmal die "switch to 60Hz" Desktop-Verknüpfung drücken wenn der Emu geschlossen ist. Das ist verkraftbar. Aber auch so wie es jetzt ist, wenn man also zwei Desktop-Verknüpfungen drücken muss (einmal vor DENISE und einmal danach), geht es schon wesentlich flotter, als dies immer in den Windows Menues machen zu müssen.

  • Geht, wie schon erwähnt auch per Hotkey Belegung mit HRC (meinetwegen Strg+Alt+5 für 50Hz, bzw. Str+Alt+6 für 60Hz) auch recht komfortabel. Kommandozeilenumschaltung ist natürlich noch besser, halt für die ganz faulen. Bespiele gibt es dazu auch. :D



    https://funk.eu/hrc/

  • Kommandozeilenumschaltung ist natürlich noch besser, halt für die ganz faulen. Bespiele gibt es dazu auch. :D


    Man könnte es halt wahrscheinlich auch so machen, wie ich erwähnt hatte. Also, dass man diesen Befehl im "NirCmd" direkt mit der Verknüpfung vom DENISE zusammenhängt und dann manuell rein gar nichts mehr machen muss, um auf die 50Hz umzuschalten bevor der Emu startet. Bislang hab ich das noch nicht hinbekommen, aber irgendwie muss es ja gehen, zwei Befehle zu verknüpfen, damit das wie gewünscht funktioniert.


    Könnte man übrigens auch für den YAPE C16/Plus4 Emulator brauchen und auch für den Micro64 und noch ein paar Emu's anderer Retro-Systeme, die das auch nicht selbst können im Emu-Menü.


    Sieht mit diesem HRC Tool auch nicht schlecht aus, funktioniert da solch eine Verknüpfung mehrerer Befehle, sodaß es geht mit nur einer einzigen klickbaren Verknüpfung, dann beides zu haben, also wie erwähnt? Ich hab mal auf der NirCmd Homepage die Entwickler angeschrieben wie man mehrere solcher Befehle in einer Zeile verknüpfen kann. Mal sehen, wann und ob die antworten?

  • Getestet habe ich das zwar nicht.

    Haut nicht hin auf die Art. Ich hab es auch noch auf andere Art probiert. Es gibt im NirCmd den Befehl "exec show", den man dann mit einer nachfolgenden Pfadangabe (also, wenn der Emu in einem anderen Ordner ist) und einer angegebenen exe eines zu ladenden Files, verknüpfen kann. Nimmt man nur diesen Befehl klappt das auch, dass der Emulator nachgeladen wird, aber sobald man vor diesen Befehl den anderen Befehl mit der Hz-Änderung stellt, lädt er dann die Emulator exe nicht mehr nach. Dreht man die Befehle um, dann lädt er den Emu, aber schaltet die Hz wieder nicht um. Also immer den hinteren Befehl führt er nicht aus.


    Ich habe versucht, die beiden Befehle sowohl mit "&", mit "&&", als auch mit "||" (double-pipe) miteinander zu verknüpfen, aber klappt so nicht. Aber ich bin jetzt auch nicht der CommandLine Profi, vielleicht hab ich auch irgendwas nicht richtig beachtet?


    Leider hat noch niemand geantwortet von den NirCmd Leuten zu meiner Frage, die ich im "Contact us" auf deren Homepage per Email gestellt habe. Wenn da was kommt, werde ich es hier schreiben, falls die überhaupt antworten? Ich mache das halt jetzt über meine zwei erstellten Desktop-Verknüpfungen. Zweimal (einmal vorher, einmal nachher) je ein Icon zu drücken zur Hz-Umschaltung, ist ja jetzt auch verkraftbar eigentlich.

  • Genau, kleine Batch Datei, und gut ist's.


    Kriege ich so aber wohl nicht hin. Mit so Commandline Sachen hab ich schon lange nichts mehr gemacht und mit Batch Dateien schon gar nicht.


    Ich verstehe nur nicht so ganz, warum ich auf der NirCmd Seite, auf der all die Kommandos erklärt werden


    http://nircmd.nirsoft.net/setdisplay.html


    nichts darüber finde, mit welchen Zeichen man mehrere Befehle in einer Line verknüpfen kann. Oder es geht vielleicht auch gar nicht, kann auch sein?