Crystals-DSA-Foren

Normale Version: Reverse Engineering der NLT
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Einige Riva Dateien scheinen nochmal extra komprimiert worden zu sein. Also neben Bildern (.pix) auch die Maps und weitere. Identifizierung klappt mittels Magic Bytes, die ersten 4 stellen immer "BoPA" da. Habe dazu nichts gefunden und deshalb selber ein kleines Skript, zum entpacken, in Ruby geschrieben.
Der Dateiname muss als Argument mit übergeben werden. Dem Zieldateinamen wird noch ein _UN angehängt damit die Quelldatei nicht überschrieben wird.

Das Forum erlaubt keine .rb Dateien, daher hab ich es als .txt hochgeladen.
(29.10.2013, 20:32)Helios schrieb: [ -> ]Einige Riva Dateien scheinen nochmal extra komprimiert worden zu sein. Also neben Bildern (.pix) auch die Maps und weitere. Identifizierung klappt mittels Magic Bytes, die ersten 4 stellen immer "BoPA" da.
Großartig. BoPa stand schon ewig auf meinem TODO-Zettel, hatte aber noch nicht die Zeit um es mir genauer anzuschauen. Wenn ich mich recht erinnere müsste jetzt von den Kompressionen nur noch RIVAPACK das in den TEMP-Chunks der Rivaspielstände verwendet wird fehlen.
Freut mich, dass sich die Mühe gelohnt hat :bigsmile:
RIVAPACK war dagegen simple. Dabei handelt es sich um eine einfache RLE, beziehungsweise auf deutsch, Lauflängenkodierung.
Als Escape-Zeichen wird 0x7F verwendet, danach kommt in einem Byte die Anzahl der Wiederholungen und im letzten der Wert.
Habe auch wieder ein kleines Skript gebastelt :D
Funktioniert im Prinzip wie das Obrige, nur benötigt man einen Spielstand. Das Skipt sucht dann nach TEMP Dateien, entpackt und extrahiert diese. Bei meinem Spielstand im Nest wurden 137 extrahiert, einige sehr exotische sind auch dabei.
(30.10.2013, 16:50)Helios schrieb: [ -> ]Als Escape-Zeichen wird 0x7F verwendet, danach kommt in einem Byte die Anzahl der Wiederholungen und im letzten der Wert.
:idea: Ah, die Lauflängenkodierung ist sogar schon bekannt (siehe NVF Typ 0x04 und 0x05 usw.), hätte mir seinerzeit auch auffallen können... :think:
(13.10.2013, 19:51)vonGratenfels schrieb: [ -> ]Unter Brighteyes ist immer der erste Hauszauber nur gemäß seiner Herkunft steigerbar, die anderen je 3x.
Bsp.:
Spezialgebiet Antimagie, erster Hauszauber Beherrschung brechen, druidischen Ursprungs, daher nur einmal steigerbar. (..)
Unter der original DOSbox ist auch der erste Hauszauber 3x steigerbar.

Ich denke, das ist ein Bug.
Ich hab das kurz nachgeprueft mit BrightEyes_2013-09-07 und kann den Bug bestaetigen. Bei der Charaktergenerierung laesst sich in BrightEyes der erste Hauszauber nicht 3x steigern. Beim normalen Stufenaufstieg ist alles OK (3x Steigerung moeglich, sowohl in BrightEyes als auch in DOSBox).
(31.10.2013, 08:09)Arhu schrieb: [ -> ]
(13.10.2013, 19:51)vonGratenfels schrieb: [ -> ]Unter Brighteyes ist immer der erste Hauszauber nur gemäß seiner Herkunft steigerbar, die anderen je 3x.
Bsp.:
Spezialgebiet Antimagie, erster Hauszauber Beherrschung brechen, druidischen Ursprungs, daher nur einmal steigerbar. (..)
Unter der original DOSbox ist auch der erste Hauszauber 3x steigerbar.

Ich denke, das ist ein Bug.
Ich hab das kurz nachgeprueft mit BrightEyes_2013-09-07 und kann den Bug bestaetigen. Bei der Charaktergenerierung laesst sich in BrightEyes der erste Hauszauber nicht 3x steigern. Beim normalen Stufenaufstieg ist alles OK (3x Steigerung moeglich, sowohl in BrightEyes als auch in DOSBox).

