Crystals-DSA-Foren

Normale Version: Reverse Engineering der NLT
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Bright-Eyes Update:

Dieses Mal gibt es viele ersetzte Programmteile (23 Funktionen):
  • Dungeons: Bewegung, Zeichnen der Wände, Tür öffnen, Beleuchtung, Fallgruben, Auf- und Abstieg, Betreten der Dungeons
  • Gruppenmanagement: Gruppe wechseln, 2 Helden vertauschen (STRG+O)
  • Sonstiges: Dungeoneingang (mit Frage)

Außderdem werden ich, wenn Obi einen Build zum Download bereitstellt, diesen als Release taggen.
Das vereinfacht eine mögliche Fehlersuche.

Viel Spass,
Henne
War es doch richtig, dass ich gestern noch gewartet habe. ;) Soll ich den Release noch irgendwie extra benennen?

Neue Version vom 11.05.2014!
Danke!

Für die Kennzeichnung der Releases ist das Datum vorerst völlig ausreichend.
Über Versionsnummern habe ich auch schon etwas nachgedacht,
aber da ich im Moment eher selten an vollständigen Features arbeite, halte ich es noch nicht für angebracht.

Alles Bestens,
Henne
Hallo,

mal eine Frage:

ich vermute, dass die HOUSE1-4.NVF die Texturen für die Stadt enthält. Da diese Dateien keine Palette enthalten, kann ich die Dateien mit any2any nicht konvertieren.

Wie bekomme ich aus diesen Dateien am liebsten Einzelbilder heraus? Das Umwandeln mit any2any der Höhlendungeons gibt zwar Einzelbilder, in GIMP stimmt die Palette ab nicht.

Update:
Okay, ich habe den DSA Viewer gefunden. :)
Tach,

ich habe ein wenig im Wiki gestöbert und festgestellt, dass zu den 3D-Daten von Schweif und Riva eher weniger Informationen vorhanden sind. Woran liegt das?
Hallo Wetzer,

das liegt daran, dass sich noch niemand von uns intensiv damit auseinander gesetzt hat.
Wieso? Hast Du interesse?

Ansonsten:
Neues bei Bright-Eyes:

Mit 46,22% an ersetzten Funktionen geht es straff auf die 50% Marke zu.
Dieses Mal habe ich einen Grossteil der bisher ersetzten Kampffunktionen auf ihre Richtigkeit hin kontrollieren können.
Es sind noch 4 Stück übrig, danach müssen noch 32 Kampffunktionen nachprogrammiert werden
und das Kampfsystem ist vollständig und original. :D

Danach werde ich weiter an den Zaubersprüchen arbeiten um die 50%-Marke zu knacken.
Wenn diese erreicht ist wird es vermutlich Zeit Versionsnummern einzuführen. :D

Bugfix
  • Gegner greifen andere Gegner an: falsche Interpretation des "Böser Blick" flags

Ersetzte Funktionen
  • Gruppenmanagement: Heldenposition ändern, Schlafen
  • Alchemie: Probenfunktion und Zutatenverwaltung
  • Stadt: Laden und zeichnen der Texturen
  • Kampf: Zeichnen des Bilschirms (da bin ich sehr stolz drauf!)
  • Kampf-KI: Held Waffe wechseln, Gegner Anngriffsmodus wählen
(18.05.2014, 18:52)HenneNWH schrieb: [ -> ]Wieso? Hast Du interesse?

Interesse am Aufbau der Daten, ja. Ich weiß nur nicht, wie das herauszufinden soll. Ich denke, aus Reengineeringsicht kommt man da eher ran.
Neue Version vom 19.05.2014!

@Henne: Was meinst du mit "Kampf: Zeichnen des Bilschirms"? Also die Darstellung/Zeichnung der Grafik während des Kampfes wird jetzt komplett von BrightEyes übernommen?
(19.05.2014, 18:28)Obi-Wahn schrieb: [ -> ]@Henne: Was meinst du mit "Kampf: Zeichnen des Bilschirms"? Also die Darstellung/Zeichnung der Grafik während des Kampfes wird jetzt komplett von BrightEyes übernommen?

