Beiträge: 460
Themen: 8
Registriert seit: Jul 2007
Bewertung:
11
21.09.2007, 19:03
(Dieser Beitrag wurde zuletzt bearbeitet: 21.09.2007, 19:28 von Shazu.)
Mein Script kann inzwischen NVF Container des Typs 05 entpacken, das sind alle Texturen, die man in Städten und Dungeons zu sehen bekommt....alle sind schief!
Das ist der Teil des Scripts, der die Daten entpackt. Da ich Anfangs diesen Script quasi alleine hatte und ihn mit den Rohdaten gefüttert habe und das selbe Ergebnis bekommen habe, ist ein Fehler in der Weiterverarbeitung sehr sehr unwahrscheinlich.
Code: local rl
for j = 1, images[i].size do
local byte = file:readbyte()
if not byte then
break
end
if byte - 127 < 0 then
rl = byte
else
obj.images[i].data = obj.images[i].data..string.char(byte - 127):rep(rl or 1)
rl = nil
end
end
Da fehlt eher noch etwas an der Spezifikation, irgendwas muss ich wohl übersehen haben :/
Die Sache mit den schwarzen Pixeln würde auch erklären, warum ein Bild mit der korrekten Breite noch schlimmer aussieht:
Links ist das Bild 115 Pixel breit, so steht es im Header der NVF Datei, rechts ist die Breite auf 127 Pixel angepasst. Das Bild im Spiel ist 112 Pixel breit.
There are only 10 types of people in the world. Those who understand binary and those who don't.
Beiträge: 460
Themen: 8
Registriert seit: Jul 2007
Bewertung:
11
21.09.2007, 19:38
(Dieser Beitrag wurde zuletzt bearbeitet: 21.09.2007, 19:40 von Shazu.)
Ich glaub ich hab's. 0x7F ist nicht wie ich vermutet hatte das die niedrigste mögliche Farbe sondern irgendein Steuerzeichen.
Das löst auch das Problem mit der Palette, die "falschen" Farben waren nämlich nur um 1 verschoben.
Wenn man diese Steuerzeichen einfach komplett ignoriert, dann erhält man folgendes:
There are only 10 types of people in the world. Those who understand binary and those who don't.
Beiträge: 200
Themen: 2
Registriert seit: Aug 2007
Bewertung:
7
cool, sieht so aus als wäre nur mehr ein Pixel pro Zeile zu wenig. Erklärt möglicherweise auch die schwarze zeile am unteren Rand (oder kommt das vom ausschneiden? :o)
cu
Daniel
Ich bin schizophren. Ich auch. Können Sie unser Gehalt verdoppeln?
Beiträge: 796
Themen: 23
Registriert seit: Feb 2007
Bewertung:
10
Jetzt sieht das Bild aus als ob die erste Zeile zu wenig Pixel hat, ich würde mal auf einen Pixel tippen, daher kommt die Schräge außerdem sieht die letzte Zeile nicht so aus wie im Screenshot. und es gibt transparente Pixel (Screenshot unten links).
Beiträge: 460
Themen: 8
Registriert seit: Jul 2007
Bewertung:
11
21.09.2007, 20:14
(Dieser Beitrag wurde zuletzt bearbeitet: 21.09.2007, 20:18 von Shazu.)
daniel schrieb:cool, sieht so aus als wäre nur mehr ein Pixel pro Zeile zu wenig. Erklärt möglicherweise auch die schwarze zeile am unteren Rand (oder kommt das vom ausschneiden? :o)
cu
Daniel Jo, ein Pixel fehlt, wenn man einfach pro Zeile einen hinzufügt, so erhält man das korrekte Bild:
Edit: Komisch, Bild 2 und 3 sind noch verzerrt, aber Bild 4 sieht auch richtig aus mit diesem Zusatzpixel:
There are only 10 types of people in the world. Those who understand binary and those who don't.
Beiträge: 460
Themen: 8
Registriert seit: Jul 2007
Bewertung:
11
Komisch, das zieht sich durch alle Texturen. Einige sind ohne Korrekturpixel schief, andere sind mit schief und noch andere brauchen ganz andere Korrekturpixel, komisch.
There are only 10 types of people in the world. Those who understand binary and those who don't.
Beiträge: 200
Themen: 2
Registriert seit: Aug 2007
Bewertung:
7
21.09.2007, 21:04
(Dieser Beitrag wurde zuletzt bearbeitet: 21.09.2007, 21:08 von daniel.)
Ohne jetzt die Bilder gesehen zu haben klingt das was Du beschreibst nach einer variablen Bildbreite.
Vielleicht hängt das mit dem Steuerzeichen zusammen, das zu zuerst anders interpretiert hast..
Die Lauflängen-Dekompression muß ja passen, ansonst wären die Bilder ungleichmäßig verzerrt, wie es am Anfang war.
ps: Kann es sein, dass der "Korrekturpixel" am Anfang der Zeile eingebaut ist? Vergleiche ich Dein letztes Ergebnis mit dem Original, sitzt Dein Bild zu weit rechts. Ich glaube der Pixel fehlt am Ende der Zeile.
Auf jeden Fall eine coole Arbeit ,
Daniel
Ich bin schizophren. Ich auch. Können Sie unser Gehalt verdoppeln?
Beiträge: 52
Themen: 1
Registriert seit: Aug 2007
Von mir auch herzlichen Glückwunsch.
Eigentlich könnte man schon anfangen, die Städte und Dungeons zu implementieren, wenn die Grafiken fertig sind. Die Kämpfe wird nochmal eine ganz andere Sparte.
Ich guck mir mal an, was du so die letzten Wochen im svn getan hast.
Beiträge: 2.489
Themen: 25
Registriert seit: Aug 2006
Bewertung:
17
23.09.2007, 10:45
(Dieser Beitrag wurde zuletzt bearbeitet: 23.09.2007, 11:07 von Obi-Wahn.)
Sieht super aus!
Edit: ich hab mir mal nen svn-checkout gemacht und einfach mal mit Wine das Programm ausprobiert. Es läuft mit ein paar Wine-Fehlern durch und gibt die Bilder aus.
Edit2: Nativ unter Linux klappt es auch. http://freedsa.schattenkind.net/index.php/Linux:)
Beiträge: 460
Themen: 8
Registriert seit: Jul 2007
Bewertung:
11
Die Meldung kommt unter Windows auch beim entpacken der Schiffstexturen, liegt daran dass laut meiner NVF Spezifikation alles unter 0x80 keine Farbe ist. Was aber wohl nicht so ganz zu stimmen scheint.
There are only 10 types of people in the world. Those who understand binary and those who don't.
Beiträge: 200
Themen: 2
Registriert seit: Aug 2007
Bewertung:
7
Hi,
Ein Vorschlag meinerseits zur Aufteilung HEX Thread / Reverse Engineering - bitte ansehen, nachdenken und melden:
Beitrag 276:
http://www.crystals-dsa-foren.de/showthr...80&page=14
Bitte im HEX Thread diskutieren, da wir sonst alle in verschiedenen Threads durcheinanderquatschen (-schreiben :o)
cu
Daniel
Ich bin schizophren. Ich auch. Können Sie unser Gehalt verdoppeln?
Beiträge: 12.413
Themen: 406
Registriert seit: Aug 2006
Bewertung:
78
Ein kleiner Tipp, daniel. Die Beitragsnummern (rechts) sind auch Links. Damit kann man beitragsgenau verlinken.
Beiträge: 52
Themen: 1
Registriert seit: Aug 2007
Wie wäre es mit einem unterforum für die FreeDSA Entwicklung? Da könnte man alle threads reinpacken. Im wiki verlinke ich ja auf das Forum hier :-).
@obiwhan: klaro klappt das unter linux genauso wie unter win. wir nutzen später auch lugre+ogre3d und das läuft auch nativ unter win/linux/mac.
Beiträge: 12.413
Themen: 406
Registriert seit: Aug 2006
Bewertung:
78
SiENcE schrieb:Wie wäre es mit einem unterforum für die FreeDSA Entwicklung? Da könnte man alle threads reinpacken. Im wiki verlinke ich ja auf das Forum hier :-). Ich bin kein Fan von Unterforen. Aber eine Extra-Rubrik wie hier die "Allgemeine Diskussionen" könnte ich euch einrichten.
Allerdings müsste ich Gewissheit darüber haben, dass ihr auch am Projekt dranbleibt. Wenn du die Leute unter deiner "Flagge" anführen willst und motivierst, wäre das für mich Gewissheit genug. Dann ließe sich auch darüber reden, Mod-Rechte in dieser Rubrik zu vergeben, damit ihr euch sortieren und einrichten könnt wie z.B. Sticky-Threads oder sowas.
Beiträge: 2.489
Themen: 25
Registriert seit: Aug 2006
Bewertung:
17
@Sience: Im Moment klappt das vielleicht noch problemlos, aber wenn ihr erstmal mehr Bibliotheken mit bestimmen Versionsnummern benutzt, klappt das ganz schnell nicht mehr so leicht. Bestes Beispiel ist die neuste Version von DboxFE, die ich aufgrund von Abhängigkeitsschwierigkeiten nicht mehr kompiliert bekomme.
Beiträge: 200
Themen: 2
Registriert seit: Aug 2007
Bewertung:
7
Ich habs!
Shazu hat mir heute die sourcen für's Image-Dekodieren geschickt - nach 5h herumtüfteln habe ich es geschafft, dass die Bilder des Leuchtturms sauber in ein BMP-File umcodiert werden:
Shazu, ich schicke Dir morgen die Änderungen, die ich im Dekoder eingebaut habe.
Danke nochmals für das ganze Script , und die Doku zum Fileformat!
cu - Daniel
Ich bin schizophren. Ich auch. Können Sie unser Gehalt verdoppeln?
Beiträge: 134
Themen: 1
Registriert seit: Sep 2007
Bewertung:
12
Hier eben was, das ich in den Riva Sourcen auf die Schnelle gefunden habe...
Code: // NVF-Format (only for crunchmode 1 !)
//
// +--------------------------------------------------+
// | byte crunchmode; | Header
// | uword blockcount; | 3 byte
// +--------------------------------------------------+
// | uword block 1 ->width | Blocksizes
// | uword block 1 ->height |
// | .... | n * 4 byte
// | uword block n ->width |
// | uword block n ->height; |
// +--------------------------------------------------+
// | Data block 1 (width*height of block 1 bytes) | ? bytes
// | .... |
// | Data block n (width*height of block n bytes) |
// +--------------------------------------------------+
// | uword # Colors; | 2 bytes
// +--------------------------------------------------+
// | byte Palette[# Colors][3] | # Colors * 3 bytes
// +--------------------------------------------------+
Beiträge: 796
Themen: 23
Registriert seit: Feb 2007
Bewertung:
10
daniel schrieb:Shazu hat mir heute die sourcen für's Image-Dekodieren geschickt - nach 5h herumtüfteln habe ich es geschafft, dass die Bilder des Leuchtturms sauber in ein BMP-File umcodiert werden: Dann fehlt nur noch die Antwort auf die Frage der Transparenz.
Guido Henkel schrieb:Hier eben was, das ich in den Riva Sourcen auf die Schnelle gefunden habe... Okay, die Datenstruktur aus der Originaldokumentation ist natürlich vollkommen unschlagbar...
Beiträge: 200
Themen: 2
Registriert seit: Aug 2007
Bewertung:
7
Farbindex 0 ist anscheinend die Transparenz, ich habe gerade die entsprechenden Bilder im Wiki ersetzt. Also wenn bei diesem Beitrag im Browser auf 'aktualisieren' klickt, dann sollten die Bilder in meinem ursprünglichen Beitrag#76 rosa Pixel als Zeichen für Transparenz haben (nur Bild 1 und Bild 4 sind ersetzt)
Ich bin schizophren. Ich auch. Können Sie unser Gehalt verdoppeln?
Beiträge: 52
Themen: 1
Registriert seit: Aug 2007
|