Crystals-DSA-Foren
Reverse Engineering der NLT - Druckversion

+- Crystals-DSA-Foren (https://www.crystals-dsa-foren.de)
+-- Forum: Allgemeines zur Nordlandtrilogie DOS (https://www.crystals-dsa-foren.de/forumdisplay.php?fid=20)
+--- Forum: Technische Werkstatt (https://www.crystals-dsa-foren.de/forumdisplay.php?fid=34)
+--- Thema: Reverse Engineering der NLT (/showthread.php?tid=700)



RE: Reverse Engineering der NLT - HenneNWH - 14.03.2014

@Obi: Hast du die aktuellste Version? Bei mir funktioniert es mit Visual Studio Express 2008.


RE: Reverse Engineering der NLT - Obi-Wahn - 14.03.2014

Hmm... Ich werde es am Wochenende auf dem Laptop noch einmal versuchen. Aber eigentlich habe ich es sowohl mit der 2008er Version als auch mit der ganz aktuellen Version ausprobiert.. Ich lade später noch die jeweiligen Exe-Dateien hoch...


RE: Reverse Engineering der NLT - Obi-Wahn - 16.03.2014

Gerade wollte ich es erneut probieren, aber leider hat sich da wohl ein Tipp-Fehler eingeschlichen:

Code:
seg105.cpp
..\src\custom\schick\rewrite_m302de\seg105.cpp(191) : error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 'fprintf'



RE: Reverse Engineering der NLT - HenneNWH - 16.03.2014

Ja, das war in der Tat so.
Ich glaube ich brauche langsam ein paar automatische Tests. :)


RE: Reverse Engineering der NLT - Obi-Wahn - 17.03.2014

Neue Version, das Kompilieren läuft wieder. Allerdings sehe ich die Anzeiger des Hungers und Durstes immer noch nicht ....


RE: Reverse Engineering der NLT - HenneNWH - 18.03.2014

Guck mal in das Ausgabefenster und iss ein Proviantpaket oder trink etwas.
Die Ausgabe erscheint nur dann, wenn ein Held etwas zu sich nimmt, entweder manuell oder automatisch wegen des Hungers.


RE: Reverse Engineering der NLT - Obi-Wahn - 18.03.2014

Ja, dass habe ich natürlich schon gemacht. Aber ohne Erfolg.. Ich werde noch einmal mit einem ganz neuen Quellenpaket versuchen, um irgendwelche Überreste von alten Versionen auszuschließen. Ich mache zwar eigentlich immer einen aufgeräumten Build, aber naja...

Kann es jemand anders noch unter Windows versuchen?


RE: Reverse Engineering der NLT - HenneNWH - 18.03.2014

Habs gerade probiert (WinXP, MSVC2008Express in VirtualBox) und es geht. ???
Seltsam.

Habe gerade wieder ein Segment (seg105/Inventarfunktionen) fertiggestellt,
welches genau den Code aus Schick erzeugt.

Insgesamt sind 468 von 1258 Funktionen nachprogrammiert (37,2%).
Davon stimmen genau 136 mit dem Original überein (~10%).

Mit den neuen Tools geht das wie das Brezelbacken. :D


RE: Reverse Engineering der NLT - Obi-Wahn - 18.03.2014

Es hat funktioniert! :) Die Ausgabe wird angezeigt.

Neue Version vom 18.03.2014!

37% bzw. 10% hört sich gut an. Langsam nähern wir uns der 50%-Marke! :D Willst du die Tools auch anderen zu Verfügung stellen?


RE: Reverse Engineering der NLT - HenneNWH - 19.03.2014

Sehr schön, dass es geklappt hat. Weist du woran es gelegen hat?

Zu den Tools:
Die Tools brauchen noch etwas Liebe, da sie nur in meinem Setup fast ordentlich funktionieren
sehr speziell sind und auch noch etwas Handarbeit voraussetzen.
Ausserdem wird ein Borland C++ 3.1 Compiler benötigt, den sicherlich nicht so viele besitzen.

Sobald ich sinnvolle Teile ausgliedern kann werde ich sie natürlich freigeben,
aber im Moment sind sie nur für mich direkt nützlich.


RE: Reverse Engineering der NLT - Obi-Wahn - 19.03.2014

Ich vermute, dass irgendwie noch Überreste von früheren Version übrig bleiben und diese dann den sauberen Build versauen. Ich mache zwar vorher eigentlich immer eine "Bereinigung", wie es bei MSVC 2008 Express und auch der neusten Version genannt wird, aber das reicht offensichtlich nicht aus.

Das mit den Tools hört sich nachvollziehbar an, aber vielleicht kann Hendrik ja trotzdem damit etwas anfangen?
@Hendrik: Hast du denn schon den Borland C++ 3.1 Compiler im Zusammenhang mit Schweif verwendet oder wurde dort schon eine andere Version benutzt?


RE: Reverse Engineering der NLT - Lippens die Ente - 20.03.2014

Soll ich noch ein paar Versuchsreihen zum Identifizieren unbekannter Bytes starten? Nächste Woche hätte ich etwas Zeit dafür. Oder macht ihr das selber?


RE: Reverse Engineering der NLT - Obi-Wahn - 21.03.2014

Neue Version vom 21.03.2014!

Die Downloadzahlen der letzten paar Updates sehen ja nicht so umwerfend aus, .. los, testen, testen, testen!! ;) :D


