Crystals-DSA-Foren

Normale Version: Reverse Engineering der NLT
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
es war auch dringent nötig, dass sich da was tut (es war ja furchtbar unübersichtlich). Aktuell versuche ich alle Erkenntnisse die ich zu DSA 2 bekomme zu ergänzen und später werde ich auch noch einiges zu DSA 1 ergänzen.

Edit: ich stelle immer wieder fest, das wenn ich schnell arbeite im wiki viele Rechtschreibfehler mache. Also wenn ihr welche findet, dürft ihr sie gerne korregieren ;)
(17.02.2013, 21:00)hjr448 schrieb: [ -> ]Gen ohne DosBox läuft jetzt mit Maus.

Hat sich schon mal jemend genauer mit den Sound-Files auseinandergesetzt?

Jain, die Formate sind ja - im Gegensatz zu anderen Files - wohlbekannt. Für XMI gibt es offenen Code im Exult-Projekt (Nachbau der Ultima-Engine) oder Konverter wie xmi2mid.
Zum Abspielen / Konvertieren von VOC-Dateien gibt es Tools wie Sand am Meer.
Der Quellcode der Audio Interface Library (Vorgängerin des Miles Sound System) ist ebenfalls open source. Allerdings nutzt einem das nicht so viel, wie man denken könnte. Programme, die diese Bibliothek nutzen, können nach Belieben Instrumente umbiegen. Man muss also idR das ganze Programm kennen, um zum selbem Ergebniszu kommen.
Soweit ich weiß, gibt es da aber auch Quasi-Standards. Die SAMPLE.AD und die SAMPLE.MT sind vermutlich bei Sternenschweif für die Instrumentdefinitionen zuständig, und ich meine, dass auch diverse andere Spiele solche Dateien beinhalten. Vielleicht gar Exult?
@Hendrik
wenn du noch ein paar infos zu den genutzten Formaten in DSA 2 für mich hättest, wäre ich froh wenn du die noch im wiki ergänzen könntest, damit würdest du mir einiges an Recherche ersparen (für den Anfang reicht es mir auch wenn überall erstmal 1-2 Sätze stehen, damit ich einen Ansatzpunkt habe)
http://freedsa.schattenkind.net/index.php/STAR.DAT


Es fehlen noch:
3D
ACE
AD
AIF
BOB (dazu habe ich selber Informationen, die ich bei Gelegenheit ergänze)
CYB
DBG
MT
SIN
TAB (visible.tab, keine Ahnung wo die zugehört)
TOP

Edit: aich bei den DAT Dateien sind etliche neue Dabei, wo ich noch nichts mit anfangen kann

P.S. die aktuellste Version meines Tools entpackt auch die Daten von CD, also falls gebraucht werde ich sie gerne mal hochladen, ansonsten gibt es aber auch in den nächsten Tage eine offizielle Version
(18.02.2013, 17:21)tommy schrieb: [ -> ]3D
Das dürften, auch wenn ich vom Dateiformat noch keine Ahnung habe, die 3D Modelle sein.

(18.02.2013, 17:21)tommy schrieb: [ -> ]ACE
Dazu hatte Guido Henkel die Spezifikation ins Forum gepostet.

(18.02.2013, 17:21)tommy schrieb: [ -> ]AIF
Hatte ich das AIF Dateiformat nicht schon ins FreeDSA-Wiki gestellt? Oh... Kompression vom Typ 0x02, die findet sich in den Sourcen zu Henne's nvf2tga in rl.c

(18.02.2013, 17:21)tommy schrieb: [ -> ]AD
MT
Miles Sound System
XMI sind die speziellen MIDI Files. SAMPLE.MT und SAMPLE.AD sind beides Global Timbre Libaries. Konvention war das die alle SAMPLE.* hiessen wobei die Erweiterung angab für welche Hardware. SAMPLE.AD ist für den AdLib-Standard. SAMPLE.MT für den Roland MT-32, wobei SAMPLE.MT aus STAR.DAT dem Anschein nach die Tonebanks von George Alistair Sanger a.k.a. The Fat Man (siehe Sternenschweif Credits) enthält. ADV enthalten die DOS-Binary-Hardware-Trieber.
das ist doch schonmal ein guter Anfang :) Die AIF und ACE Dateien waren bisher wohl nur nicht verlinkt, das werde ich nachher gleich mal zusammen mit den anderen Informationen ergänzen/verlinken.

Dann wäre noch übrig:
CYB
DBG
SIN
VISIBLE.TAB
TOP
diverse DAT Dateien

Edit: wo ich gerade dabei bin, bei den NVF Dateien in Sternenschweif sind die Farbpaletten alle vorhanden, allerdings kann ich mit den ersten beiden bits der 3 Grundfarben (r,g,b) nichts anfangen (es werden 3 6-Bit Farben benutzt). Ich hatte erst auf transparenz getippt, das würde aber meiner ansicht nicht ganz passen...

