Crystals-DSA-Foren

Normale Version: Reverse Engineering der NLT
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
(07.03.2015, 10:58)Rabenaas schrieb: [ -> ]Ich habe mir das mal angesehen. Imo müssten zuerst mal die seg000 bis seg120 umbenannt werden, um irgendwie als Nichthenne eine Übersicht zu bekommen. IdR sind die ja thematisch.geordnet. Ich könnte mal eine Liste mit Namensvorschlägen machen, so wie
Zitat:seg001 be_compactdisk

Was haltet ihr davon?

Um eine Übersicht zu bekommen möchte ich auf die Datei
Bright-Eyes/src/custom/schick/rewrite_m302de/doc/details.html
hinweisen.

Hier ist ein Link zur aktuellen gerenderten Version:
Bright-Eyes: aktuelle Entwicklungsdetails

In dieser befindet sich der aktuelle Entwicklungsstand und eine Kurzbeschreibung
der Segmente. Die Dateien werden natürlich noch richtige Namen bekommen,
aber im Moment ist mir Nummerierung lieber, da ich so einfacher mit anderen
Schick-Versionen vergleichen kann.

@Rabenaas: So eine Liste wäre toll. Die könnte ich auch in diesen Detailbericht einarbeiten.
Bedenke aber bei der Nameswahl, dass Schweif, Riva und auch ein generischer Teil
bei der Benennung der C++-Dateien mit abgebildet werden müssen.

Es gab (/gibt?) mit dem MSVC-Compiler ein Problem mit den Dateinamen.
Das hatten wir mit unleserlichen Prefixen an den Dateinamen gelöst, z.B. g105de_seg001.cpp.


(08.03.2015, 10:27)Obi-Wahn schrieb: [ -> ]@Henne: Was ist eigentlich aus der ARM-Version geworden? Hast du da etwas erreichen/erstellen können? :)


ARM oder Andoid?

ARM:
Auf dem Raspi mit Raspbian funktioniert es jetzt ausgezeichnet.
Ich erinnere mich dass es einen Bug gab als ich es probierte,
welcher aber nicht ARM-spezifisch war.


Mit Android sieht es etwas anders aus:
Mit aDOSBox, welches seit 2011 nicht mehr weiterentwickelt wird, hatte ich keinen Erfolg.
Heute habe ich die Quellen von DOSBox Turbo auf Github gefunden.
Dieses Projekt wird auch aktuell weiterentwickelt.
Ich bezweifle aber, dass ich Zeit habe damit herumzuspielen.
So eine Liste habe ich hier schon hochgeladen. Scheinbar sind wir zu ziemlich ähnlichen Ergebnissen gekommen.

Womit könnte man sich denn noch nützlich machen? Bezeichner für die hexadezimalen Offsets vielleicht? Und wo sollte man ggf. damit anfangen?
Die Hexadezimalen Offsets wären eine gute Idee.

Ich gehe jetzt von dem Verzeichnis aus, in welchem die Dateien von Schick liegen.

Es gibt eine Datei namens symbols.h, in welcher schon einige Offsets im Datensegment eingetragen sind.
Das Shell-Script tools/add2sym.sh wandelt, bei Aufruf, alle vorkommenden Hex-Adressen in Symbolnamen um.

Zur Zeit arbeite ich am ersten Dungeonhandler, also der Logik eines Dungeons und werde an diesem Wochenende sicher fertig.

Hast Du IDA installiert?
Derzeit nicht. Ist aber kein großes Problem (falls auf der Rootpartition noch Platz ist). Welche Version?
Achso, die Disassemblierten Quellen sind also schon ganz fertig bearbeitet. Dann bleibt ja wirklich nur noch, mit IDA für Nachschub zu sorgen.
Nach langer Zeit gibt es mal wieder einige Neuigkeiten:

Ersetzte Funktionen (Segmente sind komplett identisch)
  • seg090: Dungeon Zwergenmine unter Oberorken (Dungeonlogik)

Ersetzte Funktionen
  • seg025: Location: das Verlassen des Dungeons
  • seg050: Steigern: erhöhen von Talenten und Zaubern im Anfänger- und Fortgeschrittenenmodus
  • seg092: Treasures: diverse Fallen für Truhen, Looten von Truhen (ohne gestapelte Gegenstände)

Was kommt als Nächstes?
  • Check: Skripte zum Vergleichen der Binärdateien (erfordert eigenen Borland C++ 3.1 Compiler)
  • Steigern vervollständigen
  • mehr Dungeon-Handler nachbauen

Statistik:
  • Es sind 786 von 1236 Funktionen sind nachgebaut (63,59%).
  • Davon sind 729 identisch mit dem Originalcode.
  • Nach Byte-Metrik sind schon 75,03% fertig


@Rabenaas: Wie wäre es denn, wenn du das erste reverse-engineerde Dungeon aus Oberorken dokumentierst?

In seg090.cpp gibt es eine Funktion DNG_handler_oberorken(), welche die Events in den Dungeons ausführt.
Die Events werden bei Übergängen zwischen zwei Feldern überprüft, das Zielfeld steht in der Variable target_pos.
Du kannst bei den einzelnen Events mit D1_INFO() einen Text ausgeben lassen und untersuchen
wie die Events genau getriggert werden und was bei den einzelnen Events passiert.
Am allerbesten in einer spielerfreundlichen Sprache, damit die Lösung hier auf der Seite etwas komplettiert wird.

