Hello, Guest the thread was called5.1k times and contains 58 replays

last post from Retro-Nerd at the

Emulatoren und Latenz

  • Powerstrip mag teilweise funktionieren. HDMI ist in der Tat der sicherste Weg 50Hz Auflösungen laufen zu lassen. Man könnte in Emulatoren auch Support für ReClock (Directshow Filter, der anstelle des default Audio Renderer läuft) einbauen, dann wird die Geschwindigkeit immer automatisch angepasst. Aber mit der Freesync/Gsync Technik ist das aber überholt, damit läuft alles absolut ruckelfrei. Sofern der Bildschirm auch echte 50Hz ausgeben kann.




    Quote

    Ich habe ja damals mal nen Patch für WinVice geschrieben, der auf 50Hz/100Hz synchronisiert hat.


    Ah, du warst das. Ich erinnere mich dunkel. War damals für eine der 1.X Versionen. Das lief unter XP sehr gut. Unter Windows 7 war dann Schluß. War nicht mehr tearing/ruckelfrei hinzubekommen.

  • Mag sein. Viele emulieren aber mittlerweile auch an den TVs mit den ganzen Spielereien. Rein softwaretechnisch kann man wohl derzeit an ein Gesamtlag von 16ms rankommen. Das hat die normale Hardware/Software auch. Der Lag steckt ja nicht nur ausschließlich in der Hardware, auch in den Spielen (wie die Steuerung da umgesetzt wurde) selbst.

    Du vergleichst hier aber Äpfel mit Birnen.


    Wenn Leute sich nicht informieren und Panels verwenden die auch an einer modernen Konsole oder einen PC versagen dann hat das nichts mit Emulatoren zu tun.


    Nicht passende Panels haben einen Lag von vielen Hundert Millisekunden, da lach ich über deine 16.


    Der GBS8220 hat übrigens einen gemessenen Lag von etwa 120 Millisekunden da er 2-3 Frames verzögert.


    Micha

  • Das ist kein unwichtiger Vergleich. Viele Leute machen das heute einfach so und wundern sich warum alles so laggt. Wer ernsthaft Emulatoren benutzt hat schon anständige PC Hardware und die passende Software laufen um ein bestmögliches Gesamtergebnis zu erzielen. Vielen ist das aber zu kompliziert/aufwendig. Die knallen sich einfach ein Raspi an den TV und gut ist. Egal ob das am Ende 5-7 Frames Lag sind.



    Quote

    120 Millisekunden da er 2-3 Frames verzögert

    Das wären bei einer PAL Emulation aber schon 6 Frames.

  • Das wären bei einer PAL Emulation habe schon 6 Frames

    Wie auch immer, waren 2-3 Frames.


    Ich habe mit Deluxe Paint eine Animation erstellt die mit mit 50Frames/Sek ablief und dann mit einer Digikam 2 Monitore gleichzeitig abgelichtet.


    Der eine hing an einem 1084s direkt am Videoausgang und der andere hinter einem GBS8220.


    Micha

  • Wie auch immer, waren 2-3 Frames.
    Ich habe mit Deluxe Paint eine Animation erstellt die mit mit 50Frames/Sek ablief und dann mit einer Digikam 2 Monitore gleichzeitig abgelichtet.


    Der eine hing an einem 1084s direkt am Videoausgang und der andere hinter einem GBS8220.


    Micha


    Klasse Idee mit dem gleichzeitigen Abfilmen von zwei parallel angesteuerten Monitoren!


    Eine eigens erstellte Animation ist ja vielleicht gar nicht notwendig. Für den C64 würde es meiner Meinung nach schon reichen, wenn man den Bildschirm abschaltet und nach jedem Frame die Rahmenfarbe erhöht. Wäre zwar ein ziemliches Geflimmer, aber die so erzeugte Folge "Schwarz - Weiß - Rot - Cyan - Purpur - Grün - ..." sollte dann mit einem Versatz auf den Monitoren zu sehen sein...


    Ich glaube, ich probiere das mal selbst aus...


    Gruß
    Thomas

  • Was heißt Monster. WinVice ist halt nur nicht optimiert für weniger Lag. Micro64 ist da etwas besser. Die Option Time Step Synchronization -> Step Resolution = Quarter Frames hilft schon etwas. Ist halt eine schnellere Abfrage der Eingabegeräte. Quarter Frames = alle 5ms, anstatt 10ms oder 20ms.



    Würde auch mal helfen, wenn man den WASAPI Audio Driver Support in C64 Emulatoren einbauen würde. Der erlaubt sehr geringe Sound Buffer und den exklusiven Zugriff auf die Soundkarte/Chip. Bei WinVice kriege ich schon Probleme, wenn ich den Buffer mal tiefer als 60ms setzen möchte.

  • Das einzige was mir einfällt ist nen HDMI Kabel zu nutzen und das per Grafik Einstellungen auf 50 Hz zu setzen. Dann ist so weit ich das gesehen habe wenigstens halbwegs ruckelfrei. Gibt es noch andere Wege unter Windows 50 Hz Screenmodi zu erzwingen?

    obwohl ich jetzt nicht speziell das 50 fps auf 60 Hz Geruckel meinte, es ist halt oft der Grafikchip selbst der keinen 50 Hz Modus kann. Da hilft auch kein Powerstrip und kein GSync/Freesync. Viele on-cpu Grafikprozessoren sind davon betroffen, also primär die Inteldinger. Mit ner vernünftigen Grafikkarte ist das ja kein Thema, das war nur früher irgendwie schwierig. Interessanterweise kann Winvice auch in Version 3 nicht mit Gsync, zumindest kommt da kein Gsync am Monitor an, weder Fenster noch Vollbild. Das schafft jeder Videoplayer und so gut wie jedes Spiel. Ich hab ja alles auf 50 Hz eingestellt, das ist also nicht das Problem.
    Was ich meine ist, dass Winvice halt einfach nicht ohne frame drops läuft, und das obwohl das gesamte System rein gar nichts zu tun hat. Die Priorität ist schon auf hoch, Echtzeit ging dachte ich nicht oder zumindest nicht mit Hardsid4U, da ging kein Ton mehr oder so was in der Richtung.

  • Kann ich nicht bestätigen. WinVice 3.X läuft bei mir mit Freesync Hardware superflüssig. Die Refresh Rate muß bei Freesync/Gsync immer auf dem Maximum des Monitors stehen, bei mir z.B. auf 75Hz. Wiederholrate in Vice muß auf 1:1 stehen, Vsync natürlich aus.




    Quote

    Ich hab ja alles auf 50 Hz eingestellt, das ist also nicht das Problem.

    Gerade getestet. Das funktioniert definitiv nicht. Ruckelt mit Frame Drops, wenn mal tatsächlich manuell auf 50Hz umstellt. Wie gesagt, du mußt auf das Maximum deines Monitors umstellen. Das funktioniert relativ perfekt. In fast allen Emulatoren, die ich testet habe.


    Probleme hatte ich nur in Micro64, wenn ich den Double Buffer deaktiviert hatte. Dann fiel die Rate auf 40fps in 75Hz. Da mußte ich dann wirklich auf exakt 50Hz zurückstellen.

  • @dukestah Hmm, das hört sich so an, wie das Problem was ich damals hatte, weil WinVice den Windows-System-Tick nicht erhöht hatte. Aber ich weiß im Moment nicht, ob es wirklich daran liegt. Kannst du mal nebenher einen VideoPlayer starten, wie etwa VLCPlayer? Der erhöht den System-Tick auf 1 ms. So laufen dann Funktionen von Windows wie sleep(1) genauer und warten dann tatsächlich nur eine Milli-Sekunde, wenn nicht ein anderer Prozess die CPU bekommt. Du kannst das ja mal ausprobieren. Ohne Optimierung war das bei Windows war früher auf jeden Fall grausam, da hat er dann je nach System 1-20 Millisekunden geschlafeb. Genauer könnte ich es wohl sagen, wenn ich mal Zeit habe mir den aktuellen Source-Code von WinVice anzusehen.


    Update: der aktuelle WinVice macht schon ein timeBeginPeriod(1) und stellt somit den Windows System Tick schon um. Also wird das mit dem VLCPlayer nix bringen.


    @Retro-Nerd Hmm, interessant. Leider habe ich kein Zugriff auf Windows-PCs mit FreeSync und GSync. Aber wenn das funktioniert, sehr gut! Welche Grafikkarten haben das denn aktuell? Ab welcher Radeon bzw. GForce Generation? Und Micro64 als Emulator hört sich auch ganz interessant an. Werde ich mal bei Gelegenheit ausprobieren, wenn ich mal wieder nen Windows PC vor mir habe ;)

  • https://www.amd.com/en/technologies/free-sync


    Freesync ist günstiger in der Anschaffung, weil die Monitore günstiger zu bekommen sind. Ist halt gegenüber G-Sync ein offener Standard. Geht so ab 150 Euro los, bessere Displays mit Freesync Technik gibt es ab 250-350 Euro.


    Bei G-Sync finde auf die Schnelle keine aktuelle Liste. Scheint aber ab der GTX 650 Ti loszugehen.


    https://www.blurbusters.com/gsync/supported-graphics-cards/

  • Die ersten WinUAE Testversionen sind draußen. Sehr beeidruckend, was da mit Vsync aktiviert möglich ist. Das Lag wurde von den üblichen 20-40ms auf 5-10ms gesenkt. Das fühlt sich jetzt vergleichbar gut an, wie mit Freesyc/G-Sync Hardware ohne Vsync. Kann man gut mit den Pinball Spielen von DI testen. Da merkt man, wie schnell und flüssig sich die Flippers anfühlen. An die Vorgaben von Toni sollte man sich aber halten, sonst klappt das nicht richtig. Und Eingabegeräte mit guten USB Polling Werten sind Pflicht. So ein Competition Pro USB brauch man gar nicht erst austesten.


    http://eab.abime.net/showthread.php?t=88777&page=8

  • Was mir bei dem Latenzthema aufgefallen ist: Wenn ich mit Tastatur spiele, hab ich fast null spürbare Latenz, egal in welchem Emulator. Erst mit Joystick wird das spürbar - bei Competition Pro USB natürlich extrem. Offenbar muss eine Tastaturabfrage auf OS-Ebene nicht durch so viele Layer wie eine Joystickabfrage. Die Pufferung von Frames usw. spielt da wohl eher eine untergeordnete Rolle.