ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
[Login] [Registrieren] [Passwort vergessen?] |
| |||
04.Mär.2022 |
Motorola68k-Emulation: Erste Betaversion von Emu68 veröffentlicht (Update) Der Entwickler Michal Schulz liefert auf seiner Patreon-Seite regelmäßig Hintergrundinformationen und Statusupdates zu seiner Motorola68K-Emulation Emu68 für die ARM-Architektur. In der letzten Woche kündigte er eine erste Betaversion von Emu68 an: "Nach monatelanger Fehlersuche und -behebung, nach hunderten von Stunden intensiver CPU-Tests ist es an der Zeit, Emu68 in das Beta-Stadium zu überführen. Im Dezember und Januar gab es nicht viele Videos auf YouTube, aber Emu68 auf meinem A500 war fast die ganze Zeit online auf Twitch. Ich habe Toni Wilens cputest Software gezwungen, mein Emu68 zu quälen. Nicht nur mit den sehr langen Testrunden (meine ganzen Testdateien sind mehrere Gigabyte groß). Stattdessen habe ich cputest ein wenig erweitert, um die Maskierung mehrerer CCR-Flags bei Bedarf zu ermöglichen. Dann habe ich den ILLEGAL (0x4afc) Opcode so verändert, dass er Emu68 vorgaukelt, dass er einige der CCR-Flags selbst setzt. Auf diese Weise wurde mein CCR-Optimierer die ganze Zeit getäuscht und wendete einige Optimierungen der Bedingungscodeberechnung an, die nicht stattfinden sollten. Dann habe ich alle Tests erneut durchgeführt, wobei jeder einzelne zwischen 4 und 20 Stunden dauerte. Ich wiederholte sie 32 Mal und testete alle Permutationen von XNZVC-Flags, die vom Optimierer entfernt wurden (oder auch nicht). Der Test dauerte weit über einen Monat, in dem ich Emu68 Tag und Nacht laufen ließ. Diese Tortur war nicht umsonst - es ist mir gelungen, einige (nur wenige!) Fälle im CCR-Optimierer zu beheben, die dort lauerten und den Code letztendlich kaputt machten. Aber hey, es würde sich lohnen, den Test auch nur für einen behobenen Fehler durchzuführen. Nun, es würde sich lohnen, sie auch dann durchzuführen, wenn es eigentlich keine Fehlerbehebung gäbe, um zu bestätigen, dass alles wie erwartet funktioniert! Es gab allerdings ein paar defekte Opcodes, die ich bereits auf GitHub in der Issues-Sektion gemeldet hatte. Einer von ihnen war CHK2. Wieviel Software benutzt das? Nun, nicht wirklich wichtig, dachte ich, aber ich lag falsch. Der "non-exception"-Bruder dieser Anweisung, CMP2, wird in der AmigaOS-Portierung des Spiels Diablo verwendet. Die fehlerhafte Implementierung war der Grund, warum der Hauptcharakter im Spiel unsichtbar war. Jetzt sind CMP2 und CHK2 korrigiert und werden von cputest als korrektes Verhalten gemeldet. Jetzt ist der Hauptcharakter in Diablo sichtbar und das Spiel ist spielbar! Der allerletzte Fehler war der NBCD.B Opcode. Theoretisch war er korrekt, aber nicht in der Art und Weise, wie die Motorola-CPUs ihn ausführten. Seit heute ist der Opcode korrigiert und besteht alle Tests erfolgreich. Das war's. Alle 68040-Opcodes für Integer-Operationen sind vorhanden und funktionieren gut genug, um das CPU-Testtool zufriedenzustellen. Was fehlt, sind einige Supervisor-Operationen für die MMU (ich habe im Moment keine MMU). Außerdem schlägt der MOVEC-Befehl in den Tests fehl, weil Emu68 einige Steuerregister freilegt und verwendet, die auf dem 68040 nicht existieren und daher keine Ausnahme auslösen, wie es in den Tests erwartet wird. So, das war's, Emu68 Version 0.10.0 sollte mit dem nächsten Nightly-Build verfügbar sein!" Update: (04.03.2022, 17:05, dr) Nachdem diese Betaversion bereits innerhalb der Nightly Builds zwar bereits verfügbar, aber kaum offensichtlich zu identifizieren war, hat der Entwickler auf unseren Vorschlag hin soeben für die Betaversion ein separates Archiv mit entsprechendem Tag veröffentlicht. (dr) [Meldung: 04. Mär. 2022, 06:30] [Kommentare: 5 - 04. Mär. 2022, 17:19] [Per E-Mail versenden] [Druck-Version] [ASCII-Version] | ||
|
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |