Themabewertung:
  • 5 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Reverse Engineering der NLT
Seltsam,

ich hatte gedacht, dass dieses spezielle Programmstück bei dem dieser Fehler auftritt nie ausgeführt wird.
Kannst Du mir sagen welche Typen Du in deiner Gruppe hast und welche Waffen sie in den Händen halten?

An besagter Stelle habe ich soeben eine DEBUG()-Meldung eingefügt.
Wenn Du diese zu Gesicht bekommst, dann schick mit bitte mal den Output.
Ein hochgeladener Spielstand wäre auch nicht schlecht.
Leider läuft der neuste Build nicht durch.


Angehängte Dateien
.rar   BuildLog.rar (Größe: 3,88 KB / Downloads: 1)
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)
(10.05.2012, 19:05)HenneNWH schrieb: Seltsam,

ich hatte gedacht, dass dieses spezielle Programmstück bei dem dieser Fehler auftritt nie ausgeführt wird.
Kannst Du mir sagen welche Typen Du in deiner Gruppe hast und welche Waffen sie in den Händen halten?
- 4 Leute: Zwerg, Thorwalerin, Hexer, Magier
- Waffen: Rapier, Silberstreitkolben, Schwerer Dolch, Magierstab

(10.05.2012, 19:05)HenneNWH schrieb: An besagter Stelle habe ich soeben eine DEBUG()-Meldung eingefügt.
Wenn Du diese zu Gesicht bekommst, dann schick mit bitte mal den Output.
Kann leider nicht compilen, da in meiner schick_common.h das struct nvf_desc noch kein pic-Member hat.

Edit: Obi-Wahn hats auch schon festgestellt :)
Edit 2: Der Zwerg hat sich bei genauerem Hinsehen als Streuner entpuppt...


Angehängte Dateien
.zip   QUARTS33.GAM.zip (Größe: 25,44 KB / Downloads: 1)
Ärgerlich, so ein Builldfehler. Er ist jetzt gefixt.

Ich hatte den Segfault-BUG auch grad, aber einfach reproduzierbar ist er nicht.
Mit Arboshs Spielstand in Daspota Kampf Nr 201 Name "DASP7" "Falschspieler" hat es einmal funktioniert.

Ich habe jetzt noch ein paar Infos eingefügt. Falls jemand den BUG nochmal hat, hätte ich diesen gern.
Hier gleich noch einer. Sieht mir nach einem fehlformatiertem printf aus:
Code:
Location verlassen: Wildniscamp
Reisebegegnung 98
�(�

�    

'�      Ã¯Â¿Â½�� -�+,�0��6��    9��
=��A��E��I��K��S��X�� _��!b��"g��#k��$n��%u��&{��'��*���+���,���.���/���0���4���� koennte zu 9% an 2 erkranken
Location betreten: Wildniscamp
Anbei eine neue Windows-Version.
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)
(11.05.2012, 21:55)Arbosh schrieb: Hier gleich noch einer. Sieht mir nach einem fehlformatiertem printf aus:
Code:
Location verlassen: Wildniscamp
Reisebegegnung 98
�(�

�    

'�      Ã¯Â¿Â½�� -�+,�0��6��    9��
=��A��E��I��K��S��X�� _��!b��"g��#k��$n��%u��&{��'��*���+���,���.���/���0���4���� koennte zu 9% an 2 erkranken
Location betreten: Wildniscamp

Sehr interessant...
Das printf() ist in Ordnung. Schick arbeitet hier etwas unsauber.

Der Test ob jemand erkranken könnte wird auch für alle 7 Helden ausgeführt.
Da du nur 4 Helden in deiner Gruppe sind hast du 3 leere Plätze.
Für diese drei leeren Plätze wird auch ein Krankheitstest durchgeführt ohne zu prüfen ob diese wirklich Helden enthalten.
An diesen Speicherstellen kann irgendetwas stehen und dieses Irgendetwas wurde auf deiner Konsole ausgegeben.
Das Ändere ich sofort.

Schick scheint ziemlich buggy zu sein, wenn die Gruppe nicht voll ist.

EDIT: Zum reproduzieren empfehle ich die Straße nach Phexcaer "Reisebegegnung 29".
Und wieder eine neue Version. :)
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)
(09.05.2012, 21:39)Arbosh schrieb: So mal wieder was neues: BrightEyes ist bei mir heut zum zweiten mal mit 'nem Segfault abgestürzt. Beim ersten Mal hatte mir die Shell noch keinen Coredump gemacht, aber diesmal war ich vorbereitet, hier ist's passiert:

