26.04.2025, 11:49
(18.04.2025, 19:35)HenneNWH schrieb: Aktuell zeigt es mir an, dass sich nur noch 12/52336 Bytes (< 0,02 %) im Code vom Original unterscheiden.
Besser geht es meinerseits nicht mehr. Die restlichen 12 Byte im Audio-CD-Teil haben jedoch dieselbe Funktionalität.
MISSION COMPLETE
Glückwunsch! Was ist denn mit den 12 verbleibenden Bytes, warum geht das nicht besser? Ist davon auszugehen, dass auch Attic hier mit Assembler-Code gearbetet hat?
(18.04.2025, 16:24)HenneNWH schrieb: Ausgehend von dem aktuell angepeilten Status des Projekts habe ich folgenden Plan gefasst:
Die Version G105de ist die umfangreichste von den 5 verschiedenen Versionen des Charaktergenerators.
Mit dem Quellcode von dieser sollte es ein Leichtes sein, auch die anderen 4 Versionen zu rekonstruieren
und ähnlich wie jetzt mit dem BCC diese Binaries für DOS zu bauen.
Damit wäre dem historischen Teil des Charaktergenerators meiner Ansicht nach genüge getan.
=> Ab ins Archiv.
Für die perfekte digitale Denkmalpflege fehlt mir in dieser Liste irgendwie noch der Aspekt, den Quellcode möglichst verständlich zu machen.
Also das Herausarbeiten der Programmlogik, so dass der (mitunter etwas krude) originale Code möglichst gut gelesen und verstanden werden kann, beispielsweise:
- Variablen und Funktionen passend benennen nach einem konstistenten Schema.
- "magic numbers" durch benannte Konstanten ersetzen (also z.B. g_hero.skills[TA_SCHWERTER] anstelle von g_hero.skills[3]).
- Höhere Datenstrukturen (structs) einführen, soweit es die Binär-Äquivalenz zulässt.
- Nicht offensichtliche Programmlogik kommentieren.
- Insbesondere: Bugs und sonstige Dubiositäten dokmentieren.
- Soweit es ohne übermäßigen Aufwand funktioniert: Optional zuschaltbare Bugfixes, so dass idealerweise mit dem BCC eine dem umfassenden Bugfix-Patch ebenbürtige Version der Schicksalsklinge erzeugt werden kann.
(Die letzten beiden Punkte sind eher für die SCHICKM.EXE gedacht und für die GEN.EXE hoffentlich irrelevant, aber wer weiß.)
Der Test auf Binär-Äquivalenz ist bei solchen Änderungen (abgesehen von Bugfixes) eine sehr mächtige Absicherung, dabei nicht versehentlich etwas kaputt zu machen. Zumindest ist die Erfahrung aus meinen Versuchen, den Bright-Eyes-Code der Schicksalsklinge dahingehend weiterzubringen.
(20.04.2025, 00:54)HenneNWH schrieb: Noch eine kleine Statusmitteilung: Die Aufspaltung ist erfolgt!
Das Verzeichnis src/gen_dos ist ab heute für reine Rekonstruktionsarbeiten gedacht,
im Verzeichnis src/gen wir der Charaktergenerator weiterentwickelt und auf einen aktuellen Stand gebracht.
Beeindruckend, mit welch großen Schritten es hier vorangeht. Durch die Aufspaltung ist jetzt aber die Situation eingetreten, dass Änderungen vom oben aufgelisteten Typ eigentlich parallel in beiden Versionen gemacht werden müssten.
Beispiel: In diesem Commit wurden einige Dinge im "modernen Teil" mit treffenderen Bezeichnern belegt.
Henne, hast du vor, solche Umbenennungen auch nach gen_dos rückzuportieren? Ich fände das sehr gut.
(20.04.2025, 00:54)HenneNWH schrieb: Zur Einstimmung habe ich die Version auf V1.06 erhöht, ein paar Altlasten entfernt und den Dateien aussagekräftige Namen verpasst.Wenn man sich nicht ganz genau auskennt, drängt sich bei V1.06 der Eindruck auf, dass dass Attic doch noch eine neuere Version produziert hatte.
Meiner Meinung nach wäre für BrightEyes eine unabhängige Versionsnummerierung besser.
Z.B. BE1.0 (BrightEyes 1.0) oder V1.05BE1 (Die auf V1.05 basierende BrightEyes Version 1) oder so.