[Software] DOSBOX mit PPC JIT

Alles rund um Anwendungen für Amiga OS4

Moderator: OS4Welt-Team

Antworten
Benutzeravatar
TearsOfMe
Beiträge: 1202
Registriert: 29. Dezember 2013 19:27
Wohnort: Bad Marienberg
Hat sich bedankt: 28 Mal
Danksagung erhalten: 2 Mal

[Software] DOSBOX mit PPC JIT

Beitrag von TearsOfMe »

Von Kas1e auf amigans.net gepostet, habs mal mit deepl übersetzt:

http://kas1e.mikendezign.com/aos4/dosbo ... jit_v1.lha
Also ja, das ist es!

Das, was in der Version gemacht wird, werden Sie jetzt überprüfen:

- es ist der neueste _offizielle_ DOSBox-Code von svn mit der letzten Übergabe vor ein paar Tagen

- es ist jetzt über SDL2 gebaut: das nicht von mir geschriebene, sondern von anderen, die es nicht im Hauptrepos haben. Er behebt eine Menge, eine Unmenge, von Fehlern in SDL1, so dass die Chancen, dass er uns helfen wird, hoch sind. Zumindest nach den ersten Überprüfungen hilft es sicherlich bei Problemen mit dem Tastaturlayout, zufälligen Einfrierungen usw.

- Es wird jetzt mit einem dynamischen PPC-Recompiler gebaut! Ja! Das ist er! Unsere Majestät Art von JIT!

Neuer dynamischer Recompiler bedeutet, dass alles, was Sie jetzt brauchen, in der Konfigurationsdatei steht, diese Strings hat:

core=dynamisch
Zyklen=max

Die Ergebnisse sind gut (vielleicht nicht _das_ gut, aber immerhin).

PCPBench berichtet auf meiner Maschine nur 4,2 fps bei normalem und 15,2 bei dynamischem Betrieb, also die 3,5-4fache Beschleunigung.

Außerdem habe ich das Spiel Mortal Kombat 3 ausprobiert: mit "normal" ist es spielbar, aber ich kann sehen, daß es vielleicht 25 fps sind. Mit "dynamisch" sieht alles ziemlich flüssig aus, wie 60 und mehr fps.

Ich habe versucht, auch in Doom, Extrem-Flipper und Flipper-Illusion zu spielen: nicht sicher, ob es große Unterschiede gibt, aber zumindest fühlt sich Doom sicherlich besser an.

Quake1 zumindest spielbar mit "dynamic" wie mit "normal" es langsam wie amiga1200 auf meinem x5k (seltsam ..)

Natürlich wurde es nicht von mir gemacht, sondern von einer anderen Person für PPC-Macs, und durch etwas Glück konnte ich es mit ein paar kleinen Änderungen auch für unseren Build verwenden (siehe in einem anderen Thread etwas Hilfe von Rigo über die Allokation von ausführbarem Speicher).

Das ist es, worüber der Autor geschrieben hat:

Zitat:

Einige Kommentare zu den Änderungen:
- Ich musste die FPU_Rec-Struktur so benennen, dass sie in risc_ppc.h vorwärtsgerichtet werden konnte (ein spezielles Register, auf das darauf hingewiesen wird, hilft FPU-schwerem Code).
- Ich entfernte einige nicht benötigte WORDS_BIGENDIAN-Wachen in der selbstmodifizierenden Code-Erkennung, sie wurden nicht benötigt, da die Zusätze nicht dazu gedacht sind, zwischen den Bytes zu überlaufen.
- dyn_run_code() wurde vor dyn_return(BR_Link1/BR_Link2) aufgerufen und ihre Positionen ein wenig gemischt. Der Grund dafür ist, dass der PPC-Dynrec sein Epilog einmal in gen_run_code() erzeugt und dann bei jedem Aufruf von gen_return_function() einen Sprung dorthin macht, anstatt jedes Mal ein vollständiges Epilog auszugeben. Wenn dyn_return() vor dyn_run_code() aufgerufen wurde, ist die Adresse des Epilogs unbekannt.
- Fehlende cache_block_before_close()/cache_block_closing()-Aufrufe für diese Blöcke wurden hinzugefügt, da sie fehlten.
- Der dynrec-Decoder unterschied nicht zwischen Little-Endian-(Host-)Speicherzugriff und regulärem Speicherzugriff. Ich fügte neue Funktionen hinzu, wo es notwendig war (hoffentlich habe ich sie alle erwischt), und verknüpfte sie mit den regulären Funktionen, wenn WORDS_BIGENDIAN nicht definiert ist.
- dyn_ret_near() war fehlerhaft, es versuchte, ein dword nach ®_ip zu schreiben, das auf Big-Endian überlief.



- Es enthält Endian-Fixes für drive_fat.cpp, die auf big-endian funktionieren (einschließlich der Behebung eines Fehlers, der einen Cluster zu viel zuweist, wenn die Länge einer Datei ein Vielfaches der Clustergröße ist) und nutzt die bswap-Builds von GCC (die für PowerPC in lwbrx/stwbrx übersetzt werden) für den Host-Speicherzugriff.

Das habe ich natürlich auch nicht gemacht, aber ich wende es trotzdem an, auch wenn ich nicht weiß, wie sehr wir es brauchen.


Nun, bevor jemand die Frage stellt, gibt es Antworten:

1). Nein, es ist nicht das DosBox-X-Projekt. DosBox-X ist vielleicht interessant, wenn der Autor alle neu eingeführten Probleme und Big-Endian-Differenzen behoben hat. Es hat auch viele Fehler. Neue Fehler, die die ursprüngliche DOSBox nicht hatte. Also...

