Hello, Guest the thread was called3.6k times and contains 132 replays

last post from Hagtrix at the

TheC64 Lag(e)beurteilung (OT aus: "Infos aus erster Hand")

  • Die Fakten wurden aber schon oft genannt, teils hier, teils in

    anderen Foren.


    Die ersten beiden Tests hatte ich schon vor vielen Jahren

    gemacht. Einfach per Oszi (und Photodiode/Transistor)

    Verzögerung zwischen Eingang (z.B. Joystick) und Ausgang

    (Photodiode auf dem Schirm) messen.

    C128 an Röhre: kann mich an den genauen Wert meiner

    Messung nicht mehr erinnern, der Wert hängt aber auch

    von der verwendeten Röhre und der Phosphorbeschichtung

    ab. Ich nenne hier mal einen Bereich zwischen 50 us und

    250 us, grob müsste es der Bereich sein kann aber auch

    leicht abweichen (bei mir waren es glaube ich 150 us,

    Samsung Röhre).

    C128 an TFT: Eigenbau, per ADC/Video-In-Chip Signal

    einlesen und per Video-Out-Chip (analog oder auch digital)

    ausgeben, bei meinen TFTs (ältere Modelle) bin ich nie

    unter 1 ms gekommen.

    U64 und TheC64 habe ich nicht, von U64 habe ich aber

    den Schaltplan, d.h. da komme ich mit meinem Aufbau

    auf die gleichen Werte wie mit C64=>TFT.


    Bei den Tests kommt es auch darauf an, wo im Bildverlauf

    der Input kommt. Aber auch dass lässt sich berücksichtigen.


    Also, keine Geheimnisse.

  • Mal eine ketzerische Frage: Hat Controlport 1 versus Controlport 2 irgendeine messbare, unterschiedliche Reaktionszeit, weil die Schaltung evt. unterschiedlich ist?

    Anders ausgedrückt, sind schnelle actionlastige Spiele besser mit CP1 oder lieber mit CP2 bedient?

    Mir ist klar, dass es wegen der leicht unterschiedlichen Programmierung vielleicht bei einem Controlport mehr oder wenige Code benötigt.

  • Mal eine ketzerische Frage: Hat Controlport 1 versus Controlport 2 irgendeine messbare, unterschiedliche Reaktionszeit, weil die Schaltung evt. unterschiedlich ist?

    Anders ausgedrückt, sind schnelle actionlastige Spiele besser mit CP1 oder lieber mit CP2 bedient?

    Mir ist klar, dass es wegen der leicht unterschiedlichen Programmierung vielleicht bei einem Controlport mehr oder wenige Code benötigt.

    Wahrscheinlich wird deine Vermutung genauso sein wie meine:

    es dürfte keinen messbaren Unterschied geben (gut, die Leitungen

    sind unterschiedlich lang, macht aber hier wirklich nichts aus).

    Uns selbst wenn es eine messbare Differnz gäbe (aufgrund der

    Beschaltung), dann läge sie im Bereich von wenigen us, d.h. für

    Spieler nicht messbar. D.h. ob Port 1 oder 2 ist wurscht.


    Vlt. einzige Ausnahme/Einschränkung: das C64-OS (d.h. der

    IRQ) fuscht dir irgendwie in die Parade. Da kann ich aber kaum

    was zu sagen, den Kernal kenne ich nur ganz grob.

  • Im Prinzip kann es maximal eine Verzoegerung von 1 Frame geben - naemlich wenn der Joystick direkt zu Beginn des Bildaufbaus gedrueckt wird und das Programm/Spiel den Joystick erst nach dem Bildaufbau auswertet und dann ins naechste Bild einfliessen laesst. Das ist aber keine Verzoegerung in dem Sinne, sondern das ist ganz normale Programmlogik wie sie bei jedem Spiel vorkommt. Der Bildaufbau geschieht beim echten C64 ja synchron zum Rasterstrahl, also wird das Signal ja live rausgegeben waehrend es erzeugt wird und sofort vom Rasterstrahl auf den Bildschirm geschrieben. Es gibt also faktisch keine "Verzoegerung" wenn man einen echten C64 an einem Roehrenmonitor betreibt.


    Alles was nun in irgendeiner Weise moderner ist, also mit Framebuffern oder Input-Buffern, Encoding und Decoding, Upscaling und weiss der Geier, kann nur langsamer sein.


    Das U64 hingegen ist wieder wie ein echter C64, da das Signal genauso "live" erzeugt und rausgeschrieben wird. Zumindest wenn man es am analogen Ausgang abgreift. Am HDMI-Ausgang habe ich aber keine Verzoegerung feststellen koennen, als ich mein U64 mal parallel an einem 1084S und an meinem Beamer betrieben habe. Sah exakt gleich aus. Allerdings kann es sein, dass mein Beamer das Signal schneller frisst als jetzt ein moderner TV mit Pipapo. Oder es war tatsaechlich 1 Frame Unterschied und den habe ich dann wohl nicht bemerkt. Aber wie ein PAL-Signal technisch ueber HDMI uebertragen wird und ob dabei irgendwas gebuffert wird (ausser vielleicht dass das Bild in einem Rutsch uebertragen wird anstatt zeilenweise aufgebaut), weiss ich nicht.

  • Es gibt genügend Leute die haben diesen verdammten Krebs leider und merken erst mal ewig lange nichts.

    Aber dann weist man in solch einem Fall als guter Arzt die Leute ja auch darauf hin, oder, bevor es irgendwann zu spät ist? :) Dann versucht "Dr. med. anti-lag hc prof ac/dc A. W. 182" einen guten Heilplan aufzustellen. :P *lol*



    Da es den The C64 ja nun mal gibt und bis auf den meist nicht störenden Lag ist die Kiste wirklich gut, könnte nun jemand dem das ganze nicht gefällt einfach eine Tauschplatine samt Software entwickeln und austauschen.

    Das stimmt schon und wurde von mir auch nie bestritten. Insgesamt gesehen ist das Teil zu dem Preis in Ordnung. Gäbe es diese Lag Sache nicht, hätte ich mir auch schon längst einen gekauft. Da mein Hauptinteresse mit solch einem Teil dann aber schon dem spielen gelten würde, warte ich mal ab, was zukünftig noch so an FPGA oder emulatorbetriebener Hardware erscheinen wird und schaue mal, was das dann so bietet. Das coole Gehäuse des MAXI bietet sich natürlich sehr an, direkt darin dann eine Platine mit stärkerer Hardware, wie sie ja dann nötig wäre für Sachen wie RunAhead usw, einzubauen. Rock64 v2 oder sowas in der Art. Mal sehen, ob sowas irgendwann mal kommen wird? Die meisten C64 Emulatoren haben bislang ja auch noch keine solchen Sachen wie RunAhead usw, Denise und RetroArch sind da jetzt etwas voraus in der Hinsicht.


    Mal eine ketzerische Frage: Hat Controlport 1 versus Controlport 2 irgendeine messbare, unterschiedliche Reaktionszeit, weil die Schaltung evt. unterschiedlich ist?

    Anders ausgedrückt, sind schnelle actionlastige Spiele besser mit CP1 oder lieber mit CP2 bedient?

    Mir ist klar, dass es wegen der leicht unterschiedlichen Programmierung vielleicht bei einem Controlport mehr oder wenige Code benötigt.

    Ich vermute mal, falls es da messbare Unterschiede geben sollte, dass die so gering sind, dass man das dann als Spieler nicht mehr wahrnehmen kann. Man kann ja zum Beispiel, am echten C64 per Funktion im "Final Cartridge 3", in einigen Spielen den Joyport wechseln (klappt nicht mit allen Games aber mit einigen) und wenn ich das in einigen schnellen Actionspielen mache und dann meinen Joystick umstecke, merke ich da am echten C64 jetzt keinen Unterschied. Wird beim Maxi wohl das gleiche sein? Wenn das im Bereich ganz weniger ms liegt (1 bis 3 etwa), merkt man das nicht mehr, behaupte ich jetzt mal.


    Unterschiedliche 9Pin zu USB Adapter habe ich hier auch, etwa einen von RetroDonald (Reaktionszeit angegeben mit circa 10ms), einen von Raphnet (6ms angegeben) und einen "2600-Daptor D9" (2ms angegeben). Da merke ich jetzt eigentlich keinerlei Unterschied zwischen den dreien, selbst in Decathlon sind die Laufzeiten gleich. Also von 2ms bis 10ms, wenn es um Abweichungen von lediglich 8ms oder ähnliches geht, tut man sich als Spieler schon sehr schwer, da dann noch einen Unterschied zu merken zwischen diesen Adaptern. Insgesamt kommt dann natürlich noch mehr Lag dazu durch unterschiedliche andere Faktoren, bis man den Gesamtlag eines Emulators dann zusammen hat. Generell deshalb dann natürlich schon gut, wenn ein Adapter sehr schnell reagiert, wie etwa der 2600-Daptor, um den Gesamtlag in einem Emulator dann so gering wie möglich zu halten, denn überschreitet der einen gewissen Grad, dann ist er irgendwann fühlbar. Die v2 Variane des Raphnet Adapters kann man jetzt auch von 6ms auf 2ms runterdrehen, ich hab noch die v1 Variante davon.

  • Das coole Gehäuse des MAXI bietet sich natürlich sehr an, direkt darin dann eine Platine mit stärkerer Hardware, wie sie ja dann nötig wäre für Sachen wie RunAhead usw, einzubauen.

    RunAhead (und die dafür nötige CPU-Power) sollte aus meiner Sicht gar nicht nötig sein, um für die meisten ein brauchbares Spielgefühl zu erzeugen. Ich komme ja z.B. mit den Emus auf meinem Mac (auch ohne RunAhead) ganz wunderbar zurecht – aber der TheC64 (mini) hat halt deutlich mehr Lag. Ich kann mir das Phänomen auch noch nicht wirklich gut erklären, schließlich reicht offensichtlich die TheC64-Hardware, um VICE 2.4 ruckelfrei laufen zu lassen – warum gilt das nicht für alle Funktionen? Auch andere "schwache" Hardware, wie der Dingoo oder der GP2X spielen die darauf laufenden Emus (zumindest für mich) ausreichend Lag-arm ab. Es wurde doch auch noch nicht endgültig geklärt, wo denn jetzt der ZUSÄTZLICHE Lag (gegenüber VICE auf anderer Hardware) herkommt, oder? Liegt es an der USB-Abfrage, an der HDMI/Full-HD-Aufbereitung des Bildes oder irgendwo mittendrin? Oder sind es mehrere Probleme, die sich einfach aufaddieren bis es zu dem als unangenehm empfundenen Extra-Lag kommt?

  • Es wurde doch auch noch nicht endgültig geklärt, wo denn jetzt der ZUSÄTZLICHE Lag (gegenüber VICE auf anderer Hardware) herkommt, oder? Liegt es an der USB-Abrage, an der HDMI/Full-HD-Aufbereitung des Bildes oder irgendwo mittendrin? Oder sind es mehrere Probleme, die sich einfach aufaddieren bis es zu dem als unangenehm empfundenen Extra-Lag kommt?


    Es wäre in dem Zusammenhang vielleicht auch noch interessant zu wissen, wieviel des Lags vom Original Maxi USB-Joystick verursacht wird? Ich fand im Netz bislang noch keinen Highspeedkamera-Test, der am Maxi mal mit einem anderen Controller durchgeführt wurde als dem Originalen, um da mal einen Vergleich zu haben. Etwa wenn einmal ein Stick dranhängen würde, dessen Pollingrate man bereits kennt, also etwa die "Anniversary Edition" des "USB Competition Pro" mit ihren 8ms Reaktionszeit. Ob damit dann der Lag kleiner wäre, oder eben auch nicht? Man stelle sich vor, der Controller würde einen Großteil des Lags verursachen, das wäre ja ein Witz und eigentlich auch das beste Ergebnis, denn dann tauscht man ihn einfach aus gegen ein anderes, kompatibles Modell. Aber ich vermute mal, dass es nicht so sein wird und nehme an, er wird auch so um die 10ms herum liegen. Hat mal jemand der solch einen Maxi-Joystick hat, damit am PC per C64 Emulator gespielt, wie gut das klappt? Der Stick funktioniert doch am PC, soweit ich weiß?

  • Für 250 us Reaktionszeit müsste ein Monitor und Joystick eine Refreshrate von 2500 mal pro Sekunde haben wenn ich mich nicht irre.

    Oder verstehe ich hier was völlig falsch?

  • Für 250 us Reaktionszeit müsste ein Monitor und Joystick eine Refreshrate von 2500 mal pro Sekunde haben wenn ich mich nicht irre.

    Oder verstehe ich hier was völlig falsch?

    Die 250 us sind nicht die Reaktionszeit, sondern die Differenz

    zwischen Input und Output (Input/Output-Lag). Abgetastet

    werden kann auch mit z.B. 50 Hz (== 20 ms), und trotzdem

    kann man ein Lag unterhalb von 20 ms spüren.


    Du musst dir dazu das ganze System mathematisch beschreiben,

    z.B. durch ein einfaches System: Nimm an, Bildaufbau und

    Abtastung erfolgen synchron mit 50 Hz. Ein Sprite wird in

    der Mitte (10 ms nach Bildstart) gezeichnet, der Joystick

    inkl. Spritesteuerung erfolgt am Ende (15 ms nach Bildstart).

    Durch den Output-Lag siehst du das Sprite aber erst 250 us

    später (mit TFT z.B. 5-20 ms später).


    Deine Reaktionszeit liegt jetzt deutlich über 5 ms (bei spontanen

    Aktionen garantiert!), d.h. deine Eingabe kann erst am Ende

    des Nächste Bildaufbaus gemessen werden. Zwischen Ausgabe

    und Eingabe liegen also 2 Bilder.


    Wenn dein System aber ein Lag grösser 20 ms hat (muss

    hinzuaddiert werden), dann erfolgt die Eingabe erst im

    übernächsten Bild, d.h. du hast 3 Bilder Latenz etc.


    Und hier kann es kritisch werden. Wenn das Lag gerade so

    gross ist, dass manchmal die Eingabe vor und manchmal

    nach der übernächsten Abtastung erfolgt, dann kann es

    je nach Spielablauf über "Leben" oder "Tod" entscheiden

    oder aber deine Figur reagiert "irgendwie" ruckelig (und hier

    kann man den Begriff "Gefühl" ansetzen).


    Fordert das Spiel ausserdem noch eine hohe

    Reaktionsgeschwindigkeit, dann können 2 Bilder Latenz

    bereits "Tod" bedeuten.


    Kommt jetzt noch eine "schlechte" Abtastung der Eingabe

    hinzu, vlt. auch noch asynchron zum Bildschirm, dann

    hast du eine je nach IO-Lag Reaktionslatenz von 2-4 Bildern

    (oder auch ein grösserer Bereich). Und das spürt man auf

    jeden Fall: mal klappt z.B. ein Sprung, mal nicht.

  • Was ich nicht verstehe beim Runahead: Der Joystick wird ja eh gelagged behandelt, nur visuell ist das Bild etwas "voraus"?

    Inwiefern wird da eine Verbesserung erzielt? Giana ist doch noch schneller tot im Graben, als man darauf reagieren und mit dem Lag irgendwas bewirken kann.

    In diesem Thread von PiCiJi wird es ausführlich beantwortet: Eingabe Latenzen in Emulatoren


    Jetzt wollte ich das mit dem Vice-Denise-Vergleich mal selbst ausprobieren, in der Hoffnung, dass ich danach schlauer bin. Mein Problem: Ich finde in Denise keine RunAhead-Option. Auf der Entwickler-Seite findet man in der History ab der ersten Version nicht mal das Wort "RunAhead". Eine Google-Suche bringt einen lediglich hierhin, erster Eintrag - was mich nicht wundert.