Genau so ist es. :D

Diese Funktion ist so unglaublich lang und verzweigt, dass ich mich ständig davor gedrückt habe sie zu bearbeiten.
Dann ist sie mit der Zeit zu einem Blocker geworden, da viele andere Funktionen sie aufrufen und
ein Kampf ja schließlich an vielen (interessanten) Stellen im Spiel auftritt.

Du kannst ja mal zum Spaß den Verzögerungsfaktor auf 0 setzen und einen Computerkampf laufen lassen.
(19.05.2014, 15:36)Wetzer schrieb: [ -> ]Interesse am Aufbau der Daten, ja. Ich weiß nur nicht, wie das herauszufinden soll. Ich denke, aus Reengineeringsicht kommt man da eher ran.

Dazu kann ich leider im Moment nur sehr wenig sagen.

Ich habe mir die Dateien mal kurz angesehen:

für SCHWEIF: *.3D: viele Binardateien, häufig mit unterschiedlicher Größe

für RIVA: *.3DM (aus der DUNGEON.ALF)

Hier ist es so, dass diese Dateien nochmal mit einem Komperessionsalgorithmus gepackt wurden.
Als Kennung am Anfang der Datei steht "BoPa".

Helios hat einen Entpacker in Beitrag #1281 gepostet.
Er funktioniert auch. Der Pfadname darf nur keine Kleinbuchstaben enthalten.
Dort kommt je nach Dateityp manchmal sogar Klartext raus.
Mit diesem kann ich allerdings nur wenig Anfangen, da ich mich mit 3D-Modellen
noch nicht beschäftigt habe.

Was für die Moddern hier noch fehlen dürfte ist ein "BoPa"-Packer,
wenn RIVA keine entpackten Dateien akzeptiert.
Hallo allerseits,

ich habe mir das 3DM-Format bereits mal angesehen und schon ein paar kleine Infos bezgl. des Headers daraus gewonnen. Bin auch dran, mehr vom Rest zu entschlüsseln, was aber nicht ganz so einfach ist. Hauptsächlich bin ich mir noch nicht sicher, ob hier schon in klassischen floats gespeichert wird oder noch irgendwelche int-basierten Tricks laufen.

Hätte auch schon Text für zwei Wiki-Seiten (DUNGEON.ALF und 3DM) und würde diesen gerne eintragen. An wen muss ich mich wenden?

Viele Grüße,
Shihan
(20.05.2014, 08:59)Shihan schrieb: [ -> ]Hallo allerseits,

ich habe mir das 3DM-Format bereits mal angesehen und schon ein paar kleine Infos bezgl. des Headers daraus gewonnen. Bin auch dran, mehr vom Rest zu entschlüsseln, was aber nicht ganz so einfach ist. Hauptsächlich bin ich mir noch nicht sicher, ob hier schon in klassischen floats gespeichert wird oder noch irgendwelche int-basierten Tricks laufen.

Hätte auch schon Text für zwei Wiki-Seiten (DUNGEON.ALF und 3DM) und würde diesen gerne eintragen. An wen muss ich mich wenden?

Viele Grüße,
Shihan

Gut, Shihan. Für die Betreuung des Wikis ist Obi-Wahn zuständig.
(20.05.2014, 07:23)HenneNWH schrieb: [ -> ]Dazu kann ich leider im Moment nur sehr wenig sagen.

Ich habe mir die Dateien mal kurz angesehen:

für SCHWEIF: *.3D: viele Binardateien, häufig mit unterschiedlicher Größe

für RIVA: *.3DM (aus der DUNGEON.ALF)

Hier ist es so, dass diese Dateien nochmal mit einem Komperessionsalgorithmus gepackt wurden.
Als Kennung am Anfang der Datei steht "BoPa".

Helios hat einen Entpacker in Beitrag #1281 gepostet.
Er funktioniert auch. Der Pfadname darf nur keine Kleinbuchstaben enthalten.
Dort kommt je nach Dateityp manchmal sogar Klartext raus.
Mit diesem kann ich allerdings nur wenig Anfangen, da ich mich mit 3D-Modellen
noch nicht beschäftigt habe.

