Themabewertung:
  • 5 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Reverse Engineering der NLT
#21
Muss es nicht NLT sein und nicht NLT?
#22
SiENcE schrieb:Ja wie gesagt, bei der Grafik sollten wir erstmal das gegebene nehmen. Gibt es schon programme um die Grafiken in ein richtiges Bildformat zu konvertieren?
Später kann man die Texturen und Bilder ja austauschen gegen highres bilder.
Das werd ich dann mal versuchen, das kann bei Schick z.B. nicht allzu schwer sein.


Zitat:Falls wir es schaffen die 3d Modelle der Städte von Schick zu decodieren, brauchen wir auch nix neues erstllen. Wir laden das einfach und stellen es dar. Wie gesagt wrapper.
Falls du damit die STADT.DAT Dateien meinst: Die sind extrem simpel und soweit ich weiss schon komplett dokumentiert.

Zitat:@Shazu: den codetrigger zu lua sollte man nicht ins xml reincodieren. Das sollte man in der lua datei machen, da man so sogar mehrere trigger oder auch ausnahmen usw. darauf anwenden könnte ohne das man vorhersehen muss was der anwender eigentlich will (bissl lua muss er dann aber schon verstehen).
War ja nur ein Beispiel...und da hab ich einfach das genommen was mir so als erstes eingefallen ist und das waren die XML Dateien von WoW Addons - und da ist das auch so gelöst - okay der Lua Code an sich steckt zwar meistens in einer .lua Datei und der Code in der .xml besteht nur aus einem Funktionsaufruf. Prinzipiell widerspricht das zwar der Trennung von Code und Daten, aber wirklich schlimm oder störend fand ich das nicht wirklich.

Zitat:Naja wie auch immer. Erstmal anfangen.
Jo!

Zitat:Ich werd morgen mal den Namen "freedsa" bei SF registrieren (einwände oder vorschläge bis dahin noch an mich (eventl. einen namen ohne free oder open aber mit dsa) ;-).
Klingt gut :)


P.S.: Ich bin ab morgen für eine Woche in Griechenland, da bin ich ja schon mal gespannt was es danach zu sehen gibt! :)
There are only 10 types of people in the world. Those who understand binary and those who don't.
#23
@shazu

bist du Feuerwehrmann oder einfach feuerfest? ;-)


Also ich hatte ja, änlich wie Fury, am Anfang das blanke entsetzen in den Augen.
Meine Frage ist, ob man auch als DAU nachher in der Lage sein wird, etwas zu dem Projekt beizutragen. Wieviel Zeit erfordert ungefähr das "reinfuchsen"? Macht man vielleicht eher alles schlimmer als Prog-nuup?
#24
Tubrin schrieb:@shazu

bist du Feuerwehrmann oder einfach feuerfest? ;-)
Da brennt es zum Glück (noch) nicht :)

Zitat:Also ich hatte ja, änlich wie Fury, am Anfang das blanke entsetzen in den Augen.
Keine Sorge, das geht wohl jedem so...ich hätte auch nix von dem verstanden, wenn ich mich nicht schon einmal vorher mit 3D Engines beschäftigt hätte :(


Zitat:Meine Frage ist, ob man auch als DAU nachher in der Lage sein wird, etwas zu dem Projekt beizutragen. Wieviel Zeit erfordert ungefähr das "reinfuchsen"? Macht man vielleicht eher alles schlimmer als Prog-nuup?
Das lässt sich wohl erst sagen, wenn irgendwas mehr oder weniger steht. Aber z.B. irgendwelche Daten zu dokumentieren kann eigentlich jeder, das ist im Prinzip ja nur "was passiert, wenn ich hier aus der 1 eine 0 mache?"...hat irgendwie was von Rätselraten oder so :P
There are only 10 types of people in the world. Those who understand binary and those who don't.
#25
Das mit der Docu zu Stadt.dat hört sich gut an. Weisst du wo ich da was finde? (google findet nix).

@Tubrin: Arbeit wird genug kommen :-). Auch ohne Programmierung. Dokumentation, Website und natürlich Grafiken erstellen. Zum Beispiel ein passendes Logo zum Start (zb wie diese oben links: http://iris2.de/ , http://lugre.schattenkind.net , http://sfz.schattenkind.net ).

So.

Ich habe auf unserem OpenSource Schattenkind Server einen Auftrag losgetreten :-).
Auf Sourceforge hätten wir auch gehen können, jedoch habe ich hier mehr Kontrolle drüber. Weiterhin sind mittlerweile schon einige Open Source Game Projekte auf Schattenkind gehostet.

