recalbox: Input Lag bei den Emulatoren

Die Steuerung von zum Beispiel Super Mario World auf dem Super Nintendo Emulator unter Recalbox fühlt sich nicht so an wie früher. Permanent springe ich zu spät ab und lande im Nichts.

Ist der Grund für das frühzeitige Game Over wirklich eine Verzögerung bei der Eingabe von Befehlen über das Joypad oder bin ich einfach alt geworden? 

Um herauszufinden, ob und wo wie groß die Latenz ist, habe ich die Zeit zwischen dem Drücken des Knopfes auf dem Controller bis zur Reaktion auf dem Bildschirm gemessen.

Wie wird Input Lag gemessen?

Ab dem Apple iPhones 7 kann man im Slow-Motion Aufnahmemodus bis zu 240 Bilder pro Sekunde aufnehmen. Ich habe gleichzeitig den Fernseher und den Druck auf den Joypad-Button gefilmt und die Bilder zwischen diesen beiden Ereignissen im Schnittprogramm gezählt. Beispielsweise habe ich 84 Frames beim SNES 9x Next Emulator gezählt. Das Joypad wurde seitlich gefilmt, damit ich sehen konnte, ob der Button schon gedrückt wurde oder nicht. Durch mehrere Durchläufe habe ich diese Ergebnisse verifiziert. BlueTooth und Wifi waren auf der Raspberry Pi nicht aktiviert bei den Tests.

Das Input Lag in Millisekunden kann man ausrechnen, in dem wir die Variable F in der folgenden  Formel mit den gezählten Frames des iPhone Videos ersetzen:

(1000 milliseconds in a second ÷ 480 frames per second) × F
= (2.08333333333 × F) ms

Beispielrechnung
2.0833333333 × 84 frames =
~ 171 ms

Wieso durch 480 und nicht durch 240?

Wenn ich eine Sekunde einer Stoppuhr mit der Slow-Mo-Funktion vom iPhone filme, dann zeigt Final Cut Pro für genau diese Länge 480 Frames an. Eine Sekunde bzw. 1000ms in der Realität entsprechen also 480 Frames bei mir im Schnittprogramm. Die Frames sind einfach doppelt vorhanden.

Ich weiß nicht warum das so aber es ist so. Man kann also nicht einfach die 240 Frames pro Sekunde nehmen sondern eben die 480 Bilder pro Sekunde. Meine Vermutung ist, dass dies technisch bedingt ist.

 

Wie groß ist das Input Lag in Millisekunden?

Die so ermittelten Werte habe ich verglichen mit denen von Sonic Mania auf der PS4 und dem Systemmenü von Recalbox. Das neue 2D-Jump&Run von SEGA hat die geringste mir bekannte Latenz auf der PS4. Das Menü der Recalbox kam mir immer sehr responsiv vor. Trotzdem wollte ich es genauer wissen.

Zusätzlich habe ich die Recalbox mit einem PlayStation 4 Joypad per USB-Kabel und mit dem Wireless Controller der XBOX 360 getestet und gegenübergestellt:

Kabelgebundenes Joypad Wireless Joypad System und Anwendung
~71 ms  n/a Original Super Nintendo
an CRT TV mit Super Mario World
~83 ms n/a PS4
Sonic Mania
~83 ms ~88 ms Recalbox Raspberry Pi 3
System Menu
~96 ms SNES Classic Mini
Super Mario World
n/a ~112 ms Wii U
Virtual Console und
Super Mario World
~152 ms n/a Recalbox Raspberry Pi 3
PocketSNES (Super Nintendo)
n/a ~160 ms Recalbox Raspberry Pi 3
picodrive (MegaDrive)
n/a ~171 ms Recalbox Raspberry Pi 3
Snes9x next (Super Nintendo)

 

Die Zahlen zeigen, dass der Raspberry Pi 3 mit Recalbox bei der Emulation ein deutliches Input Lag von einer sechstel Sekunde hat. Dies ist gegenüber der PlayStation 4 und dem Menü der Recalbox mehr als doppelt so hoch.

Dazu kommen noch Unterschiede bei den emulierten Systemen picodrive (MegaDrive) und Snes9x next (Super Nintendo). Der SNES Emulator ist bis zu 11 ms langsamer als die Emulation des MegaDrive. Zu guter Letzt zeigt sich auch das Input Lag des kabellosen XBOX 360 Gamepads mit Original MS Wireless Adapter in Form von bis zu 5 ms.