Habe gerade einen Fix ins Git-Repo hochgeladen.
Mit der neuen Version kommt es bei Kämpfen in der Verfallenen Herberge regelmäßig zu Abstürzen.
Außerdem kommt es häufig zu Abstürzen, wenn man gegen Piraten kämpft (aufgetreten bei Schiffsreise, Zwingfeste, Daspota).
Also jetzt bin ich mir ziemlich sicher einen Bug gefunden zu haben:

Vor einiger Zeit war ich mal mit ner Heldengruppe in Oberorken unterwegs und hab mich in die Zwergenmine gewagt. Nachdem ich dort einen Spielstand neu geladen habe, den ich zuvor im Swafnir-Tempel in Oberorken angelegt habe, waren alle Textboxen, anstatt grün, viele Ausschnitte aus dem Gesicht des Charakter-Portraits des Hexers. Das hat mich beim Text-Lesen und im Kampf so gestört, dass ich damals mit Schicksalsklinge aufgehört habe.

Mittlerweile habe ich mit einer neuen Gruppe begonnen, dieses mal immer vorsichtshalber zwei Saves angelegt, um diesen Bug zu vermeiden, aber es ist wieder passiert: In Oberorken, wenn ich den Spielstand aus den Swafnir-Tempel lade, werden alle Textboxen verändert. Betrifft beide Saves, die ich im Swafnirtempel angelegt habe. Zum Glück hat die Gruppe gerade erst losgelegt, weshalb es kein Problem ist, das Spiel neu zu beginnen.

Ist aber trotzdem schade, da sehr nervig.

PS: Sogar der Save, den ich zu Beginn des Spieles angelegt habe, war danach betroffen :/
Tritt der Fehler auch noch auf, wenn du auf die normale Dosbox zurückwechselst? Wenn nein, dass ist der Fehler wirklich nur bei BrightEyes. Wenn ja, wurde auch irgendwas bei den Savegames vermurkst. (Was man vielleicht durch HEX-erei beheben könnte...)
Der Fehler tritt sowohl bei Bright-Eyes, als auch bei der normalen Dosbox auf, habs auch auf verschiedenen Systemen getestet. Denke mal, dass es an den Savegames liegt. Warum das Savegame in Thorwal aber plötzlich auch betroffen ist, gibt mir Rätsel auf..
Ich habe eine Frage zum Zauber "Große Gier". Wenn ich mich recht erinnere, hat der Zauber in der NLT dazu geführt, dass der betroffene Gegner wie beim Horriphobus das Schlachtfeld verlassen hat.
Mit Bright Eyes wird mir auch oft angegeben, dass die Zauberprobe im Kampf gelungen ist, im Kampf selbst wird aber angezeigt, der Zauber wäre nicht gelungen und im Dropbox Fenster bekomme ich die Info "Zauberspruch "Grosse Gier" ist nicht implementiert."
Heißt das einfach, dass Große Gier mit Bright Eyes noch nicht funktioniert? Und wenn dies der Fall ist, soll der Zauber noch irgendwann implementiert werden? Würde mich darüber freuen, wenn meine Hexe auch noch irgendwann im Kampf von Nutzen wäre ;)
In Schick funktioniert Große Gier sowieso nicht, ob mit oder ohne Bright Eyes.
In Schweif und Riva funktioniert er und wirkt auch gegen Skelettkrieger und ähnliches.
Ich habe jetzt das eine unbekannte erste Byte bei der BROTHEL.DAT in Schweif identifiziert. Es beeinflusst die Regeneration. Bei 0x00 ist die Regeneration zwischen 25 und 30, bei einem Wert von 7F ist sie fast 60, bei 80 findet gar keine Regeneration statt. Es handelt sich also um ein vorzeichenbehaftetes Byte. Die Regeneration aller Helden liegt innerhalb eines W6. Ich habe es auf der Wiki bereits aktualisiert, wie auch ein paar andere Dinge.
(02.01.2014, 00:15)Lippens die Ente schrieb: [ -> ]Ich habe jetzt das eine unbekannte erste Byte bei der BROTHEL.DAT in Schweif identifiziert. Es beeinflusst die Regeneration. Bei 0x00 ist die Regeneration zwischen 25 und 30, bei einem Wert von 7F ist sie fast 60, bei 80 findet gar keine Regeneration statt. Es handelt sich also um ein vorzeichenbehaftetes Byte. Die Regeneration aller Helden liegt innerhalb eines W6. Ich habe es auf der Wiki bereits aktualisiert, wie auch ein paar andere Dinge.