Edit 2: TOP enthällt die Topics für die Info Dialoge
Nochmal zum Thema Sound:
XMI konnte ich mir inzwischen anhören. D.h. irgenwie lässt es sich schon weiterverarbeiten.

CREATECA.AWS wehrt sich noch. :wall:
Es soll wohl Probleme mit XMI2MIDI und der Wiedergabegeschwindigkeit geben. Mit Winamp kann man es abspielen. Ich weiß aber nicht, ob fehlerfrei.

Mit den DOS-Programmen, die dem Miles Sound System beiliegen, geht das aber ziemlich einfach und sicher auch ziemlich korrekt.
(18.02.2013, 20:54)Rabenaas schrieb: [ -> ]Es soll wohl Probleme mit XMI2MIDI und der Wiedergabegeschwindigkeit geben. Mit Winamp kann man es abspielen. Ich weiß aber nicht, ob fehlerfrei.

Mit den DOS-Programmen, die dem Miles Sound System beiliegen, geht das aber ziemlich einfach und sicher auch ziemlich korrekt.
Das stimmt zwar, nur ist CREATECA.AWS keine XMI-Datei. Es identifiziert sich selbst als "AUDIOS WAVE SLAVE PC". Ich gehe davon aus das diese Datei - die noch einmal unter dem Namen INTRODAT.SND vorhanden ist - der Grund dafür ist warum es in den Credits heißt: mit freundlicher Unterstützung von A.U.D.I.O.S. Da sich noch niemand erfolgreich mit den Daten des Intro-Programms auseinander gesetzt hat weiss auch niemand was diese Datei eigentlich tut.
Gerade ist mir aufgefallen, dass gen.exe bei mir im Original auch keinen Sound hat. Die Musik ist mir nicht nicht wichtig. (In jedem PC-Spiel war schon immer meine erste Tätigkeit, die Musik auszuschalten.) D.h. eigentlich kann ich GEN als fertig betrachten und mich wieder schickm zuwenden. VOC2WAV löst das Problem vorläufig. Besser wäre natürlich ein source code. Aber bis dahin arbeite ich mich erstmal grundsätzlich in z.B. openal ein.
@hjr448
in welcher sprache programmierst du das eigentlich nach? Und wenn Henne mal wieder da ist, müssen wir mal zusehen, das du Zugriff auf das Projekt kriegst und deine Sourcen Hochladen kannst.
Also, hier mal eine kurze Projektbeschreibung meines GEN ohne DosBox:

- Ich arbeite in C/C++. Der Code ist 90% angepasstes "rewrite_g105de". Es muss eine gültige g105de/m302de Installation vorhanden sein.

- Ich arbeite mit Mingw auf einem Microsoft-System, da ich z.Z. kein Linux-System zur Verfügung habe. (Dadurch kann ich nicht beurteilen, in wie viele Fallen für die Plattform-Kompatibilität ich hineingelaufen bin.)

- Grafik (+Maus) ist z.Z. "Irrlicht". Das ist zwar mit Kanonen auf Spatzen geschossen. Aber ich wollte Irrlicht mal kennenlernen. Und für die Umsetzung von schickm wird es vielleicht noch mal nützlich. Die Grafik ist meines Erachtens gut genug separiert, um einen Umstieg auf z.B. auf Ogre noch relativ einfach zu ermöglichen.

- Die Generierung wird aus schickm heraus aufgerufen. D.h. es gibt schon ungefähr 3 Zeilen Programmcode von schickm. Dazu habe ich mich entschieden um z.B. die Popup-Dialoge und die Dekomprimierung nicht zweimal durchgehen zu müssen.

- Der Code ist mir eigentlich noch ein bisschen zu unorganisiert. Z.B. gibt es zu viele globale Variablen, was die saubere Trennung von Code-Teilen schwierig macht.

- Andere ToDos die ich noch nicht für dringend gehalten habe: Die Grafik ist fix 960x600 software-rendered. Da sollte es ein Konfigurationsmenü für die Auflösung und z.B. OpenGL geben. Der Algorithmus zur Vergrößerung der Grafiken sollte noch mal auf eine vernünftige Basis gestellt werden (z.B. hq3x). (Und außerdem habe ich schon ungefähr 1000 Ideen zur Änderung des Originals.)