Das echte Super Nintendo an einem Röhrenmonitor hat, wie erwartet, das geringste Lag mit 71 ms. Das Super Nintendo Mini hat dabei „nur“ fast 100 ms Verzögerung bei den Eingaben vom Joypad gezeigt.

Grafische Auswertung vom Input Lag der Recalbox

Vergleich des Input Lag von Recalbox auf einem Raspberry Pi
Vergleich des Input Lag von Recalbox auf einem Raspberry Pi. Geringere Werte sind besser.

Woher kommt das Input Lag?

Mein Fernseher, der Samsung KS7090, hat bei 1080p mit 60hz eine Verzögerung von 21 ms bis das Bild über HDMI im Game Mode angezeigt wird. Woher kommt aber das restliche Lag?

Meine Vermutung ist, dass es ein Mix aus der Emulation und der geringen Leistung des Raspberry Pi 3 ist. Der SNES Emulator Pocketsnes lässt einige Effekte (Mode7) weg aber soll ein geringeres Input Lag haben.  Bei meinen Tests war der Unterschied unter 22ms zwischen den beiden.

Ein schneller PC könnte hier bessere Ergebnisse erzielen. Vermutlich wäre ein SNES Classic Mini oder eine gehackte Wii (U) in dieser Hinsicht besser aufgestellt, weil die Emulatoren direkt vom Hersteller kommen.

Haben kabellose Controller ein Lag?

Ja, haben sie. Es ist zwar mit bis zu 5 ms sehr gering aber es ist vorhanden. Laut Tests auf Youtube sind übrigens besonders Controller von 8Bitdo von Lag geplagt. Selbst nach einem Firmware-Update.

Der original PS4 Controller hat den Vorteil, dass man ihn mit einem langen Micro USB-Kabel ohne Lag betreiben kann. Ich persönlich nutze die kabellosen XBOX 360 Controller mit dem original XBOX 360 Wireless Adapter für Windows. Der funktioniert natürlich auch direkt am Raspberry Pi. Zudem sind die Controller von Microsoft und Sony nicht mal teurer als der Chinaschrott von 8Bitdo.

Wenn ihr schon gedrückt habt und Sonic macht das hier, dann habt ihr ein extremes Lag-Problem

Danksagungen

Danke an Philipp, Christian und Mo für die tatkräftige Hilfe beim Ausrechnen der Beobachtungen. Einen noch größeren Dank an Ingo für das beharrliche Hinterfragen und das Bereitstellen des echtes Super Nintendos mit CRT Monitor.

Was kann man gegen das Input Lag machen?

Selbst das Einschalten des Game Mode am TV und die Verwendung von Controllern mit Kabeln hat wenig genutzt.   Es liegt in diesem Fall an der Hard- und Software. Da das Menü aber genau so schnell reagiert wie die PS4 unter optimalen Bedingungen, liegt das Problem definitiv in der Emulation und nicht an der Ein- bzw. Ausgabehardware wie Joypads oder TV.

Am Ende wird das Input Lag von einer sechstel Sekunde vielen Person nicht auffallen. Viele Menschen sind sehr glücklich damit und werden das nie bemerken. Nur wer früher wirklich viel auf original Hardware gespielt hat wird merken, dass es sich nicht so anfühlt wie damals. Oder man gewöhnt sich eben dran. Mir wird leider diese erlernte Feinmotorik mit dem falschen Timing zum Verhängnis. Es dauert einfach sehr lange, bis ich mich wieder entsprechend „kalibriert“ habe.

Messaufbau mit echtem Super Nintendo und Röhrenmonitor.

 

Fazit: Recalbox hat eine spürbare Latenz

An meinem Fernseher haben folgende Geräte absteigend die geringste Latenz, wenn ich Super Mario World spielen möchte:

  1. SNES Classic Mini
  2. Wii U Virtual Console
  3. Recalbox (PocketSNES)
  4. Recalbox (Snes9x Next)

Die Recalbox baut man sich mit einem Raspberry Pi nach dieser Anleitung zusammen. Das SNES Classic Mini kann man hier günstig bestellen.

18 Antworten auf „recalbox: Input Lag bei den Emulatoren“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website zeigt Benutzerbilder über gravatar.com an.

Wie bekomme ich einen verifizierten Account? - Login