Leider läßt sich das ganze nicht zuverlässig reproduzieren. Ich habe den Coredump aber erstmal gesichert falls noch mehr Infos nötig sind (z.B. Variableninhalte aus höheren Stackframes).

Ein Fix ist online. :jippie:

Ich komme dem Problem langsam auf die Schliche. Die Funktion zum Laden der Kampfsprites wird mit einem scheinbar ungültigen Wert (-1) aufgerufen, welcher nicht abgefangen wird. Diese gibt dann einen ungültigen Zeiger zurück, der von process_nvf() weiterverarbeitet wird und den Absturz auslöst.

Den wirklichen Fehler kann ich im Moment nicht beheben, da der entsprechende Programmteil noch nicht
rekonstruiert ist.
Um den Absturz zu umgehen gebe ich jetzt einfach eine andere gültige Adresse zurück.
Dadurch wird mal kurz ein falsches Bild eingeblendet, welches spätestens beim nächsten Zug der Figur wieder korrigiert wird.

Es war abzusehen, dass diese Art von Fehler irgendwann auftritt.
Unter DOS gibt es keinen Speicherschutz der verhindert, dass Programme auf Speicher zugreifen welcher ihnen nicht gehört.
Heute ist das (zum Glück) nicht mehr so und wir können die Fehler von früher entdecken und beheben.
Ich muss dir dafür einfach mal ein großes Dankeschön ausprechen für deine unermüdliche Arbeit :up:
Und wieder eine neue Version. :)
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)
So,

ich sitze gerade vor der Funktion, welche oral eingenommene Gegenstände auswertet.
Genauer gesagt bin ich gerade mit den Kräutern fertig geworden und wollte euch meine Erkenntnisse
über die Wirkung von Kräutern (Ingame) mitteilen:
  • Gulmondblatt: KK+2 für 12h (kommutativ) + Heilung von 2 LE
  • Einbeere: Heilung von 1W6 LE
  • Belmart: Heilt die erste Vergiftung und Immunität gg. Gifte+1 für 24h (kommutativ)
  • Menchalkaktus: Heilt die erste Vergiftung und Immunität gg. Gifte+2 für 24h (kommutativ)
  • Atmon: Erhöht alle Körpertalente+2 für 5h (kommutativ)
  • Wirselkraut: Heilung von 10 LE
  • Tarnelle: setzt einen unbekanntes Byte (0x95) auf 1, keine Meldung an Benutzer

EDIT: Belmart von +2 auf +1 geändert.

(16.05.2012, 13:11)Arbosh schrieb: Ich muss dir dafür einfach mal ein großes Dankeschön ausprechen für deine unermüdliche Arbeit :up:

Das geht runter wie Öl. :thx:
Gulmondblatt + Belmart = Belmart + Gulmondblatt :think: ;)
(18.05.2012, 19:43)HenneNWH schrieb:
  • Belmart: Heilt die erste Vergiftung und Immunität gg. Gifte+2 für 24h (kommutativ)
  • Menchalkaktus: Heilt die erste Vergiftung und Immunität gg. Gifte+2 für 24h (kommutativ)

Bist du sicher, dass das auch für die CD-Version gilt? :think:

(18.05.2012, 19:43)HenneNWH schrieb:
  • Tarnelle: setzt einen unbekanntes Byte (0x95) auf 1, keine Meldung an Benutzer

Vermutlich ist das unbekannte Byte dafür verantwortlich, wieviel LE die Helden während der Schlafenszeit regenerieren. Tarnelen beruhigen und geben einen Regenerierungsbonus, vielleicht wird das mit +1 aktiviert und anschließend wieder auf Null gesetzt, damit die Gruppe nicht bei jeder Rast (ohne die Hilfe einer Tarnele) verstärkt regeneriert. :frage:
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!
(18.05.2012, 21:43)Crystal schrieb:
(18.05.2012, 19:43)HenneNWH schrieb:
  • Belmart: Heilt die erste Vergiftung und Immunität gg. Gifte+2 für 24h (kommutativ)
  • Menchalkaktus: Heilt die erste Vergiftung und Immunität gg. Gifte+2 für 24h (kommutativ)