Wir erhalten für unser FreeDSA Projekt auf Schattenkind ( http://www.schattenkind.net/index.xml ):

Website:
http://freedsa.schattenkind.net

- ein MediaWiki (zur Dokumentation der Entwicklung)
- ein SVN repository for den SourceCode und Grafiken etc.
- TRAC (ein Webtool zum Verwalten von Bugreports und ansehen aller Dateien des SVN im Webbrowser)
(hier zum beispiel von Iris2 : http://zwischenwelt.org/trac/iris/ )

Schreibenden SVN Zugriff erhalten erstmal nur shazu (kontaktier mich bitte via icq) und ich (is ja noch nix drin).
#26
Ich hab mal mit der Spezifikation angefangen. Hier im Wiki anmelden und dann alles auf dieser Seite eintragen was nützlich für die FreeDSA entwicklung sein könnte.

http://freedsa.schattenkind.net/index.ph...ifications
#27
Ich wäre als Name eigentlich mehr für OpenNLT Oder FreeNLT, denn es soll ja ein NLT-Remake werden und kein wirklich eigenes DSA-Spiel. Keine Ahnung, ob man das jetzt noch ändern kann. ;)
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)
#28
Naja...im grunde is der Name erstmal egal. FreeDSA sagt ja nix aus über DSA1,2 oder 3. Das wichtigste ist jetzt erstmal anzufangen und da wartet viel Arbeit. Fileformat doku und nen loader oder Bildbetrachter für die Grafiken ist jetzt nötig.

Gibts da viel. schon was?
#29
Gibt es eigentlich die Möglichkeit die Karten aus DSA2 oder DSA3 auszulesen? Eigentlich sind das ja ganze Bilder, ... man müsste nur wissen wie und wo sie gespeichert sind. Oder? ;)
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)
#30
Ja. Ich tue mich auch schwer mit den Grafiken aus dsa1. Das sind 8bit Grafiken und das müsste man noch in die heutzutage truecolor bilder konvertieren.

Naja ich mach erstmal die anderen loader. tlk steht jetzt an.
#31
Hi

ich finde das projekt super das is da anpackt, und werde es auf jeden fall verfolgen.
am meisten bin ich an programmen interresiert die dsa grafiken extrahieren interresiert.
da ich von programmieren keine ahnung habe, und mit hexen auch nur durchschnittlich erfolgreich bin,
kann ich da nicht viel beitragen.
werd aber trotzdem mal guggen ob sich da infos abrigen lassen am meisten interresiert mich dsa3
also zu dem game wo noch am wenigsten bekannt ist soweit ich weiß
vieleicht kannst mir mal ein paar tips geben oder ein tut wo man nachlesen kann wie man solche dinge am
besten anpackt würd da gern nen versuch wagen.

bin erst seit ein paar tagen hier gelandet war echt ein glückstreffer dass ich hier her kam
na denn werd ich mal guggen ob ich glück hab
#32
Also im wiki werde ich alles hineinschreiben was ich finde und herausfinde.

Also immermal reingucken unter "recent changes": http://freedsa.schattenkind.net/index.ph...entchanges
#33
Es tut sich ja in Sachen Dokumentation doch einiges. :) Ich warte sehnsüchtig auf neue Meldungen. ;)
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)
#34
Ich habe mal im Xentax Forum (für fileformate) nachgefragt ob Sie uns helfen. Die Grafikdateien scheinen gepackt zu sein. Momentan beschäftigen mich die TLK und TAB dateien.

Könnt mir jemand sagen, wie der header der TLKs strukturiert ist?