Was für die Moddern hier noch fehlen dürfte ist ein "BoPa"-Packer,
wenn RIVA keine entpackten Dateien akzeptiert.

Wow, super! Ist das schon Bestandteil der nltpack.exe oder eines anderen Tools?
(20.05.2014, 12:29)Hendrik schrieb: [ -> ]Gut, Shihan. Für die Betreuung des Wikis ist Obi-Wahn zuständig.
Danke, er bekommt direkt eine PN :)

(20.05.2014, 12:48)Wetzer schrieb: [ -> ]Wow, super! Ist das schon Bestandteil der nltpack.exe oder eines anderen Tools?
Helios hat den Code als Ruby-Programm geschrieben. Ich bin gerade dabei, eine C++-Library zu schreiben (bzw. aus nltpack abzuleiten), die sämtliche Formate, die bekannt sind, entpacken und konvertieren kann. Beim BoPa gibt es noch einen kleinen Bug, aber das kommt noch.
Alternativ kannst Du die Dateien auch während des laufenden Programms aus dem Ordner CTEMP abgreifen, dorthin entpackt Riva sie, bevor sie geladen werden.
(20.05.2014, 14:02)Shihan schrieb: [ -> ]Ich bin gerade dabei, eine C++-Library zu schreiben (bzw. aus nltpack abzuleiten), die sämtliche Formate, die bekannt sind, entpacken und konvertieren kann.

Oh mann, das ist genau das, was ich brauche! :thx:

Ich fuchse mich gerade nach sehr langer Programmierabstinenz in c++ wieder rein und komme von einem "losen Ende" zum nächsten. ;)

Ich freu mich total auf die Library! :jippie:
Wird aber noch ein wenig dauern, denke ich ;)

Rechne damit nicht in den nächsten 10-15 Tagen.
Es freut mich dass mein kleines BoPa Skript einigen weiter geholfen hat :)
Primär ging es mir auch darum es überhaupt konvertieren zu können. Natürlich wäre eine Einbindung in any2any oder einem anderen Tool besser. Nur leider fehlt mir die Zeit das umzusetzen. Meine spärliche Freizeit widme ich derzeit meinem Hauptprojekt FIFE.

@HenneNWH
Um die NLT etwas Modding freundlicher zu machen wäre es toll, wenn man verschiedenste Dinge die sich direkt in den Executables befinden auslagern würde. Ist natürlich zusätzliche Arbeit aber würde sich lohnen.
An erster Stelle wären da wohl die Waffen- und andere Itemtabellen zu nennen. Man sieht an diesem Beitrag schön zu was für Problemen es führen kann wenn sich so grundlegende Dinge nicht in extra Dateien befinden.

Oder in Schweif die unschönen Dinge mit den Stadtkarten. Die Grafiken kann man verändern aber die "Event" Felder bleiben immer gleich. Es gibt aber Dateien mit den passenden Werten die aber nicht vom Spiel benutzt werden.

Also in den meisten Fällen würde es reichen wenn vorhandene Dateiformate erweitert werden. Wie bei der Waffentabelle. Für einiges wären aber auch neue Dateien notwendig, es ist z.B. unmöglich neue Ortschaften oder Dungeons anzulegen, neue Straßen gehen aber.
So, habe mal ein paar Infos ins Wiki eingetragen und zur Übersicht eine Kategorie "Schatten über Riva" erstellt (ich hoffe, da hat keiner was gegen).

Was BoPa angeht: Ein Packer sollte machbar sein, wenn man die Steuersequenzen für "Direct-Copy" verwendet und somit gar nicht wirklich packt. Ob Riva das auch dann schluckt, muss man sehen.

Werde mich ab Mitte nächster Woche nochmal daran setzen können.
Tach,

kennt ihr das hier schon?

http://home.yole.ru/projects/gamehack/?setlang=en

(Ark3Unp.zip)
Ja, aber der Entpacker macht nicht mehr als der nltpack, außer die Modulzuordnung zu vergessen ;)