Woran liegt das Ruckeln von Zelda: Link's Awakening auf der Switch wirklich?
Und könnte eine Übertaktung der Switch das Problem lösen?
Manchmal lockt ein technologisches Rätsel doch zu sehr. Wir haben bereits viel über den Reiz des Switch Remakes von The Legend of Zelda: Link's Awakening gesprochen, aber gleichzeitig muss man zugeben, dass das Ruckeln und Stottern, das bei Cocolint-Wanderungen immer wieder auftritt, schon verblüffend ist. In einer Welt, in der die Switch id-Tech-6-Spiele ganz ordentlich zum Laufen bekommt und Super Mario Odyssey mit stabilen 60fps läuft, wie kann ein Link's Awakening da überhaupt Probleme machen? Wir hatten ein wenig zu viel Freizeit und haben uns auf die Suche nach Antworten gemacht.
Die meiste Zeit läuft das Spie recht gut, das hier ist immerhin ein Nintendo-Titel, der sich 60fps zum Ziel erklärt hat - eine Vorgabe, die die Spiele des Plattform-Herstellers in der Regel unbeirrbar einhalten. Link's Awakening schwankt aber an den unwahrscheinlichsten Stellen zwischen 60fps und 30fps (oder, um genauer zu sein, zwischen 16,7ms und 33,3ms). Unsere Lösung für das Problem: Power und zwar mehr davon: Link's Awakening läuft mit der Standard-Switch-Taktung von 1020MHz CPU und 768MHz GPU im Dock, während die Grafikprozessor auf 384MHz runtertaktet, wenn unterwegs gespielt wird. In allen Modi kann eine per Exploit manipulierte Switch manuell übertaktet werden, um die GPU auf 921MHz zu pushen, während der ARM Cortex A57sin der Spitze auf 1785MHz kommt.
Die Oberwelt von Link's Awakening macht die meisten Probleme, was die Bildrate angeht. Allein schon die erst Hütte zu verlassen erzeugt einen drastischen Absturz der Framerate, ohne dass man sagen könnte, warum. Normales Umherlaufen erzeugt kleinere Stotterer, während man sich durch den einleitenden Abschnitt am Toronga-Strand durcharbeitet und wenn man zwischen den größeren Gebieten der Karte hin und herwechselt, kommt es zu noch schlimmeren Einbrüchen, zum Beispiel, wenn man den Zauberwald betritt. Seltsam ist vor allem, dass das Stottern schnell vorübergeht: Binnen Sekunden sind wir wieder auf 60fps.
Weil die Grafik während des Herumlaufens oft komplett unverändert bleibt (das Spiel nutzt dynamische Auflösung, aber auf dem Weg von A nach B scheint sich die Auflösung nicht zu verändern), diktiert die Logik, dass das Problem aufseiten der CPU zu finden ist. Vielleicht streamt und dekomprimiert sie immer noch Weltdaten? Nun, die CPU um 75 Prozent raufzutakten sollte das Problem eigentlich beheben - aber das machte absolut keinen Unterschied. Den GPU-Takt auf 921MHz raufzuschrauben, hilft, aber nur ein wenig.
Vielleicht ist es also ein Speicher-Problem? Nun, der interne NAND-Speicher ist schneller als jede SD-Karte, aber auch das Spiel dorthin zu installieren brachte keine Besserung. Irgendwann fand ich die Lösung: Zum Mobile-Modus zu wechseln, mit seiner niedrigeren Auflösung, aber mit den Taktfrequenzen des Dock-Modus zu spielen löst das Problem - ja, so gutr wie alle Performance-Stottereien des Spiels. Obwohl es also nicht danach aussah, scheint Link's Awakening also durch die GPU limitiert zu sein, auch in Szenarien, in denen die Komplexität der Grafik sich weder vorher, während noch nach den Stotterern ändert.
Das ist alles recht verblüffend, weil die Ruckler eintreten und vergehen, auch wenn sich die Grafik gar nicht verändert. Die Schlussfolgerung lautet also, dass die GPU hier mehr macht, als nur die Grafik zu rendern. Aber was sie wirklich tut, ist ziemlich mysteriös. Vielleicht werden gewisse Aspekte des Spiels dynamisch generiert, während man spielt? Möglichweise aufgrund von Speicherbeschränkungen? Schaut man sich den Daten-Fußabdruck von Link's Awakening ab, sind es nur 5,8GB. Eine Theorie, die mir nahegelegt wurde, lautet, dass das Spiel die Licht- und Schatten-Maps nicht vorlädt. Vielleicht werden sie on-the-fly generiert? Definitive Schlussfolgerungen sind uns unmöglich - wir wissen nur, dass das Problem sich dadurch lösen lässt, deutlich mehr GPU-Power draufzuwerfen.
Dies ist aber nur eine der seltsamen Performance-Eigenheiten. In wiederholten Tests fielen auch einige weitere Probleme auf: Dialoge (die mit einer Nahaufnahme der Figuren), lassen die Bildrate schon mal um 50 Prozent einbrechen. Die einleitende Innenraum-Szene startet mit 60fps, fällt aber auf 40fps, sobald man den Raum verlässt und ihn dann erneut betrifft. Schon in den ersten paar Minuten gibt es eine Reihe seltsamer Auffälligkeiten und es fällt schwer, zu glauben, ein Entwickler von Grezzos Beschlagenheit hätte das nicht bemerkt. Wiederum: Eine Übertaktung der GU auf 921MHz im gedockten Modus hilft, aber mit Dock-Takten im Handheld-Modus zu fahren, löst fast alle diese Probleme.
Aber nicht alle technischen Blessuren sind schwer zu erklären, im Schleimsumpf etwa, der hart auf 30fps einbrechen kann, sind die Probleme einfacher zu lokalisieren. Welche Technik Grezzo auch immer für das Wasser in diesem Bereich einsetzte, sie ist sehr aufwendig zu rendern. Dominiert Wasser also den Screen, schafft die GPU es nicht, die 16,7ms Renderzeit pro Frame zu liefern. Weil ein Double-buffer V-Sync zum Einsatz kommt, wartet das Spiel bis zum nächsten Display-Refresh bei 33ms. Schaffen es mehrere Frames in Folge nicht binnen der 16,7ms, drosselt das Spiel auf 30fps. Sich Richtung trockener Gegenden zu bewegen, bedeutet weniger Wasser und das Spiel schnellt wieder auf 60fps hinauf. Wiederum: Im Dock auf 921MHz zu übertakten hilft etwas, aber - ihr ahnt es schon - nahezu perfekte Performance gibt es mit Dock-GPU-Takt im Mobile-Modus.
Es ist bizarr, das seine eingehendere Untersuchung der Performance von Link's Awakening mehr Fragen aufwirft, als sie beantwortet. Letzten Endes schadete die Performance unserem Spielgenuss nicht über die Maßen (die Dungeons laufen allgemein sehr ordentlich), aber ich glaube es gibt einige gute Gründe dafür, dass sie viele Leute über die Ruckler sprechen. Zum einen ist die Frequenz Stotterer auf der Oberwelt einfach sehr deutlich und sie fühlt sich komisch an. Zudem sind die flüssigen 60fps der meisten First-Party-Veröffentlichungen von Nintendo einfach beneidenswert. Dass Link's Awakening diese Art von Problem haben würde - schon in den ersten paar Szenen - ist sehr überraschend. Das fertige Spiel zeigt sich gegenüber der E3-Version noch stark verbessert, aber wir haben das Gefühl, dass den Entwicklern immer noch viel Arbeit bevorsteht. Wir kreuzen die Finger, dass ein kommender Patch diese Probleme beseitigen kann.