29.10.2023, 21:49
(29.10.2023, 18:43)Tiefhusen schrieb: Ich habe den Logger gleich installiert und auch sofort beim ersten Versuch starten können! Echt super!!
Danke, das war auch der Sinn der Sache! Ich wollte die Installation so einfach wie möglich, aber gleichzeitig so anpassbar wie nötig gestalten, damit sie mit allen Versionen kompatibel ist - natürlich ohne Original-Spieldateien mitzuliefern.
(29.10.2023, 18:43)Tiefhusen schrieb: Was mir gleich aufgefallen ist, ist, dass Riva im Vollbildmodus nun anders dargestellt wird, nämlich gestaucht, sprich, es sind nun zwei schwarze Balken links und rechts vorhanden. Stört mich jetzt aber erstmal wenig, da ich mit dem Logger ja eh nicht im Vollbildmodus spiele, sonst verpasse ich ja die Ausgaben.
Zwei Fragen habe ich noch:
1. Wenn ich die Anfangsausgaben des Loggers richtig verstehe, ist in ihm auch ein Patch inkludiert, der die Blitz-dich-find-Magie als Zauberprobe implementiert?
Guter Punkt. Sowohl das Bildverhältnis als auch das Anwenden von Patches (wie Blitz-Dich-Find / NRS' Spiegelpatch) sollten noch anpassbar sein. Ersteres ließe sich durch das Editieren der Konfiguration ändern. Für Letzteres könnte ich eine Option hinzufügen. Aber ja, es ist aktuell so, dass auf Blitz-Dich-Find, wie auf alle anderen Zauber, eine Probe abgelegt werden muss. Später könnten noch weitere Patches kommen - der Thread dazu hier im Forum ist ja lang - aber meiner Meinung nach sollten vorher noch andere Dinge passieren, damit das Patchen leichter wird. Mehr dazu weiter unten.
(29.10.2023, 18:43)Tiefhusen schrieb: 2. Du sprachst vor einiger Zeit (03.10.) noch von "einigen Würfelresultaten", die falsch ausgegeben würden. Konntest du das inzwischen korrigieren bzw. falls nicht, welche wären das dann, damit ich Bescheid weiß?
Haha, das war ein Fehler von mir. Zum Testen hatte ich an verschiedenen Stellen im Spiel, bei denen Proben abgelegt werden, Spielstände erstellt, die ich vor dem Release nochmals durchgegangen bin. Ich hatte vergessen, dass ich einen Spielstand so modifiziert hatte, dass alle Helden alle Eigenschaften auf 1 und alle Talente auf Zauber -99 hatten, und hatte mich dann gewundert, wieso diese komischen Werte im Logger angezeigt wurden. Ich hatte einfach vergessen, dass ich im Frühjahr diesen Spielstand so manipuliert hatte und hatte sicherheitshalber die Warnung hier reingeschrieben.
Also:
- Ich weiß gerade von keinen Fehlern, und habe alles eigentlich recht gründlich getestet. Aber komplett ausschließen kann ich Bugs natürlich nicht.
- Und, wie auch im ersten Beitrag geschrieben wurde, ließen sich noch viele Dinge genauer untersuchen:
Geh zum Beispiel mal in einen Kampf, dann wirst du viele Zeilen sehen wie:Da kann man sich vielleicht denken, dass die ersten W20er für eine AT-Probe, die W11+1 für den Schaden einer Waffe und die W6/W7 vermutlich zur Bestimmung der Kampfreihenfolge stehen. Aber momentan werden eben nur die "rohen" Würfelwürfe ausgegeben. Wenn man wissen will, wieso, müsste ich das noch erweitern. Hier, indem man sich die Codestellen, die über bspw. "I/NLT12/23fd3b/P2" identifiziert werden, anschaut.Code:I/NLT12/23faad/P2 W20: 16
2023-10-29 20:58:27.553 | I/NLT12/23fc8d/P2 W20: 20
2023-10-29 20:58:27.555 | I/NLT12/23fcd4/P2 W20: 19
2023-10-29 20:58:27.556 | I/NLT12/23fd11/P0 W11+1: 3 + 1 = 4
2023-10-29 20:58:27.558 | I/NLT12/23fd3b/P2 W20: 15
2023-10-29 20:58:27.561 | I/NLT12/2733bd/P2 W6: 6
2023-10-29 20:58:27.562 | I/NLT12/2733bd/P2 W6: 3
2023-10-29 20:58:29.316 | I/NLT12/1eec35/P2 W7: 7 - Dass alle Würfelwürfe erkannt und geloggt werden, bin ich mir sehr sicher.
- Was die Anzeige aller Abfragen von Eigenschaften, Talentwerten etc. betrifft, so bin ich mir allerdings nicht so sicher. Bzw. ich weiß, dass noch Speicherzugriffe unprotokolliert bleiben. Ich habe zwar eine Version, in der garantiert alle Abfragen jeglicher Charakterwerte angezeigt werden, aber da beispielsweise in jedem Frame abgefragt wird, welchen Typus alle Helden haben (zur Bestimmung der Kamerahöhe), ob diese betrunken sind (zur Berechnung der Kamera-Schaukeligkeit) und welcher Stabzauber angewandt wurde (wegen der Lichtstärke), ist die Ausgabe sehr umfangreich, das Log wird überfüllt und das Spiel beginnt zu ruckeln. Sobald ich ein System entwickelt habe, um differenzierter bestimmen zu können, welche Abfragen von welchen Charakterwerten man verfolgen möchte, könnte das jedoch durchaus nützlich sein.
So grob plane ich für die nächsten Monate, je nachdem wie viel Zeit ich finde, das Folgende (eigentlich dann wieder mehr etwas für den Reverse-Engineering-Thread):
- Ersetzung der kompletten Bildausgabe des Spiels von dem DOS->SDL2-Wrapper auf MonoGame. Bisher erledigt ist alles im Bereich 3D, 2D (GUI) fehlt noch komplett, daran bin ich gerade dran.
- Entwicklung eines eigenen Disassemblierers, der den Code in für moderne Systeme kompilierbaren ASM-Code übersetzt und dabei jegliche Abhängigkeiten zu DOS/Interrupts entfernt. Ziel ist es, dadurch leicht komplexere Patches einspielen zu können. Damit umgehe ich quasi den Hauptschritt von Brighteyes, den Spielcode in C zu übersetzen, bzw. möchte das nur an den wirklich notwendigen/interessanten Stellen vornehmen. Es sollte trotzdem genügend Arbeit sein.
- (Dynamisches) Einbetten des übersetzten Spielcodes in mein C#-MonoGame-/Riva-4k-Projekt - in gewisser Weise dynamisch, da ich zu keiner Zeit (unmodifizierte) Teile des Riva-Codes oder Äquivalente dazu irgendwo (ohne explizite Erlaubnis) hosten möchte.
- In dem C#-Projekt jetzt viele Einstellungsmöglichkeiten bieten: Anzeige so 'verpixelt' wie im Original, in nativer Monitorauflösung, oder vielleicht auch mit einem HD-Texturenpaket (mit KI ließe sich ja vielleicht etwas generieren). Zusätzlich überlege ich, einen Logger zu implementieren, der die Proben etwas anschaulicher darstellt. Ich stelle mir einen Logger vor, der im Vollbild neben dem Spielgeschehen läuft und dabei statt Namen Heldenportraits anzeigt sowie die Würfel, ähnlich wie im neuen Baldur's Gate III, schön animiert darstellt.
Viel Arbeit und Träumerei.. Mal gucken was draus wird