Themabewertung:
  • 5 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Reverse Engineering der NLT
(15.11.2016, 19:50)Shihan schrieb: Habe fast alles aus dem 3D-Format von Riva kapiert...

Wow! Das ist ja großartig! Hast du neue Screenshots? Ist immer interessant zu sehen, was schon möglich ist. :)

PS: Kann ich deine Erkenntnisse in der Wiki (http://bright-eyes.obiwahn.de/index.php/3DM) nachlesen? Dein letzter Eintrag war ja von 2015.

PPS: Kannst du bitte den Eintrag "short Meistens 0x0000, aber manchmal 0x1000 (nur bei sichtbaren Objekten) " für 0x1000 mal in einem Screenshot zeigen, für welches Material das zutrifft?
Vielen Dank an dieser Stelle an unsere begeisterten Tüftler, die sich gemeldet haben, um zu zeigern, dass sie noch da sind. :) Ich denke, so wie uxl denken hier einige, die den RE-Thread verfolgen und auch wenn mal Flaute herrscht, so ist ab und an mal ein Lebenszeichen sicher nichts Schlechtes.
Privat- und Berufsleben genießt natürlich weiterhin höchste Priorität, dafür muss sich niemand entschuldigen.
Zum NLT-Wiki: http://nlt-wiki.crystals-dsa-foren.de/doku.php , Zum Drakensang-Wiki: http://drakensang-wiki.crystals-dsa-foren.de/doku.php
KEIN SUPPORT per E-Mail, PN, IRC, ICQ! Lest die Regeln und benutzt das Forum für sämtliche Anfragen! KEINE persönliche Betreuung!
(15.11.2016, 19:50)Shihan schrieb: Allerdings bin ich seit einem halben Jahr selbstständiger Software-Entwickler und habe somit kaum noch Zeit, hier weiter zumachen. Wird aber auch besser, sobald ich mehr drin bin. Bisher nehme ich noch jedes Projekt an, was vielleicht erklärt, warum die Freizeit so schnell verschwindet.

Na dann wünsche ich viel Erfolg und günstige Winde. :up:
@Rabenaas: Danke :)

@Wetzer: Die Infos sind tatsächlich der letzte Stand. Aber ich hab noch ein paar Versuche, mit denen ich noch ein wenig weiter bin. Vielleicht finde ich die Zeit, das mal zu präsentieren. Sind aber nur wirklich kleine Kleinigkeiten. Was mir noch teilweise fehlt, sind Texturen. Ich weiß jetzt, welche an welchen Flächen kleben, aber UV-Koordinaten o.ä. sind noch nicht klar. Wenn's die überhaupt gibt...

Was den Hex-Wert angeht, müsste ich mal schauen. Aber das wird noch was dauern.
Ansonsten stammt der Wiki-Eintrag ja tatsächlich von mir ;)
(16.11.2016, 20:50)Crystal schrieb: Vielen Dank an dieser Stelle an unsere begeisterten Tüftler, die sich gemeldet haben, um zu zeigern, dass sie noch da sind. :) Ich denke, so wie uxl denken hier einige, die den RE-Thread verfolgen und auch wenn mal Flaute herrscht, so ist ab und an mal ein Lebenszeichen sicher nichts Schlechtes.
Privat- und Berufsleben genießt natürlich weiterhin höchste Priorität, dafür muss sich niemand entschuldigen.

...solange träume ich weiter von einem Riva-Bright-Eyes... :sleep:

Auch von mir die herzlichsten Dankesbekundungen für die bisherige großartige Arbeit an Bright-Eyes, dem Savegame-Editor, dem DSA-Viewer, den zahlreichen Patches usw.! :respect::respect::respect:
Ich habe mal versucht, Henne auf einem anderen Wege zu erreichen. Mal gucken, ob das Erfolg hat. :)
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)
Hallo an Alle,

um alle Sorgen zu zerstreuen, im Moment habe ich nur sehr wenig Zeit um an Bright-Eyes zu arbeiten.
Nach der vielen, jahrelangen Arbeit werde ich auf keinen Fall das Handtuch werfen.

In den letzten 7 Monaten habe ich an den Dungeons weitergearbeitet.
In der letzten Woche wurde der "Tempel des Namenlosen" und heute die "Drachenhöhle" auf Runin fertiggestellt.