Bei den TABs hab ich schon ein Muster entdeckt: http://freedsa.schattenkind.net/index.php/TAB
#35
SiENcE schrieb:Ich habe mal im Xentax Forum (für fileformate) nachgefragt ob Sie uns helfen. Die Grafikdateien scheinen gepackt zu sein. Momentan beschäftigen mich die TLK und TAB dateien.
Ich glaube nicht das die Grafiken generell gepackt sind, es gibt zwar Dateien die mit dem Amiga PowerPacker kompimiert sind doch das ist nicht die Regel (siehe auch DSAGEN.DAT Dokumentation. Es gibt ein Containerformat für mehrere Grafiken, das NVF Format: Ich bin in der Lage die FONT.NVF aus den Hauptverzeichnis von Die Schicksalsklinge zu lesen (komischerweise wird diese Datei vom Spiel nicht benutzt da sie die kleinen Buchstaben enthält). Dies ist die Einfachste NVF Datei die in der gesamten Nordlandtrilogie enthalten ist (nur zwei "Farbwerte" 00 = transparenz, 01 = sichtbar). Die Datei beginnt anscheinend mit 2 Bytes mit dem Offset zum Pixeldata (Achtung: diese 2 Bytes sind in Big Endian Byteorder gespreichert: hex 0151 ist z.B. dec 340 und nicht 21505!), danach folgen 84 4 bytes (2 Bytes Breite, und 2 Bytes Höhe, wieder Big Endian Byteorder). Dies gilt leider bisher nur für diese eine Datei, wie z. B. die Palette von farbigen Grafiken gespeichert wird, oder woran man erkennt wieviele Grafiken die Datei enthält ist mir noch nicht ganz klar. z.B IN_HEADS.NVF ist nicht im NVF Format sonderen nur Pixeldata (8 bpp).

SiENcE schrieb:Könnt mir jemand sagen, wie der header der TLKs strukturiert ist?
Ich bin mir noch nicht prozentig sicher ob es so ist (hatte noch nicht die Zeit es genaugenug zu testen) und auch unvollständig aber:
Der Header ist sechs Bytes groß: Die ersten vier Bytes Datei enthalten den Offset des C-String Text Block, (der Offset muss allerdings +6 (größe des Headers selbst) gerechnet werden. Die restlichen 2 bytes des Headers ist die Anzahl der Gesprächspartner, danach folgen idenifikatoren der einzelnen Gesprächspartener (jeweils 38 Bytes, name, Bild in IN_HEADS.NVF, welche Bytes von den 38 was beschreibt finde ich auf die schnelle gerade nicht). Danach kommen die auch schon von TeraBlight beschiebenen 8 Byte Blöcke der Dialogstruktur (Antworten/Goto/usw. mir ist nicht klar wie diese Einträge den Gesprächspartnern zugeordnet werden) die Anzahl der Einträge dieser Art erreche ich anhand des Offsets der C-Strings.
#36
Ok. Ich werde warscheinlich heute oder morgen mal meine erste Struktur der loader (geschrieben in LUA) in das SVN stellen. Das kann jeder dann auschecken. Committen kann erstmal nur ich. Wenn Du was hast kann ich dir Zugriff geben. Der code basiert dann auf den luas vom dung. editor von shazu. hab nur ein bisschen separiert, gekapselt und ergänzt.
#37
So, ich bin auch wieder aus Griechenland zurück :)

Die Stadt-Layout Dokumentation findet sich teilweise in diesem Thread auf larian.com von TeraBlight. Leider ist dieser Thread extrem unübersichtlich, ich such mal die wichtigsten Posts von TeraBlight raus:

(die Suchfunktion in dem Forum suckt, deshalb fehlen vermutlich einige Posts)

Stadt.dat:
Zitat:Also, jetzt bin ich die Moeglichkeiten fuer Byte 3 durchgegangen:

00 - nix
01 - crash
02 - Tempel
03 - Taverne
04 - Heiler
05 - Laden
06 - Wildnislager (!!?)
07 - Herberge
08 - Schmied
09 - Markt
0A - normales Haus
0B - Hafen
0C - Reisen
0D - Quest Person
0E - Eingang zu Dungeon (Byte 4 bestimmt welches. Ich hab aus Versehen eine Hintertuer ins Totenschiff geschaffen...)
0F - crash

Zitat:Okay, die Struktur des 6-Byte-Blocks fuer die Gebaeude ist mir jetzt klar, naemlich

zz ss tt i1 i2 00

zz, ss = Zeile und Spalte, Koordinaten des Gebaeudes auf der Karte.
tt = Gebaudetyp (02=Tempel, 03=Taverne, etc)
i1 = Index 1. Dieser Index ist fortlaufend fuer alle Gebaeude eines jeweiligen Typs im gesamtem Spiel. Ich nehme an dass es irgendwo eine Liste gibt, in der anhand dieser Zahl z.B. fuer alle 87 Tavernen beschrieben steht, welche Oeffnungszeiten sie haben und was das Essen kostet.
i2 = Index 2. Dieser Index ist forlaufend fuer alle Gebaeude aller Typen fuer je eine bestimmte Stadt, und wird scheinbar nur verwendet um den Namen des Gebaeudes (z.B. "Vier Winde") aufzuschluesseln.


Dialoge
Zitat:Heyho, jetzt hab' ich mir erstmal die Dialoge vorgenommen, und deren Struktur ist auch relativ gut zu erkennen.

Beispiel - Yasma T.

Die Information hier besteht aus zwei Teilen, wobei der erste die Abfolge kontrolliert und der zweite den Inhalt wiedergibt. Der erste Teil sieht so aus:


Code:
00237f71h: 00 80 00 00 00 01 02 00 0C 00 00 00 00 FF 00 00 ; .€...........í¿..
00237f81h: 01 00 02 03 00 03 03 00 04 00 05 06 00 07 04 00 ; ................
00237f91h: 07 00 00 00 00 05 00 00 08 00 09 0A 00 FF 06 00 ; .............í¿..
00237fa1h: 0B 00 05 00 00 07 00 00 0D 00 0E 0F 00 08 09 00 ; ................
00237fb1h: 10 00 00 00 00 0A 00 00 11 00 00 00 00 0A 00 00 ; ................
00237fc1h: 12 00 00 00 00 0B 00 00 13 00 00 00 00 0C 00 00 ; ................
00237fd1h: 14 00 00 00 00 0D 00 00 15 00 00 00 00 0E 00 00 ; ................
00237fe1h: 16 00 00 00 00 0F 00 00 17 80 00 00 00 10 00 00 ; .........€......
00237ff1h: 18 00 19 1A 00 11 12 00 1B 00 00 00 00 13 00 00 ; ................
00238001h: 1C 00 00 00 00 13 00 00 1D 00 1E 1F 00 14 14 00 ; ................
00238011h: 20 00 00 00 00 15 00 00 21 00 00 00 00 16 00 00 ; .......!.......
00238021h: 22 80 23 24 00 17 18 00 25 00 00 00 00 FF 00 00 ; "€#$....%....í¿..
00238031h: 26 00 00 00 00 FF 00 00 ; &....í¿..




Die Blocklaenge hier betraegt 8 Bytes. Formatiert und numeriert, um es uebersichtlicher zu machen:


Code:
00 - 00 80 00 00 00 01 02 00
01 - 0C 00 00 00 00 FF 00 00
02 - 01 00 02 03 00 03 03 00
03 - 04 00 05 06 00 07 04 00
04 - 07 00 00 00 00 05 00 00
05 - 08 00 09 0A 00 FF 06 00
06 - 0B 00 05 00 00 07 00 00
07 - 0D 00 0E 0F 00 08 09 00
08 - 10 00 00 00 00 0A 00 00
09 - 11 00 00 00 00 0A 00 00
0A - 12 00 00 00 00 0B 00 00
0B - 13 00 00 00 00 0C 00 00
0C - 14 00 00 00 00 0D 00 00
0D - 15 00 00 00 00 0E 00 00
0E - 16 00 00 00 00 0F 00 00
0F - 17 80 00 00 00 10 00 00
10 - 18 00 19 1A 00 11 12 00
11 - 1B 00 00 00 00 13 00 00
12 - 1C 00 00 00 00 13 00 00
13 - 1D 00 1E 1F 00 14 14 00
14 - 20 00 00 00 00 15 00 00
15 - 21 00 00 00 00 16 00 00
16 - 22 80 23 24 00 17 18 00
17 - 25 00 00 00 00 FF 00 00
18 - 26 00 00 00 00 FF 00 00



Schema: tt ?? a1 a2 a3 g1 g2 g3

tt = Haupttext
?? = Weiss ich noch nicht genau
a1 etc = Antwortoption Nummer 1 etc
g1 etc = Link zu naechster Kontrollzeile

Also, z.B. Zeile 10 sagt "Blende Text 18 als Haupttext ein, mit Texten 19 und 1A als Antwortoptionen. Wenn 19 ausgewaehlt wird, gehe zu Zeile 11, wenn 1A, Zeile 12".

Der Textblock besteht einfach aus beliebig langen Passagen, getrennt durch 00 Bytes.
There are only 10 types of people in the world. Those who understand binary and those who don't.
#38
Wie angekuendigt stelle ich demnaechst meine Erkenntnisse und Skripte aus der Larian-Zeit auch noch ausfuehrlich in einem Archiv-Thread hier zusammen. Ich weiss noch nicht genau, wann ich dazu komme - hoffentlich dieses Wochenende. :)
#39
Hi Tera.

Ich hatte schonmal gefragt, ob Du diese Infos nicht gleich ins FreeDSA wiki schreiben kannst. Ich finde ein Wiki besser für solche infos, da man auch später noch mit anderen auch Änderungen vornehmen kann. Es ist nicht so starr wie ein Forumeintrag. Falls Du keine Lust dazu hast, könnt ich das machen.

vg
#40
Sicher habe ich Lust, die Frage ist wie gesagt wann ich dazu komme. Der Hauptteil der Arbeit wird ja das Herausdestillieren der nuetzlichen Infos aus dem Larian-thread sein, sobald die Sachen erstmal im reinen sind, ist das Uebernehmen von einem Format in ein anderes keine grosse Huerde mehr.




Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste