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 - Obi-Wahn - 20.07.2015 Es gibt einen Anzeigefehler bei der neuen Version beim Verkaufen beim Gemischtwarenhändler. Der ausgewählte und angezeigte Gegenstand stimmt nicht mit dem Gegenstand überein, der unten in der Schrift-Zeile beschrieben wird. Die Händlerin beschwert sich dann zum Beispiel, dass sie einen Streitkolben oder die bloße Hand nicht kaufen will, obwohl dem Bild nach ein Wasserschlauch ausgewählt worden ist. In der Ausgabe ist leider nichts zu lesen. Code: Bright Eyes, build date Jul 20 2015 Neue Dateien folgen.. RE: Reverse Engineering der NLT - HenneNWH - 20.07.2015 Vielen Dank fürs finden und melden, ich habe soeben einen Bugfix gepusht. RE: Reverse Engineering der NLT - Obi-Wahn - 20.07.2015 Bug ist behoben. Neue Version vom 20.07.2015! Zusätzlich hier noch die Version mit VSE2103: BrightEyes_VSE-2013_2015-07-20.zip (Größe: 1,55 MB / Downloads: 3) RE: Reverse Engineering der NLT - adtbm - 24.07.2015 Hallo, ich habe mich jetzt, die letzten 2 Tage durch 84 Seiten dieses Fadens gelesen....Puhhh Und möchte als erstes ein großes Danke an Obi-Wahn, Henrik, HenneNHW, Tommy und alle anderen die hier mitarbeiten und mitgearbeitet haben, aussprechen ! (ich kann nicht alle aufzählen aber ich habe die letzten 84 Seiten viele Namen kommen und gehen gesehen und nur wenige, die über diese Jahre konstant weitergearbeitet haben, ihnen allen gebührt mein Dank) Selten lese ich so viel. Auch wenn ich selber vom Reengineering nicht soviel verstehe, konnte ich mir jetzt doch einen guten Überblick verschaffen, was ihr hier leistet. Dementsprechend habe ich mir die letzte, von Obi-Wahn releaste Windowsversion von Bright-Eyes heruntergeladen und werde mich als Tester betätigen, um wenigstens ein bisschen was zum Projekt beitragen zu können und die Downloadzahlen ein wenig nach oben zu treiben Obwohl ich schon länger hier im Forum angemeldet bin, war ich noch nie hier in diesem Bereich. Meistens habe ich mich immer nur über die Informationsmenge und die Hilfen zur NLT, die es hier zu finden gibt gefreut. Auch ich liebe die NLT, spiele sie seit vielen Jahren (immer mal regelmäßig/unregelmäßig wieder) und freue mich riesig über die "Denkmalpflege" die hier betrieben wird. Eine Anmerkung oder auch Wunsch würde ich trotzdem gerne äussern (Auch wenn ich eigentlich nichts zu wünschen habe): Lasst die Passwortabfrage draussen. (Oder macht es so, dass man sie selber aktivieren/deaktivieren kann, wie es jeder gern möchte, wenn dies machbar ist) Also nochmals, MEINE HOCHACHTUNG !!! RE: Reverse Engineering der NLT - adtbm - 24.07.2015 Hallo und ich würde gerne einen Bug melden. (Win7x64 + DOSBox 0.74 + Heldenedition 3.02 + Bright-Eyes 20.7.2015) Habe gerade in Oberorken den Dungeon (0x000c) mehrmals betreten und auch schon einen Testkampf gemacht (WOW ist Bright-Eyes schnell und das bei 100 cycles) Beim letzten Besuch ist mir beim öffnen der ersten Tür der Dietrich abgebrochen.. Ich habe neu geladen und es fehlt die Hälfte meiner Gruppe ? Ausserdem habe ich im Protokoll die Meldung gesehen: Original Bug: HARIKA hat negative Talentsteigerungen. Ich habe gar kein Auto...Ähhh, Held namens Harika.... Gibt es eigentlich eine Möglichkeit, das Protokoll aus dem Fenster zu kopieren oder ist dies irgendwo gespeichert ? Ich habe mal meinen (nun defekten Spielstand) mit angehängt. OBERORKN.rar (Größe: 21,55 KB / Downloads: 3) EDIT: Wollte noch einen Screenshot machen (STRG+F5) dabei ist die DOSBox ganz abgestürzt. EDIT2: (Alten Spielstand rüberkopiert und weitergespielt. Diesmal trat der Bug oben nicht auf) Dafür hier der nächste Bug: habe im Dungeon die erste Tür geöffnet. Die Zwerge darin besiegt und habe die Schatzkiste gelootet. Als meine Taschen alle voll waren, kam die Frage, ob ich etwas wegwerfen wolle, da habe ich erst "JA" geklickt und dann bei der Auswahl "Welcher Held" habe ich rechts geklickt, da ich doch nichts wegwerfen wollte, das letzte was ich sah war eine Fehlermeldung im Protokoll etwa wie "Unknown call" dann crashte Dosbox. Ich wiederhole meine Frage von weiter oben nochmal, wie kann man das Protokoll auslesen oder wie schafft ihr es dieses hier darzustellen ? RE: Reverse Engineering der NLT - Rabenaas - 24.07.2015 Scheinbar wird irgendwo der Speicher falsch überschrieben. Mach doch einen Screenshot. Das ist mW die einfachste Lösung, um einen Text aus DosBox zu kopieren. RE: Reverse Engineering der NLT - adtbm - 24.07.2015 Hallo Rabenaas, vielen Dank für die Antwort, wie du meinem EDIT entnehmen kannst, hatte ich dies vor beim erst BUG, da ist die DOSBox dann gecrasht. und beim 2. BUG ist die BOX direkt gecrasht, war also erst gar nicht in der Lage, einen Screenshot zu machen. Der zweite BUG sollte aber reproduzierbar sein. Das werde ich testen und mich melden. RE: Reverse Engineering der NLT - Obi-Wahn - 25.07.2015 Danke für die Rückmeldung und das Lob! Das meiste Lob muss aber Richtung HenneNHW und Henrik gehen, die haben BrightEyes programmiert. Ich drück nur aufs Knöpfen zur Erstellung einer Datei. Wie man die Ausgabe des Konsolenfensters, außer per Screenshot, sichern kann, weiß ich gerade leider auch nicht. Bei Fehlern starte ich oft unter Linux und gucke dort in der Konsole.... Moment, wenn man unter Windows die Dosbox über die Eingabeaufforderung startet, bleibt das Fenster auch offen. Du müsstest also deine angepasste dosbox.conf in das BrightEyes-Verzeichnis kopieren und dort die dosbox.exe über die Eingabeaufforderung starten. Deine Beschreibungen der Bugs sollten aber ausreichen, ich werde später mal gucken, ob ich sie reproduzieren kann. HenneNHW hat inzwischen auch Übung aus kryptischen Fehlermeldung etwas herauszulesen. Edit: Den Absturz beim Screenshotmachen kann ich mit beiden Versionen bestätigen. Ich habe BrightEyes/DosBox mit libpng 1.2.37 kompiliert, also müsste es theoretisch gehen... RE: Reverse Engineering der NLT - adtbm - 25.07.2015 Hallo Obi-Wahn, danke für die Ruckmeldung und die Tipps, dann werde ich die DOSBox mal über die Eingabeaufforderung starten. Zum 2. Bug: Den kann ich bestätigen, ist reproduzierbar. Im Lootscreen, wenn das Inventar voll wird und man bekommt die PopUp-meldung ob man etwas wegwerfen will und man wählt einen Helden aus um etwas wegzuwerfen und überlegt es sich dann doch anders (Rechtsklick), steigt die DosBox aus mit unknown call function 0x26. Ansonsten habe ich wieder einen Spielstand, in welchem einfach ein Held verschwunden ist. Vielleicht sollte ich eine Gruppe mit Bright-Eyes erstellen und es mit dieser mal probieren. RE: Reverse Engineering der NLT - HenneNWH - 27.07.2015 Vielen Dank für das Lob und herzlich willkommen adtbm! (24.07.2015, 15:02)adtbm schrieb: und ich würde gerne einen Bug melden. Welche Version, die "normale" oder die VSE2013-Version? Laut den Downloadzahlen hast du die experimentelle VSE2013-Version heruntergeladen. Probier mal die Normale unter Bright-Eyes Download und teste nochmal. (24.07.2015, 15:02)adtbm schrieb: Ich habe neu geladen und es fehlt die Hälfte meiner Gruppe ? Hm, diesen Bug hatte ich für behoben geglaubt. (24.07.2015, 15:02)adtbm schrieb: Ausserdem habe ich im Protokoll die Meldung gesehen: Diese Meldung kann ignoriert werden. Harika ist zwar ein NPC, aber NPCs sind genauso aufgebaut wie Helden. Dieser Fehler ist aber einer in den Spieledaten (SCHICK.DAT). (24.07.2015, 15:02)adtbm schrieb: Gibt es eigentlich eine Möglichkeit, das Protokoll aus dem Fenster zu kopieren oder Nicht automatisch. Unter Linux starte ich folgendermaßen: Code: ./brighteyes 2>&1 | tee schick.log Geht soetwas irgendwie auch unter Windows? (24.07.2015, 15:02)adtbm schrieb: EDIT2: (Alten Spielstand rüberkopiert und weitergespielt. Diesmal trat der Bug oben nicht auf) Hm, ich habe heute einige Male versucht diesen Bug mit meinen eigenen Kompilaten (Linux-x64 und XP-32) zu reproduzieren, ohne Erfolg. Momentan habe ich kein 64-Bit-Windows und kann desshalb die VSE2013-Version nicht testen, aber ich vermute dass es mit der VSE2013-Version zu tun hat. Dieser Bug sollte sich deiner Beschreibung nach auch triggern lassen, indem man im Laden (bei default-Party 74 oder mit nur einem Helden 13) nicht-stapelbare Items kauft. @Obi: Wenn sich meine Vermutung bestätigt, dann solltest Du mal die Debug-Version bauen (schnell) oder die Optimierung des Compilers etwas absenken (mühsamer). RE: Reverse Engineering der NLT - Obi-Wahn - 27.07.2015 Das sind alles 32bit-Dateien, da meines Wissens nichts als 32bit-Binary gebaut wird. Anbei je eine Datei mit Debug-Einstellungen mit VSE 2008 und einmal mit VSE 2013 gebaut. VSE 2008: BrightEyes_2015-07-27_Debug.zip (Größe: 1,66 MB / Downloads: 2) VSE 2013: BrightEyes_2015-07-27_Debug_VSE-2013.zip (Größe: 1,7 MB / Downloads: 2) RE: Reverse Engineering der NLT - HenneNWH - 27.07.2015 Vielen Dank Obi, du hast Recht, es sind 32bit Binaries, aber mein XP sagt "dosbox.exe ist keine zulässige Win32 Anwendung". Windows XP wird wohl von diesem Compiler nicht mehr unterstützt. Konntest Du den Fehler bei dir reproduzieren? RE: Reverse Engineering der NLT - Rabenaas - 27.07.2015 msvc und gcc können die Optimierung für eine Funktion ein und ausschalten mittels pragmas. Falls Du einen Verdacht hast, könntest Du das ja mal probieren. https://gcc.gnu.org/onlinedocs/gcc/Function-Specific-Option-Pragmas.html https://msdn.microsoft.com/en-us/library/chh3fb0k.aspx RE: Reverse Engineering der NLT - adtbm - 28.07.2015 Hallo, erst einmal Danke für die Arbeit. Ich habe jetzt selber ein wenig gesucht, dass einzige, was ich finden kann, wie man unter Windows die Konsolenausgabe umleiten kann, ist, indem man hinter den Befehl zum starten der DOSBox den "-noconsole" Befehl setzt. Dadurch hat man zwar keine direkt Ausgabe mehr im Konsolenfenster aber DOSBox legt 2 Dateien an (stderr.txt und stdout.txt) In ersterer findet man dann das komplette Protokoll. Hier ein kleiner Auszug meines letzten crashes (STDERR.TXT): Code: Bright Eyes, build date Jul 20 2015 Und STDOUT.TXT: Code: DOSBox version 0.74 Ich habe auch die beiden Debug Versionen die Obi-Wahn angehängt hat heruntergeladen und ausprobiert, doch hier startet Schick nicht einmal. Bei der 2008er Version sagt mir das CMD Fenster: Diese Anwendung konnte nicht gestartet werden, da die Side-by-Side Konfiguration ungültig ist. bei der 2013er Version bekomme ich die Fehlermeldung, dass die MSVCR120d.dll fehlt. Dies ist die Version, die ich bisher benutzt hatte: Bright-Eyes_2015_07_20.zip Erst einmal vielen Dank, ich werde dann mal weitertesten, RE: Reverse Engineering der NLT - HenneNWH - 30.07.2015 Es gibt eine neue etwas kleinere Bright-Eyes Version. Hauptgrund waren die gemeldeten Abstürze beim Plündern von Schatztruhen. Und obendrein die noch ein paar Kleinigkeiten. Ersetzte Funktionen (Segmente sind komplett identisch)
Ersetzte Funktionen
Bugfixes:
Dokumentation: Keine TODO-Liste:
Statistik:
Viele Spaß beim Testen, HenneNWH RE: Reverse Engineering der NLT - HenneNWH - 30.07.2015 So der Fehler ist behoben! (28.07.2015, 01:47)adtbm schrieb: Ich habe auch die beiden Debug Versionen die Obi-Wahn angehängt hat heruntergeladen und ausprobiert, doch hier startet Schick nicht einmal. Das ist wirklich seltsam. (28.07.2015, 01:47)adtbm schrieb: bei der 2013er Version bekomme ich die Fehlermeldung, dass die MSVCR120d.dll fehlt. Hier könnte das installieren der MSVC-2013-Runtime helfen. RE: Reverse Engineering der NLT - Obi-Wahn - 30.07.2015 Hier die Neue Version vom 30.07.2015! Anbei die neuen Debug-Versionen. Schick startet bei mir mit den Debug-Versionen ohne Probleme. Was genau ist denn jetzt der Vorteil der Debug-Versionen, Henne? Ich seh da keine zusätzlichen Ausgaben beim Spielen oder so. BrightEyes_2015-07-30_Debug.zip (Größe: 1,66 MB / Downloads: 0) BrightEyes_2015-07-30_Debug_VSE-2013.zip (Größe: 1,71 MB / Downloads: 0) Hier noch die normale VSE-2013-Version: BrightEyes_2015-07-30_VSE-2013.zip (Größe: 1,55 MB / Downloads: 1) RE: Reverse Engineering der NLT - adtbm - 30.07.2015 Hallo, erstmal ein recht herzliches Danke wieder an HenneNHW und Obi-Wahn ! So, kurzes Update, in der neuen Version (BrightEyes_2015-07-30_VSE-2013.zip) tritt der Bug im Dungeon mit der Überladung und anschliessendem Crash nicht mehr auf !!! Nachdem ich dann raus in den Tempel bin, zum speichern und den Spielstand wieder neu geladen habe, hat wieder ein Held gefehlt... Ich werde mir heute Abend mal eine komplett neue Party mit Bright-Eyes erstellen und nachsehen, ob der Bug dann immer noch auftritt. Was mir noch aufgefallen ist, (da weiss ich aber nicht ob das im Spiel ist), als ich mehrfach den Spielstand im Temple neu geladen habe (Der, bei dem ein Char verloren gegangen ist), Wurde auf einmal eine Zufallsabfrage durchgeführt,im Tempel und es wurde etwas aus meinen Taschen gestohlen... und dann crashte das Spiel. (Auch wenn im Log steht Tempel verlassen, bin ich nicht raus gegangen, es war auch noch das Hintergrundbild vom Tempel zu sehen) ...Ich dachte, dies kann nur in den Straßen passieren oder liege ich da falsch ? Hier mal das Log: Code: Location verlassen: Herberge RE: Reverse Engineering der NLT - Frudelfius - 31.07.2015 Also, von mir auch, *hands down* to the BrightEyes-Developers. RE: Reverse Engineering der NLT - HenneNWH - 31.07.2015 (30.07.2015, 14:58)Obi-Wahn schrieb: Anbei die neuen Debug-Versionen. Schick startet bei mir mit den Debug-Versionen ohne Probleme. Was genau ist denn jetzt der Vorteil der Debug-Versionen, Henne? Ich seh da keine zusätzlichen Ausgaben beim Spielen oder so.Die Debug-Version enhält mehr Informationen (z.B. Funktions- und Variablennamen) und automatische Prüfungen, welche die Fehlersuche erleichtern. Dafür ist das Programm allerdings wesentlich größer und manchmal auch ein wenig langsamer, was aber nicht spürbar sein sollte. (30.07.2015, 18:02)adtbm schrieb: Nachdem ich dann raus in den Tempel bin, zum speichern und den Spielstand wieder Dieses Problem werde ich mir nächste Woche DO-FR genauer ansehen, da ich gerade unterwegs bin und kein lauffähiges Bright-Eyes mit dabei habe (muss lernen und will mich nicht ablenken). Wenn der Fehler nur ab und zu auftritt, solltest Du bis dahin verschiedene Spielstände benutzen. (30.07.2015, 18:02)adtbm schrieb: Ich werde mir heute Abend mal eine komplett neue Party mit Bright-Eyes erstellen Das sollte keinen Unterschied machen. (30.07.2015, 18:02)adtbm schrieb: Was mir noch aufgefallen ist, (da weiss ich aber nicht ob das im Spiel ist), als ich mehrfach den Spielstand im Temple neu geladen habe (Der, bei dem ein Char verloren gegangen ist), Sehr gut. Da hast Du vollig recht. Ich habe mir einige potentielle Stellen im Code angesehen, aber keine Idee wie dieser Fehler zustande kommt. Hattest du den geladenen Spielstand auf der Straße abgespeichert? Dann kann es sein, dass die Anzeige nicht richtig aktualisiert wird. Mir ist beim Laden von Spielständen, welche in Dungeons gespeichtert wurden, auch öfters passiert, dass der Kompass verschwunden ist. Das könnte evtl. ein Fehler in SCHICK sein. |