Viel Code ist nicht mehr zu rekonstruieren:
Es fehlen, in meinem privaten Repo, noch ca. 70 Funktionen;
* fünf Dungeons (Totenschiff, Herberge, Spinnenhöhle, eine Höhle und die Ruine) und
* der Code für zum Abspielen der Audio-CD-Tracks.

Viele Grüße,
HenneNWH
Willkommen zurück! Es freut mich, dass du wieder vorbei schaust. Ich bin gespannt, was dann demnächst im öffentlichen Repo landet! :) Das klingt ja schon sehr vielversprechend.
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)
(28.11.2016, 19:24)HenneNWH schrieb: Viel Code ist nicht mehr zu rekonstruieren:
Es fehlen, in meinem privaten Repo, noch ca. 70 Funktionen;
* fünf Dungeons (Totenschiff, Herberge, Spinnenhöhle, eine Höhle und die Ruine) und
* der Code für zum Abspielen der Audio-CD-Tracks.

Wahn.Sinn. :silly::ok:
Willkommen zurück, HenneNWH!
Hmm, .. ich muss erst noch mal den Compiler installieren....
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)
(28.11.2016, 19:24)HenneNWH schrieb: Hallo an Alle,

um alle Sorgen zu zerstreuen, im Moment habe ich nur sehr wenig Zeit um an Bright-Eyes zu arbeiten.
Nach der vielen, jahrelangen Arbeit werde ich auf keinen Fall das Handtuch werfen.

In den letzten 7 Monaten habe ich an den Dungeons weitergearbeitet.
In der letzten Woche wurde der "Tempel des Namenlosen" und heute die "Drachenhöhle" auf Runin fertiggestellt.

Viel Code ist nicht mehr zu rekonstruieren:
Es fehlen, in meinem privaten Repo, noch ca. 70 Funktionen;
* fünf Dungeons (Totenschiff, Herberge, Spinnenhöhle, eine Höhle und die Ruine) und
* der Code für zum Abspielen der Audio-CD-Tracks.

Viele Grüße,
HenneNWH

Suuuuuuper!!:wave::wave::jippie:
(01.04.2016, 09:07)Obi-Wahn schrieb: Gerade habe ich Bright-Eyes mal wieder unter Linux (openSuse tumbleweed) gebaut und gestartet. Läuft auch alles gut, bis auf das Reisen. Sobald ich einen Wegpunkt betrete und die Reisekarte kommt, stürzt Bright-Eyes ab. Und zwar richtig. Es läuft hoch auf 100% CPU-Auslastung und lässt sich nur noch durch einen KILL in einer anderen root-Sitzung beenden. Leider kann ich dadurch keinen Blick mehr auf irgendwelche Logs werfen. :(

Weist Du welchen Compiler und - flags du genommen hast?
Ich habe vermutlich das gleiche Problem unter Debian/testing mit Clang/LLVM-3.8 gehabt.
Die Reisekarte anzeigen funktionierte, Reiseziel auswählen funktionierte auch,
aber die roten Punkte der Reiseroute und die Uhr wurden schon nicht mehr angezeigt.

Ich hab mal mit verschiedenen Optimierungen der Compiler getestet:
Bei Clang-3.8
  • CXX='clang++' CXXFLAGS='-O1 -g' => funzt
  • CXX='clang++' CXXFLAGS='-O2 -g' => funzt nicht mehr

Bei G++-6.2.0
  • CXX='g++' CXXFLAGS='-O1 -g' => funzt
  • CXX='g++' CXXFLAGS='-O2 -g' => funzt nicht mehr

Beide bleiben an der gleichen Codestelle hängen, da beide Compiler scheinbar etwas zu aggressiv optimieren.
Mit BCC wurde SCHICKM.EXE übrigens ohne Optimierung gebaut.

Unter Linux nehme ich
./configure CXX='g++' CXXFLAGS='-Og -g' && make .
Da wird nur wenig Optimiert, damit man beim Debuggen auch noch Freude hat.

Kannst Du das Verhalten, mit verschiedenen Optimierungen, unter Windows testen?
Die "Debug"-Version hat "/O0" und die "Release"-Version hat "/O3".
Es kann aber sein, dass beides funktioniert.
Danke Henne für die neue Version! :)

