Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen



  • Den meisten Nutzern eines Programmes ist es eigentlich ziemlich egal, was im inneren eines Programmes vorgeht. Die meisten Codeverbesserungen machen es zwar den Entwicklern leichter und verbessern langsam auch den Emulator, aber am Ende merkt der Nutzer meistens nichts mehr von den Optimierungen. Und wieder vergang ein kompletter Monat, ohne dass jemand etwas von den Neuerungen gemerkt hat, obwohl da eigentlich auch paar sehr interessante Themen dabei sind. Aber in dem niemals aufhörendem Fluss von Codeverbesserungen, sind auch paar wahre Schätze dabei: Leistungsverbesserungen, große Bugfixes und neue Funktionionen, von denen so mancher nicht mal geträumt hätte.

    Neuerungen für den Juli 2014


    Im vergangenen Monat wurde ein Bugfix veröffentlicht, welcher extreme Performanceeinbrüche auf älteren NVIDIA-Grafikkarten behoben hat. Die Lösung: Eine total unnötige Funktionion namens "Coherent Mapping" stand im weg. Nachdem diese Funktion deaktiviert wurde, gab es keine Probleme mit aktuellen NVIDIA-Karten und wie man sich schon denken kann, waren die Performaceeinbrüche auf den älteren Grafikkarten behoben. Die Entwickler dachten, dass sie nun in einer sogenannten "Win - Win" Situation steckten, was sich aber später dann doch als falsch herausgestellt hatte.

    Da niemand von den Entwicklern aber lust hatte, dass mit einer AMD-Grafikkarte zu testen, stellte sich erst nachher heraus, dass es auf diesen Karten danach Performaceeinbußen von bis zu 30% gab. Und da natürlich niemand lust hat, extra Code für die jeweiligen Grafikkarten zu schreiben, haben Sonicadvance1 und degasus nach einer Lösung gesucht, die alle Grafikkarten glücklich machen soll.

    Am Ende stellte sich heraus, dass die Fixierte-Speichererweiterung (Pinned Memory) der AMD-GPUs die Lösung ist. Das Ergebnis: Da diese Fixierte-Speichererweiterung bei AMD-GPUs sogar schneller als der Pufferspeicher ist, hat man nicht nur die Performanceeinbrüche behoben, sondern man hat auch gleich einen Geschwindigkeitsboost von bis zu 8% ermittelt!

    Während der "DTK-Audiofix" zwar viele Bugs behoben hat, hat er leider auch einen richtig nervigen wieder in das System gebracht. Anscheinend haben nämlich die Nutzer bei den Spielen ein leichtes Knistern gehört, welches besonders bei Tönen mit hohen Frequenzen auftritt.

    Am Ende stellte es sich heraus, dass der DSP und DVD-Mixer ein paar Probleme hatten, welche aber nun wieder mit einem kleinen Bugfix behoben wurden.

    Fehler behoben: 7463


    Memory Cards werden natürlich auch mit dem Dolphin-Emulator emuliert. Hauptsache man kann sein Spiel speichern und wieder fortsetzten. Und was macht man, wenn die emulierte MemoryCard voll ist? Man macht eine Kopie der alten Datei und erstellt eine neue. Alles klappt natürlich perfekt, bis auf wieder ein Spiel, und das ist auch noch The Legend of Zelda: The Wind Waker! Naja, zumindest die Japanische Version. Und obwohl das Spiel so extrem bekannt ist und sich so viele Leute damit beschäftigen, hat man mehr als vier Jahre Jahre gebraucht, um dafür eine Lösung zu finden.



    Der Newcomer TotalNerd hatte mal eine Zeit lang seine eigene Repository. Eine der Erweiterungen, wo er bei sich eingebaut hat, hat einfach nur dafür gesorgt, dass Dolphin sich etwas mehr Zeit beim Speichern auf der Memory Card lässt. Und anscheinend war das auch die Lösung für das Problem!

    Als TotalNerd das erfuhr, packte ihn die Motivation und er hat eine verbesserte Version dieses Bugfixes erstellt, welche sogar noch bei vielen anderen Spielen verschiedene Speicherprobleme behoben hat!

    Kleiner Tipp zum Spaß: Diese Fehler können auch auf einer echten Konsole auftreten, wenn ihr zum speichern eine Max Drive (Pro) MemoryCard nutzt. Diese Karten sind anscheinend teilweise zu schnell für manche Spiele!

    Fehler behoben: 2284
    Manchmal gibt es Neuerungen, die einem auf dem ersten Blick nur wenig bringen. Dieses mal geht es und den D3D-Exklusiven Vollbildmodus. Die meisten Leute würden jetzt denken: "Wow. Ein Vollbildmodus. Gab es den nicht schon?" Im Grunde genommen, ja. Nur etwas schlechter als den "Exklusiven Vollbildmodus". Dieser erneuerte Vollbildmodus soll einem ein besseres Spielerlebnis bringen, als der alte Vollbildmodus. Sonst wäre er ja auch nicht so exklusiv. Diese Verbesserungen soll der neue Vollbildmodus bringen:
    • Reduzierte Input-Latenzen: Da man den Video-Output von Dolphin nun besser kontrollieren kann, können Latenzen auf ein minimum reduziert werden, was man besonders in Reaktionsschnellen Spielen wie F-Zero GX oder Super Smash Bros. Melee merkt.
    • Weniger GPU-Auslastung: Einfach so jedes einzelne Bild auf dem Bildschirm darstellen zu lassen verbraucht weniger Leistung, als wenn man das Spiel in einem extra Fenster spielt. So haben Leute mit schwachen GPUs nun einen kleinen Performanceschub.
    • Flüssigeres Bild: Jeder hasst es, wenn ein Spiel mit voller Geschwindigkeit läuft und trotzdem leicht am ruckeln ist. Durch den angepassten Vollbildmodus kann Dolphin nun z.B. verschiedene Fenster-Manager umgehen, was dafür sorgt, dass weniger Einzelbilder vom Spiel verworfen werden. Die Vorraussetzung: Dolphin benötigt dafür Vertical Sync (VSync).
    Damit man besser erklären kann, was mit "Flüssigerem Bild" gemeint ist, zeige ich euch auch ein kleines Beispiel. Es zeigt eine Spielszene von "Mega Man X", welches in der "Mega Man X Collection" enthalten ist. Wer in diesem SNES-Spiel von einem Gegner getroffen wird, fängt an zu blinken. In diesem Moment schaltet das Spiel für jeden frame die Textur an oder aus. Kurz gesagt: Im ersten Frame ist die Textur zu sehen, im zweiten dann wiederrum nicht mehr und das wiederholt sich, bis der Effekt aufhört. Hier nun das Beispiel:

    Ohne "Exclusive Fullscreen" verliert das Spiel auch bei voller Geschwindigkeit manche Einzelbilder aus dem Spiel.

    Wenn alles richtig dargestellt wird, sieht das schon etwas mehr wie das Original aus.


















    Wenn man die ganzen Verbesserungen im einzelnen Betrachtet, ist das nichts besonderes. Aber wer alles zusammen zählt, merkt dass das Spielerlebnis nun viel besser wie vorher ist. Und das beste an allem, was oben erwähnt wurde? Diese Neuerungen betreffen alle Spiele!

    Aber das war noch nicht alles. Das was jetzt oben erwähnt wurde, waren nur Verbesserungen...
    • Erneuter Support für 3D-Bildschirme: Vor langer Zeit, als Dolphin noch D3D9 unterstützte, gab es einen 3D-Modus. Das Problem? Auf manchen PCs läuft dieser ganz normal, auf manchen läuft er gar nicht. Ein weiteres Problem war, dass man diesen 3D-Modus nur in kombination mit NVIDIA 3D Vision nutzen konnte. Und nun? Der "Exklusive Vollbildmodus" unterstützt nun von Haus aus einen 3D-Modus, ohne unnötigen Code dafür einzubauen. Und das allerbeste daran? Der neue 3D-Modus ist nicht nur auf 3D Vidion begrenzt: Ein ähnliches System namens "Tri-Def" wurde sogar schon als kompatibel eigestuft, und das ist noch lange nicht alles...

    Ein wichtiger Hinweis: Wie der Name "D3D-Exklusiver Vollbildmodus" schon sagt, benötigt man Direct3D, welches natürlich nur auf Windows-Systemen verfügbar ist. Momentan wird aber schon an der Unterstützung für andere Betriebssysteme geforscht, damit auch Nutzer mit anderen Systemen die selben Vorteile bekommen.

    Fehler behoben: 3979, 4726, 4732, 5990, 6713, 7334


    Das "DTK Audio-Rewrite" hat zwar viele Probleme behoben, aber da man auch vieles aus dem Code entfernen musste, spielte die Musik in manchen Spielen verrückt. Ein Beispiel ist Tony Hawks Pro Skater 4, wo manchmal die falschen lieder abgespielt wurden oder die Musik ganz aus blieb.

    Der Entwickler "booto" wollte dies nicht länger akzeptieren, so hat er nach einer Lösung für das Problem gesucht. Es war zwar viel arbeit, aber es hat sich gelohnt: Nicht nur die Fehler wurden behoben, es wurden anscheinend auch Spiele repariert, in welchen die Musik für lange Zeit gar nicht funktioniert hat! Beispiel: Pacman Fever.

    Fehler behoben: 7445

    Und dann, ein Tag bevor die Dolphin-Entwickler ihren Update-Report veröffentlichten, passierten zwei Dinge, die alles veränderten...



    PPC_FP war ein großer Fix für die CPU-Emulation, welcher die Kompatibilität mit den Spielen im Emulator massenhaft erhöht hat. Aber leider hat das älteren Prozessoren ohne SSE4.1 (sehr frühe Versionen vom Intel Core2Duo oder den Phenom II CPUS) nicht gut getan. Das Ergebnis: Die Spiele waren voll mit Bugs.

    PPCFP-jediacademy_thumb.jpg

    Da ist doch irendwas falsch...



    Fehler behoben: 7150und 7237


    4.0-2350 - PowerPC Flag-Optimierungenvon delroth, magumagu und Sonicadvance1

    Das jetzt so zu erklären, sodass es möglichst viele verstehen, ist extrem schwer. Aber bei diesen Optimierungen handelt es sich um Verbesserungen an der PowerPC-Emulation von Dolphin, was in einem kleinem Geschwindigkeitsschub endet.



    Wer in der Technik und der Englischen Sprache mächtig ist, kann sich auch delroths Kommentar dazu durchlesen, in welchem alles erklärt wird:

    delroth schrieb:

    While X86 architectures have a similar concept of flags [to the PowerPC], it is very difficult to access the FLAGS register directly to translate its value to an equivalent PowerPC value. With the current Dolphin implementation, updating a PPC CR register requires CPU branching, which has a few performance issues: it uses space in the BTB, and in the worst case (!GT, !LT, EQ) requires 2 branches not taken.

    After some brainstorming on IRC about how this could be improved, calc84maniac figured out a neat trick that makes common CR operations way more efficient to JIT on 64 bit X86 architectures. It relies on emulating each CRn bitfield with a 64 bit register internally, whose value is the result of the operation from which flags are updated, sign extended to 64 bits. Then, checking if a CR bit is set can be done in the following way:

    * EQ is set iff LOWER_32_BITS(cr_64b_val) == 0
    * GT is set iff (s64)cr_64b_val > 0
    * LT is set iff bit 62 of cr_64b_val is set


    Alternative Nutzung von Dolphin: "Tool Assisted Superplays"


    Während die meisten Nutzer den Emulator ganz normal zum spielen der Spiele verwenden, gibt es auch noch ein weiteres Einsatzgebiet, wo Dolphin gut bekannt ist: "Tools Assisted Superplays" und "Speedruns".

    Die Leute von TASVideoshaben genau das auf den Punkt gebracht und gezeigt, wie weit man damit im Spiel kommen kann, wenn man verschieden Features wie Savestates, Frae by Frame, Slow-Motion usw. nutzt.



    Vielen Dank an:

    zhuowei
    RachelBryk
    lioncash
    tilka
    Sonicadvance1
    degasus
    workhorsy
    Armada651
    delroth
    sigmabeta
    neobrain
    phire
    LPFaint99
    magcius
    booto
    TotalNerd
    shuffle2
    moshekaplan
    RisingFog
    Shadoxfix
    magumagu
    Fioraund
    Parlane
    ...dafür, dass ihr Dolphin von Version 4.0-1997 bis 4.0-2354 begleitet habt!

    Diese News ist © by christian8246q und darf weder komplett, noch in Auszügen kopiert werden. Lediglich verlinken ist erlaubt.

    Da manche Sachen wirklich extrem schwer zu erklären sind, empfehle ich euch, auch in der Quelle dieser News vorbeizuschauen.


    Quellen

Kommentare 2