:up: Gute Arbeit, "Ente"! Dieses Dateiformat-Entschlüsseln ist nicht nur interessant fürs Modden, sondern auch für den Fortschritt von BrightEyes. Danke!
ich habe in Schick ein bisschen mit den Gebäudeindices herumgespielt und auch untersucht, wie das Spiel reagiert, wenn man eine ungültige Indexzahl, etwa FF, eingibt. Erstaunlich, wie sehr das von Typ zu Typ variiert. Beim Tempel wusste ich das schon, es wird ein funktionierender Praiostempel erzeugt. Bei Tavernen ist das Essen dann hoch negativ, also eine Geldquelle. Wenn man aber Unterhalten anklickt, gibt es am Ende, wenn die Ausgaben angezeigt werden sollen, einen Crash. Beim Geschäften wird es bei zu hohen Indexwerten lustig: Im Angebot des Händlers steht Datenmüll und unrealistische Preise, man kann nichts kaufen oder verkaufen und wenn man reden will, erscheint Datenmüll aus den Daspotadialogen, wenn man eine dieser Antworten anklickt, kommt es mitten im Laden zu einem Kampf gegen 4 Piraten (!), nach dessen Ende man wieder im Laden steht und das ganze wiederholen kann. Der Kampf ist manuell steuerbar und völlig normal. Kurios, nicht? Beim Schmied scheint alles normal zu laufen, ich habe allerdings keine zerbrochenen Waffen dabei gehabt. Fehlen noch Heiler und Herbergen, ich bin schon gespannt. Was aber überall gleich ist, ist, dass es für alle Städte zusammen eine Liste gibt, wo Preis und Sortiment vorgegeben sind, die sind wenn überhaupt nur schwer zu ändern. Wo ist eigentlich der Truheninhalt in Schick gespeichert? Etwa direkt in der Dungeondatei? eine chest.dat gibt es da ja nicht. Ich schau mal weiter, was ich noch rausfinde.
Gibt es eigentlich Fortschritt bei BrightEyes? Oder schlägt mal wieder das "echte Leben" zu? ;) :D
Was ich hier hineinschreibe, basiert auf Programmtests: ich ändere ein bestimmtes Byte, und sehe nach, wie sich diese Veränderung auf das Spiel auswirkt. Mit Bright Eyes selbst hat das nichts zu tun, da kann ich dir leider nicht weiterhelfen. Aber euer Projekt ist der Schlüssel dafür, dass ich erst auf die Idee gekommen bin, dort etwas zu erforschen.
(02.02.2014, 12:45)Obi-Wahn schrieb: [ -> ]Gibt es eigentlich Fortschritt bei BrightEyes? Oder schlägt mal wieder das "echte Leben" zu? ;) :D

Da gibt es durchaus Fortschritt! Im Großen und Ganzen beschäftige ich mich eher mit Schweif als mit Schick; momentan schreibe ich weniger Code, als dass ich die .exe analysiere, und sitze gerade daran, die Bild-Ladefunktionen in BrightEyes umzusetzen. Sowie das anständig läuft, gibt's wieder ein Commit. Anschließend möchte ich mich dem Blitter und anderen Kopier-Routinen widmen, um auch für Schweif eine signifikante Beschleunigung durch BrightEyes zu erreichen.
@Lippens die Ente: Ich meinte da eher Henne und Hendrik, die ja die Hauptentwickler von BrightEyes sind. Aber freut mich, dass du auch am Forschen bist! :)

@Hendrik: Der Speedtest für Schweif wartet schon! :D