2). Nein, Corto's Endian ändert sich nicht, weil es jetzt mit dem PPC-Recompiler gebaut wurde, was bedeutet, dass jeder stattdessen diesen verwenden sollte. Aber vielleicht werde ich auch die Corto-Patches anwenden, wenn es wirklich nötig ist, und es wird uns helfen, das, was wir jetzt mit dem dynamischen Recompiler haben werden, zu übertreffen.

3). Nein, die SDL2-Version ist nicht schneller. Sie kann sogar etwas langsamer sein. Natürlich spreche ich von "normaler" CPU-Wahl, wenn sie dynamisch ist, wird natürlich alles schneller sein. Ist es ein Problem mit SDL2, oder mit "wie es zu DOSBox hinzugefügt wurde", keine Ahnung.


Wenn also jemand bereit ist, zu testen/zu helfen, ist es das, was wir jetzt brauchen:

1). so viele Dinge wie möglich mit "normal" und "dynamisch" testen und Probleme melden, die nur mit "dynamisch" auftreten, damit ich sie dem Autor melden kann, in der Hoffnung, dass er sie beheben wird.

2). Überprüfen Sie, ob mein Build Probleme hat, die der os4depot-Build nicht hatte. Ich denke, es gibt mindestens ein Problem, das mit dem "Midi"-Teil sein kann, aber ich bin mir nicht sicher. Weitere Benutzer mit DOSBox-Kenntnissen müssen es überprüfen.

Und es gibt nur eine Binärdatei, also fragen Sie nicht, wie man sie einrichtet, wo .conf-Dateien usw.: Wenn Sie DOSBox bereits verwenden, wissen Sie, wo-was-wann, verwenden Sie einfach eine neue Binärdatei und ändern Sie "core" und "cycles", um dynamisch zu verwenden:

Schnappen Sie es sich von dort: http://kas1e.mikendezign.com/aos4/dosbo ... jit_v1.lha


Ich werde auch eine Repo auf mein Github acc mit all dem Zeug angewandt, so dass wir später zusammen etwas mehr davon auch tun können.
Zuletzt geändert von TearsOfMe am 28. Januar 2020 13:59, insgesamt 1-mal geändert.
Still speaks the silence, it speaks in riddles to my mind
And time keeps passing by as I walk tearful through this life.
Tarja i miss you so much. Farewell my baby.
Benutzeravatar
TearsOfMe
Beiträge: 1202
Registriert: 29. Dezember 2013 19:27
Wohnort: Bad Marienberg
Hat sich bedankt: 28 Mal
Danksagung erhalten: 2 Mal

Re: [WIP] DOSBOX mit PPC JIT

Beitrag von TearsOfMe »

Also wenn jemand ne Ahnung hat ob und wie man ein kleines Linux unter DOSBOX zum laufen bringt, bitte mal ne kleine Anleitung posten.
Still speaks the silence, it speaks in riddles to my mind
And time keeps passing by as I walk tearful through this life.
Tarja i miss you so much. Farewell my baby.
Benutzeravatar
TearsOfMe
Beiträge: 1202
Registriert: 29. Dezember 2013 19:27
Wohnort: Bad Marienberg
Hat sich bedankt: 28 Mal
Danksagung erhalten: 2 Mal

Re: [WIP] DOSBOX mit PPC JIT

Beitrag von TearsOfMe »

Ein Video von Spielen die Kas1e getestet hat.



Games showed:

Command & Conqueror
Mortal Kombat 3
Cyberia
Little Big Adventure
Chronomaster
Crusader: no remorse
Still speaks the silence, it speaks in riddles to my mind
And time keeps passing by as I walk tearful through this life.
Tarja i miss you so much. Farewell my baby.
Benutzeravatar
Cyborg
AmigaOS Entwickler
Beiträge: 3514
Registriert: 28. September 2009 11:10
Hat sich bedankt: 12 Mal
Danksagung erhalten: 34 Mal

Re: [WIP] DOSBOX mit PPC JIT

Beitrag von Cyborg »

Quelle bitte immer mit angeben bei sowas, damit man auch das Original lesen kann (automatische Übersetzungen sind immer furchtbar ;) ): https://www.amigans.net/modules/xforum/ ... 55&forum=3
.. der SysOp hat immer recht :evil:

PGP Schlüssel verfügbar
Benutzeravatar
TearsOfMe
Beiträge: 1202
Registriert: 29. Dezember 2013 19:27
Wohnort: Bad Marienberg
Hat sich bedankt: 28 Mal
Danksagung erhalten: 2 Mal

Re: [WIP] DOSBOX mit PPC JIT

Beitrag von TearsOfMe »

Oh, stimmt.. der obere link im post sollte das eigentlich sein 😜
Still speaks the silence, it speaks in riddles to my mind
And time keeps passing by as I walk tearful through this life.
Tarja i miss you so much. Farewell my baby.
Benutzeravatar
TearsOfMe
Beiträge: 1202
Registriert: 29. Dezember 2013 19:27
Wohnort: Bad Marienberg
Hat sich bedankt: 28 Mal
Danksagung erhalten: 2 Mal

Re: [Software] DOSBOX mit PPC JIT

Beitrag von TearsOfMe »

Liegt jetzt im Os4Depot zum Download bereit.

http://os4depot.net/?function=showfile& ... dosbox.lha
Still speaks the silence, it speaks in riddles to my mind
And time keeps passing by as I walk tearful through this life.
Tarja i miss you so much. Farewell my baby.
Antworten