Zum Hochladen: Möglicherweise wäre es sinnvoller ein neues Git-Projekt dafür anzulegen, um Konflikte mit Bright Eyes auszuschließen? Durch die andere Grafik- und Mausumsetzung habe ich eigentlich jede Funktion aus Bright Eyes zumindest minimal angepasst. D.h. eigentlich ist alles inkompatibel. (Mein Arbeitsname ist Shallow Eyes weil ich nicht so „bright“ wie Henne bin und nicht die gleiche tiefe Programmierkenntnis habe.)
Sehr schön, damit haben wir einen Entwickler der auf Windows setzt. :) Du benutzt Mingw? Kannst du mir eine kleine Anleitung geben, wie man BrightEyes bzw. DosBox dazu überredet richtig zu kompilieren? Henne und ich haben bisher nur Kleinweich Visual Studio Express C++ verwendet.
Mit git und vor allem GitHub kann man ja verschiedene Repositorys anlegen und Änderungsvorschläge bei anderen Projekten/Repos einreichen. Ich denke, das wäre für dich der richtige Weg. Vielleicht kannst du ja auch einen Fork von BrightEyes anlegen und deine Änderungen dann wieder zurückreichen...
(a) Zur Kompilierung von DosBox/BrightEyes mit Mingw ist es das einfachste, so zu tun als arbeitete man in Linux. D.h. neben den normalen Bibliotheken kann man auch MSys (Minimal System) und „Auto-Irgendwas“ installieren. Dann kann man MSys starten und man fühlt sich (fast) wie in Linux: ./autogen.sh etc. (Ich bin gerade nicht sicher, ob die „Auto-Irgendetwasse“ schon bei MSys dabei waren.)

(b) In der IDE von Mingw habe ich etwas Zeit gebraucht, um es zum Laufen zu bringen. Ich hoffe ich erinnere alle kritischen Punkte: Zuerst einmal müssen natürlich alle Includes und Bibliotheken gefunden werden. Dann war es wichtig, die Fehlermeldungen (-W) herabzusetzen. Man muss einige Source-Dateien aus dem Projekt ausschließen), da sonst erfolglos versucht wird, unnötiges zu kompilieren (bei mir z.B. src/platform/visualc/*, zmbv.*, keine Ahnung was da noch war. Dann war die Reihenfolge der Bibliotheken-Aufrufe (-l) wichtig. Das kann man aus dem MakeFile abschreiben. Letztes Problem, welches ich im Moment erinnere, ist die config.h. Diese existiert ja am Anfang noch nicht. Also irgendwoher besorgen (z.B. (a) s.o.) und gegebenenfalls auf das System manuell anpassen.

Bei der Größe des Projekts würde ich immer (a) empfehlen.

GEN ohne DosBox auf git wird noch mindestens über das nächste Wochenende dauern. Anregungen Meinungen dazu sind natürlich Willkommen :)
Ich nehme an, mit Auto-irgendwas meinst Du die autotools, also insb. autoconf und automake. Die generieren abhängig vom System die Makefiles, ermöglichen also den unter Unixoiden üblichen Buildprozess mit den Schritten
Code:
./configure
make
make install

(Das letzte mal, als ich was mit Mingw zu tun hatte, und das ist schon einige Jahre her, musste man bei der Installation Pakete wie die Autotools per Häkchen anwählen.)

EDIT: Ach ja, "./configure" generiert die config.h für das jeweilige System.
Hmm, da hatte ich das irgendwie komplizierter in Erinnerung. Das ist ja wirklich wie mit Linux... gut so! :D
Muss ich SDL wirklich selbst kompilieren? Der Prozess hängt irgendwie, allerdings ohne Fehlermeldung....
Nein, Du brauchst nur die Development Libraries für MingW. http://www.libsdl.org/download-1.2.php
(18.02.2013, 17:21)tommy schrieb: [ -> ]@Hendrik
wenn du noch ein paar infos zu den genutzten Formaten in DSA 2 für mich hättest, wäre ich froh wenn du die noch im wiki ergänzen könntest, damit würdest du mir einiges an Recherche ersparen (für den Anfang reicht es mir auch wenn überall erstmal 1-2 Sätze stehen, damit ich einen Ansatzpunkt habe)
http://freedsa.schattenkind.net/index.php/STAR.DAT


Es fehlen noch:
3D
ACE
AD
AIF
BOB (dazu habe ich selber Informationen, die ich bei Gelegenheit ergänze)
CYB
DBG
MT
SIN
TAB (visible.tab, keine Ahnung wo die zugehört)
TOP

Edit: aich bei den DAT Dateien sind etliche neue Dabei, wo ich noch nichts mit anfangen kann

P.S. die aktuellste Version meines Tools entpackt auch die Daten von CD, also falls gebraucht werde ich sie gerne mal hochladen, ansonsten gibt es aber auch in den nächsten Tage eine offizielle Version

Zu ACE und BOB kann ich sicher noch etwas beitragen, mal schauen, ob ich jetzt am WE dazu komme.
An den 3D-Dateien habe ich zwar schon ein wenig experimentiert, bin aber noch nicht wirklich weit gekommen.