Ich hatte bisher nie irgendwelche Optimierungen oder Einstellungen benutzt. Egal, ob unter Windows oder Linux.
Unter Linux mache ich einfach folgendes:

./autogen.sh
./configure
make

Ich glaube es wird gcc mit c++ verwendet. Es wird wohl gcc-c++ in der Version 4.8.5 verwendet. Anbei ist das config.log

Gerade habe ich den aktuellen Stand unter Linux kompiliert und sobald ich auf dem Reise-Bildschirm einen Ort anklicke stürzt es ab. Ich weiß jetzt nicht, ob da nicht zumindest einen Schritt weiter ist als im April.

Edit: Unter Windows stürzt das Programm nicht ab. Ich warte noch deine Antwort ab, bevor ich eine neue Version für Windows veröffentliche.


Angehängte Dateien
.txt   config.log.txt (Größe: 48,21 KB / Downloads: 1)
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)
Wenn Du es so baust, wird die Voreinstellung '-O2 -g' genommen.
Das bedeutet mit Optimierung.

Versuchs mal mit:
./autogen.sh
./configure CXX='g++' CXXFLAGS='-O1 -g'
make

Ich bin mir sicher dass es dann geht.
Nachdem seit dem letzten Release sehr viel Zeit vergangen ist
kommt jetzt ein riesiger Sprung in Richtung "Ende Phase 1".

Es wurden alle Reiseevents und der Reisemodus ersetzt.
Beim Reisemodus tritt allerdings ein noch nicht behobener Bug auf,
wenn die Optimierungsstufe des Compilers zu hoch ist.
Mit "-O1" funktionierte es mit aktuellen Clang und GCC noch,
mit "-O2" nicht mehr.

Als nächstes wurden neun weitere Dungeons ersetzt.
Jetzt fehlen nur noch: Das Totenschiff, die Herberge, die Spinnenhöhle und die Orkhöhle.

Zum wiederholten mal vielen Dank an gaor!
Er hat viele der magischen Zahlen im Quelltext durch aussagekräftige Bezeichner zu ersetzten.
:thx:

Ersetzte Funktionen (Segmente sind komplett identisch)
  • seg003: movement (kleine Änderungen)
  • seg008: Rasterlib (Assembler)
  • seg075: Dungeon: common 1/2 (kleine Änderungen)
  • seg076: Dungeon: common 2/2
  • seg080: Dungeon: Wolfshöhle, Höhle
  • seg081: Dungeon: cave2
  • seg082: Dungeon: Magierruine
  • seg084: Dungeon: Tempel des Namenlosen
  • seg085: Dungeon: Drachenhöhle
  • seg086: Dungeon: Piratenhöhle
  • seg089: Dungeon: Burg mit Grimring
  • seg091: Dungeon: mine prem
  • seg093: Reisemodus
  • seg094: Reisemodus
  • seg114: Reiseevents 2 / 10
  • seg114: Reiseevents 6 / 10
  • seg115: Reiseevents 7 / 10

Sonstiges:
  • GCC/MSVC: Compilerwarnungen geprüft und einige davon behoben
  • Magic-Numbers durch aussagekräftige Namen ersetzt

TODO-Liste:
  • Dungeons (43 sehr kleine und 4 sehr lange Funktionen, insgesamt noch 47)
  • Audio-CD Steuerung (12 Funktionen)


Statistik:

Es sind 1178 von 1237 Funktionen nachgebaut (95,23%).
Davon sind 1173 identisch mit dem Originalcode.
Nach Byte-Metrik sind schon 93,77% (korrigiert) fertig.


Viele Spaß beim Testen,
HenneNWH
Danke, ich werde es morgen noch einmal ausprobieren und dann morgen auch die neue Version veröffentlichen.

Edit: Danke für den Changelog!
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)
Bezüglich des Optimierungsproblems: Probiert doch mal dem GCC noch als Parameter ein "-Wpedantic" mitzugeben, eventuell treten da noch ein paar weitere Warnungen zu Tage.
Bei mir poppen schon mit den Standardeinstellungen eine ganze Reihe von Warnungen auf. Andererseits würde eine Korrektur wahrscheinlich der Bytekompatibilität, die Henne anstrebt, widersprechen.
Neue Version vom 05.12.2016!

Hier die Übersicht, die Henne erstellt hat: https://bright-eyes.obiwahn.de/Bright-Eyes/details.html
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)




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