RE: Reverse Engineering der NLT - HenneNWH - 22.03.2014

(20.03.2014, 19:04)Lippens die Ente schrieb: Soll ich noch ein paar Versuchsreihen zum Identifizieren unbekannter Bytes starten?

Danke für das Angebot. :thx:

Ich sehe drei Möglichkeiten
a) mit IDA im disassemblierten Code des ganzen Spiels rumsuchen, oder
b) im Bright-Eyes Code einigen Variablennamen mehr Sinn verleihen oder zu dokumentieren, oder
c) Du hast eigene Ideen.

Wie möchtest Du denn vorgehen?

(21.03.2014, 16:46)Obi-Wahn schrieb: Neue Version vom 21.03.2014!

Die Downloadzahlen der letzten paar Updates sehen ja nicht so umwerfend aus, .. los, testen, testen, testen!! ;) :D

Nachdem in der Entwicklung fast ein halbes Jahr nichts offensichtliches passiert ist,
wundert mich die geringe Anzahl der Downloads kaum.
Vielleicht sollten die Downloads in größeren Abständen angeboten werden.


RE: Reverse Engineering der NLT - Obi-Wahn - 22.03.2014

(22.03.2014, 09:31)HenneNWH schrieb: Nachdem in der Entwicklung fast ein halbes Jahr nichts offensichtliches passiert ist,
wundert mich die geringe Anzahl der Downloads kaum.
Vielleicht sollten die Downloads in größeren Abständen angeboten werden.

Wundert mich auch nicht wirklich. Es war auch eher ein allgemeiner Aufruf zum Testen. :D
Da ich die Builds ja eh für mich erstelle, kann ich sie ja auch direkt hochladen. Aber vielleicht werde ich es so machen, dass ich im "offiziellen" Thema nur ein Mal pro Woche einen neuen Download hochlade. (Falls es sich lohnt) Dann wird es etwas übersichtlicher.


RE: Reverse Engineering der NLT - HenneNWH - 26.03.2014

So, jetzt habe ich mal wieder gepusht.

Änderungen seit der letzten Version:
  • Ersetzte Funktionen: Waffenschaden wenn ein Held angreift nah und fern (seg041), Wirkung von Giften (seg121)
  • komplette Segmente in Originalzustand: Tagebuch (seg024), Hilfsfunktionen Hafen (seg064), Kampffunktionen (seg041) und Wirkung von Giften (seg121)
  • Bugfix: Verstellte Rüstungsbehinderung (passiert nur, wenn ein Held einen anderen Held angreift)
  • Wartung: Beseitigen vieler Compilerwarnungen Windows, Linux

Die Funktionen sind in Segmenten organisiert.

Anzahl Segmente des Spiels: 101
Anzahl angefangener Segmente: 57
Anzahl vollständiger Segmente: 20
Anzahl identischer Segmente: 14

Viel Spaß beim Spielen


RE: Reverse Engineering der NLT - Obi-Wahn - 28.03.2014

Neue Version vom 26.03.2014!


RE: Reverse Engineering der NLT - HenneNWH - 29.03.2014

Danke Obi!

Um die aktuelle Version von Bright-Eyes etwas attraktiver zu machen habe ich heute mal ein paar Kleinigkeiten für SCHWEIF eingebaut.
  • Ersetzen der Tests auf Krankheiten und Vergiftungen
  • Ausgabe wenn ein Held vergiftet wird
  • Ausgabe wenn ein Held krank wird
  • Ausgabe wenn ein Held sich anstecken kann (mit Wahrscheinlichkeit)

Vielleicht klärt sich dann die Frage warum Elfen immer so schnell krank werden :D


RE: Reverse Engineering der NLT - tommy - 31.03.2014

vielleicht bekommst du ja auch raus, was dieses einen Flag bewirkt, was manchmal im Krankheitsverlauf gesetzt wird...war ja immer besonder bei meinen Waldelfen so... (ich mein das, was ich gleich am anfang unter technisches erklärt habe (byte 5 Bit 2) http://www.crystals-dsa-foren.de/showthread.php?tid=4018)


RE: Reverse Engineering der NLT - Obi-Wahn - 31.03.2014

Bei der Heilung kommt es wohl zu einem Bug: http://www.crystals-dsa-foren.de/showthread.php?tid=4376&pid=131543#pid131543