Bist du sicher, dass das auch für die CD-Version gilt? :think:

Bis auf den Schreibfehler bei Belmart (es muss +1 sein) bin ich mir absolut sicher.
Es wird an dieser Stelle nicht geprüft, ob die Immunität schon vorhanden ist.

(18.05.2012, 21:43)Crystal schrieb:
(18.05.2012, 19:43)HenneNWH schrieb:
  • Tarnelle: setzt einen unbekanntes Byte (0x95) auf 1, keine Meldung an Benutzer

Vermutlich ist das unbekannte Byte dafür verantwortlich, wieviel LE die Helden während der Schlafenszeit regenerieren. Tarnelen beruhigen und geben einen Regenerierungsbonus, vielleicht wird das mit +1 aktiviert und anschließend wieder auf Null gesetzt, damit die Gruppe nicht bei jeder Rast (ohne die Hilfe einer Tarnele) verstärkt regeneriert. :frage:

Das ist sehr gut möglich. Auf dieses Byte wird auch in Herbergen zugegriffen, was deine Aussage bestätigt.
(18.05.2012, 19:43)HenneNWH schrieb: So,

ich sitze gerade vor der Funktion, welche oral eingenommene Gegenstände auswertet.
Genauer gesagt bin ich gerade mit den Kräutern fertig geworden und wollte euch meine Erkenntnisse
über die Wirkung von Kräutern (Ingame) mitteilen:
  • Gulmondblatt: KK+2 für 12h (kommutativ) + Heilung von 2 LE
  • Einbeere: Heilung von 1W6 LE
  • Belmart: Heilt die erste Vergiftung und Immunität gg. Gifte+1 für 24h (kommutativ)
  • Menchalkaktus: Heilt die erste Vergiftung und Immunität gg. Gifte+2 für 24h (kommutativ)
  • Atmon: Erhöht alle Körpertalente+2 für 5h (kommutativ)
  • Wirselkraut: Heilung von 10 LE
  • Tarnelle: setzt einen unbekanntes Byte (0x95) auf 1, keine Meldung an Benutzer

EDIT: Belmart von +2 auf +1 geändert.

(16.05.2012, 13:11)Arbosh schrieb: Ich muss dir dafür einfach mal ein großes Dankeschön ausprechen für deine unermüdliche Arbeit :up:

Das geht runter wie Öl. :thx:

Cool! Ich verstehe aber nicht, was du mit der Anmerkung "kommutativ" meinst. Was kann man da vertauschen? Meinst du vielleicht "kumulativ"?
Hallo, ich bin's - der Bart von Fidel Castro. Und mir ist total langweilich nie geschnitten wurde.
I'm a roleplayer. My dice are like my relationships: platonic and unlucky.
(19.05.2012, 11:28)Hendrik schrieb: Cool! Ich verstehe aber nicht, was du mit der Anmerkung "kommutativ" meinst. Was kann man da vertauschen? Meinst du vielleicht "kumulativ"?

er meinte bestimmt kumulativ. Er ist da bestimmt genau so wie ich und denkt, mhh wie hiess dass jetzt noch mal genau und dann macht goolge aus dem etwas, dann ein konkretes Wort, welches aber nicht unbedingt immer richtig ist ;)
"Mut ist der Zauber, der Träume Wirklichkeit werden lässt"

Savegameditoren, Tools und Patches der Nordlandtrilogie
Mein DSA Savegameditor
Auch von mir ein großes Dankeschön! Tolles Engagement!

Es ist immer interessant Neuigkeiten in diesem Thread zu lesen. Ich bin schon gespannt welche Möglichkeiten der Erweiterung und Verbesserung sich eines Tages auf Basis deiner Arbeiten ergeben werden...

Hast du eigentlich mal ein Statement der Rechteinhaber der NLT zu deinem Projekt bekommen?

lg Christian
Ups, kumulativ war auch das was ich meinte.

Mit den Rechteinhabern habe ich noch keinen Kontakt aufgenommen,
da das Projekt sehr experimentellen Charakter hat, nicht klar war
ob diese Variante auch funktioniert und ich auch Zeit und Lust habe dranzubleiben.
Mittlerweile kennen wir die Antworten und bei mittlerweile über 30% der restaurierten
Funktionen ist eine Kontaktaufnahme mit den Rechteinhabern durchaus angebracht.

Allerdings besteht die Gefahr, dass sie ein Veto einlegen...




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