Na, ist das was? :D

Viele Grüße,
HenneNWH
Ok, das ist - aber eine lange Funktionsdeklaration. :D

Gucke ich mir an.
Neue Version vom 18.03.2015!

Ich habe die neuen Funktionen nicht getestet, nur geguckt, ob das Spiel startet. Also testen, testen, testen! :D
Ähm...:shy: bei dem Link, in der roten Changelog-Überschrift, steht 18.03.14 :pfeif:
Danke! :D
(16.03.2015, 21:33)HenneNWH schrieb: [ -> ]@Rabenaas: Wie wäre es denn, wenn du das erste reverse-engineerde Dungeon aus Oberorken dokumentierst?

Ich habe das, Gefühl, dass da NLT-Neuland betreten wird, was die Mechanismen betrifft. :jippie:
Hi, ist eigentlich der wiki-link überall auf dem neuesten Stand? Bei mir hat nur der im originalen Beitrag funktioniert.
Der aktuelle Link zum Wiki: http://www.bright-eyes.obiwahn.de/

Welche Beiträge oder Links meinst du denn? Alte Links hier im Forum werde ich aber wohl nicht verbessern.
Zum Beispiel in:
Wegweiser zur Rubrik "Technische Werkstatt"
oder
Bright-Eyes Download
Oh, klar. DIE Links habe ich natürlich verbessert. :D

Wo ist im neuen Wiki die Fileformat-Dokumentation zu finden? Ich habe jetzt erstmal einen allgemeinen Link auf das Forum reingemacht.
Nach langer Zeit gibt es mal wieder einige Neuigkeiten:

Ersetzte Funktionen (Segmente sind komplett identisch)
  • seg072: Scripting der Informanten :jippie:

Ersetzte Funktionen
  • seg025: Location: anzeigen der Schatzkarte
  • seg092: Treasures: test ob ein Held funktionierende Dietriche hat
  • seg094: Laden der Ringe auf der Landkarte / Positionieren der Textfenster

Behobene Bugs (Bright-Eyes)
  • Bei einigen Meldungen konnten Zahlen eingegeben werden (unschön)
  • Der Kampfmodus funktioniert jetzt auch auf BigEndian Maschinen

Was kommt als Nächstes?
  • Check: Skripte zum Vergleichen der Binärdateien (erfordert eigenen Borland C++ 3.1 Compiler)
  • Steigern vervollständigen
  • mehr Dungeon-Handler nachbauen

Statistik:
  • Es sind 794 von 1236 Funktionen sind nachgebaut (64,32%).
  • Davon sind 740 identisch mit dem Originalcode.
  • Nach Byte-Metrik sind schon 75,89% fertig


@Rabenaas: Wie weit bist du denn mit der Mine in Oberorken vorangekommen?
@All: Jetzt gibt es auch noch die Aufgabe das Informantenscripting zu untersuchen und für jeden Informanten einen
Gesprächsgraphen zu erstellen, in welchem drinnsteht unter welchen Bedingungen man welche Gesprächsoptionen hat.


Viele Grüße,
HenneNWH
Leider gibt ein Problem beim Kompilieren. Die Exe wird zwar erstellt, aber es gibt eine Fehlermeldung und das Spiel/DosBox lässt sich nicht starten. (Mit VS 2012 läuft es durch.)
(10.04.2015, 15:06)HenneNWH schrieb: [ -> ]Wie weit bist du denn mit der Mine in Oberorken vorangekommen?

Ich glaube, dass ich die Dungeonmechanismen jetzt im Prinzip verstehe. Ich hatte auch angefangen, Statusmeldungen einzusetzen. Das muss ich aber wohl noch mal neu machen, weil ich jeden Mist ausgegeben habe. Wie ausführlich soll das denn sein, nur ergänzend zum Screen oder auch redundante Infos? :silly:
Ansonsten muss ich noch mit einer Party nach Oo. Dann kann ich Dir die Sourcen schicken.
(11.04.2015, 09:41)Obi-Wahn schrieb: [ -> ]Leider gibt ein Problem beim Kompilieren. Die Exe wird zwar erstellt, aber es gibt eine Fehlermeldung und das Spiel/DosBox lässt sich nicht starten. (Mit VS 2012 läuft es durch.)

Benutzt du MSVC 2008? Bei meinem funktioniert es.
Du kannst ja mal alle Dateien im Ordner "./visualc_2008/Release" löschen und dann neu kompilieren, vielleicht hilft das. :frage:

(11.04.2015, 10:09)Rabenaas schrieb: [ -> ]Ich glaube, dass ich die Dungeonmechanismen jetzt im Prinzip verstehe. Ich hatte auch angefangen, Statusmeldungen einzusetzen. Das muss ich aber wohl noch mal neu machen, weil ich jeden Mist ausgegeben habe. Wie ausführlich soll das denn sein, nur ergänzend zum Screen oder auch redundante Infos? :silly:
Ansonsten muss ich noch mit einer Party nach Oo. Dann kann ich Dir die Sourcen schicken.

Als Ausgabe sollte nur Meldungen über Events erscheinen, welche aus Spielersicht (in Abgrenzung zur Technikersicht)
interessant oder wichtig sind.
Funktioniert jetzt. Das alte Spiel....

Neue Version vom 11.04.2015!