Skip to content
Shihan edited this page Mar 17, 2020 · 1 revision

Table of Contents

NVF Spezifikation

Die Byte-Reihenfolge ist Little-Endian.

Die Pixeldaten-Byte-Arrays enthalten den Index der Farbe des Pixels aus der Farbpalette als 1-Byte-Integer (unsigned). Das erste Byte entspricht der oberen linken Ecke, das letzte Byte der unteren rechten.

Die RGB-Werte der Farbdefinitionen der Palette müssen mit 4 multipliziert werden.

NVF Typ 0x00

Keine Kompression mit gleicher Auflösung.

1 byte integer (unsigned) NVF Typ Header: 3 bytes
2 byte integer (unsigned) Anzahl der Texturen (n)
2 byte integer (unsigned) Breite der Texturen Texturenblock: 4 bytes
2 byte integer (unsigned) Höhe der Texturen
Breite*Höhe bytes Pixeldaten 1 Pixeldatenblock: variabel
...
Breite*Höhe bytes Pixeldaten n
2 byte integer (unsigned) Anzahl der Farben (m) Palettengröße: 2 bytes
1 byte integer (unsigned) Farbe 1: Rot (* 4 = 0-255) Palette: m * 3 bytes
1 byte integer (unsigned) Farbe 1: Grün (* 4 = 0-255)
1 byte integer (unsigned) Farbe 1: Blau (* 4 = 0-255)
...
1 byte integer (unsigned) Farbe m: Rot (* 4 = 0-255)
1 byte integer (unsigned) Farbe m: Grün (* 4 = 0-255)
1 byte integer (unsigned) Farbe m: Blau (* 4 = 0-255)

NVF Typ 0x01

Keine Kompression mit unterschiedlicher Auflösung.

1 byte integer (unsigned) NVF Typ Header: 3 bytes
2 byte integer (unsigned) Anzahl der Texturen (n)
2 byte integer (unsigned) Textur 1: Breite Texturenblock: n * 4 bytes
2 byte integer (unsigned) Textur 1: Höhe
...
2 byte integer (unsigned) Textur n: Breite
2 byte integer (unsigned) Textur n: Höhe
Textur #1 Breite*Höhe bytes Pixeldaten 1 Pixeldatenblock: variabel
...
Textur #n Breite*Höhe bytes Pixeldaten n
2 byte integer (unsigned) Anzahl der Farben (m) Palettengröße: 2 bytes
1 byte integer (unsigned) Farbe 1: Rot (* 4 = 0-255) Palette: m * 3 bytes
1 byte integer (unsigned) Farbe 1: Grün (* 4 = 0-255)
1 byte integer (unsigned) Farbe 1: Blau (* 4 = 0-255)
...
1 byte integer (unsigned) Farbe m: Rot (* 4 = 0-255)
1 byte integer (unsigned) Farbe m: Grün (* 4 = 0-255)
1 byte integer (unsigned) Farbe m: Blau (* 4 = 0-255)

NVF Typ 0x02 und NVF Typ 0x04

Kompression mit gleicher Auflösung, gleiches Layout, Unterschied nur im Kompressionsalgorithmus: bei 0x02 Amiga PowerPack 2.0, bei 0x04 RLE.

1 byte integer (unsigned) NVF Typ Header: 3 bytes
2 byte integer (unsigned) Anzahl der Texturen (n)
2 byte integer (unsigned) Breite der Texturen Texturenblock: 4 bytes
2 byte integer (unsigned) Höhe der Texturen
4 byte integer (unsigned) Kompressionsgröße 1 Kompressionsblock: n * 4 bytes
...
4 byte integer (unsigned) Kompressionsgröße n
Kompressionsgröße #1 bytes Pixeldaten 1 Pixeldatenblock: variabel
...
Kompressionsgröße #n bytes Pixeldaten n
2 byte integer (unsigned) Anzahl der Farben (m) Palettengröße: 2 bytes
1 byte integer (unsigned) Farbe 1: Rot (* 4 = 0-255) Palette: m * 3 bytes
1 byte integer (unsigned) Farbe 1: Grün (* 4 = 0-255)
1 byte integer (unsigned) Farbe 1: Blau (* 4 = 0-255)
...
1 byte integer (unsigned) Farbe m: Rot (* 4 = 0-255)
1 byte integer (unsigned) Farbe m: Grün (* 4 = 0-255)
1 byte integer (unsigned) Farbe m: Blau (* 4 = 0-255)

NVF Typ 0x03 und NVF Typ 0x05

Kompression mit unterschiedlicher Auflösung, gleiches Layout, Unterschied nur im Kompressionsalgorithmus: bei 0x03 Amiga PowerPack 2.0, bei 0x05 RLE.

1 byte integer (unsigned) NVF Typ Header: 3 bytes
2 byte integer (unsigned) Anzahl der Texturen (n)
2 byte integer (unsigned) Textur 1: Breite Texturenblock: n * 8 bytes
2 byte integer (unsigned) Textur 1: Höhe
4 byte integer (unsigned) Textur 1: Kompressionsgröße
...
2 byte integer (unsigned) Textur n: Breite
2 byte integer (unsigned) Textur n: Höhe
4 byte integer (unsigned) Textur n: Kompressionsgröße
Textur #1 Kompressionsgröße bytes Pixeldaten 1 Pixeldatenblock: variabel
...
Textur #n Kompressionsgröße bytes Pixeldaten n
2 byte integer (unsigned) Anzahl der Farben (m) Palettengröße: 2 bytes
1 byte integer (unsigned) Farbe 1: Rot (* 4 = 0-255) Palette: m * 3 bytes
1 byte integer (unsigned) Farbe 1: Grün (* 4 = 0-255)
1 byte integer (unsigned) Farbe 1: Blau (* 4 = 0-255)
...
1 byte integer (unsigned) Farbe m: Rot (* 4 = 0-255)
1 byte integer (unsigned) Farbe m: Grün (* 4 = 0-255)
1 byte integer (unsigned) Farbe m: Blau (* 4 = 0-255)

Kompression

Amiga PowerPack 2.0

Beliebter Kompressions-Standard aus der Zeit der Commodore Amiga Computer. Identifiziert wird dieser Archiv-Typ von vielen Programmen über die ersten vier (Magic)Bytes ("PP20") die in den Daten der Nordlandtrilogie nicht immer intakt sind!

RLE

Simple Lauflängenkodierung bei der sich wiederholende Bytewerte in drei Byte zusammengefasst werden.

1 byte integer RLE Identifikationsbyte (= 0x7F)
1 byte integer (unsigned) Anzahl der Wiederholungen
1 byte integer zu wiederholender Byteinhalt

Besonderheiten

Unvollständige NVFs

Nicht alle NVF Dateien sind vollständig, gerade bei Die Schicksalsklinge fehlen häufiger der NVF Header und/oder die Palette!

Vergleicht man die Dateigröße mit dem Offset an dem der Anzahl der Farben erwartet wird kann man bei Gleichheit feststellen, dass sich keine Farbpalette mehr am Ende der Datei befindet.

Die Schicksalsklinge

NVF Typ 0x02 verwendet von

Gen.exe
mit Palette: FANPRO.NVF
ohne Palette: GENTIT.DAT, DSALOGO.DAT, HEADS.DAT
Schickm.exe
mit Palette: OUTRO1.NVF, OUTRO2.NVF, OUTRO3.NVF
ohne Palette: COMPASS, GGSTS.NVF, TEMPICON, WEAPONS.NVF
NVF Typ 0x03 verwendet von
Gen.exe
mit Palette: none
ohne Palette: ATTIC
Schickm.exe
mit Palette: SKARTE.NVF
ohne Palette: FIGHTOBJ.NVF, OBJECTS.NVF, SPELLOBJ.NVF
NVF Typ 0x04 verwendet von
Gen.exe
mit Palette: none
ohne Palette: none
Schickm.exe
mit Palette: HYGBACK.NVF
ohne Palette: SPLASHES.DAT
NVF Typ 0x05 verwendet von
Gen.exe
mit Palette: none
ohne Palette: none
Schickm.exe
mit Palette: FACE.NVF, GUERTEL.NVF, HYGGELIK.NVF, LTURM.NVF, FACE.NVF, MARBLESL.NVF, SHIPSL.NVF, STONESL.NVF, TDIVERSE.NVF, TFLOOR1.NVF, TFLOOR2.NVF
ohne Palette: FINGER.NVF, HOUSE1.NVF, HOUSE2.NVF, HOUSE3.NVF, HOUSE4.NVF

NVF ohne Header

Achtung: Der NVF Header fehlt in diesen Dateien!

SCHICK.DAT: SKULL.NVF (1x 320x200 Pixel, 64 Farben), KARTE.DAT (1x 320x200 Pixel, 32 Farben)
DSAGEN.DAT: DZWERG.DAT (1x 128x184 Pixel, 32 Farben), DTHORWAL.DAT (1x 128x184 Pixel, 32 Farben), DSTREUNE.DAT (1x 128x184 Pixel, 32 Farben), DMENGE.DAT (1x 128x184 Pixel, 32 Farben), DMAGIER.DAT (1x 128x184 Pixel, 32 Farben), DKRIEGER.DAT (1x 128x184 Pixel, 32 Farben), DDRUIDE.DAT (1x 128x184 Pixel, 32 Farben), DAELF.DAT (1x 128x184 Pixel, 32 Farben), DFELF.DAT (1x 128x184 Pixel, 32 Farben), DWELF.DAT (1x 128x184 Pixel, 32 Farben), DGAUKLER.DAT (1x 128x184 Pixel, 32 Farben), DHEXE.DAT (1x 128x184 Pixel, 32 Farben), DJAEGER.DAT (1x 128x184 Pixel, 32 Farben)

Sternenschweif

Schatten über Riva

Bildinhalte

Die Schicksalsklinge

IN_HEADS.NVF

Diese enthält die anderen Portraits im Spiel. Jeweils 1024 Byte umfassen ein Portrait.

Die benutzte Palette#1.
Achtung: Der NVF Header sowie die Palette fehlen in dieser Datei, sie enthält 71 32*32 Bilder.
Aus dem Spiel heraus hat das erste Bild die Nummer 0.
Alle Diskettenversionen haben nur 64 Bilder (0x00-0x3f).

00. Wache (Zwingfeste) / Wache (Daspota, Haus der Kapitäne)
01. Abenteuerin (Daspotaschatz) / Wache (Daspota)
02. Wache (Daspota)
03. Alrik Derondan / Tischler (Daspota)
04. Straßenhändler / Hjore der Schäfer / Räuber (Felsteyn-Orkanger) / Spieler (Daspota) 
05. unbekannt (graue Kapuze)
06. Tempeldiener im Tempel des Güldenen
07. unbekannt (braune Robe, glühende Augen)
08. Ektor Gremob
09. Jäger (Vilnheim-Phexcaer) / Lagerhalter (Daspota)
10. Jäger (Varnheim-Daspota) / Barkeeper
11. Händler / Schmied / Hafenmeister / Schmied Daspota
12. Sturmbringer-Frau / Olimone / Käsetoast-Frau / Phex-Geweihte
13. Mann im Zeughaus / Kartenzeichner (Daspota)
14. Dramosch / Wirt (Daspota)
15. Segelmacher (Daspota)
16. Angestellter im Bankhaus von Stover Stoerrebrandt / Herbergswirt
17. Schäfer (Ljasdahl) / Pirat (Daspota)
18. Haken-Hugo (Daspota)
19. Tätowierer (Daspota)
20. Nariell
21. Ardora von Greifenfurt
22. Harika
23. Garsvik Thorfinsson
24. Erwo von Gollbrinck
25. Curian
26. Jurge Torfinsson
27. Hjore Ahrensson
28. Yasma Thinmarsdotter
29. Umbrik Siebenstein
30. Isleif Olgardsson
31. Ragna Firunjasdotter
32. Beorn Hjallasson
33. Asgrimm Thurboldsson
34. Eliane Windenbek
35. Olvir Gundridsson
36. Swafnild Egilsdotter
37. Treborn Kolberg
38. Das Einhorn
39. Algrid Trondesdotter
40. Tiomar Swafnildsson
41. Totenschädel
42. Ronja Avelljasdotter / Sonya (Daspota) / Hure (Daspota) / Fuhrfrau
43. Bettler / Einsiedler / Betrunkener (Daspota)
44. Ork
45. Das Schwarze Auge
46. Flößer in Not
47. Kutsche
48. Klein Alrik
49. Wegelagerer (Felsteyn-Orkanger) / Räuber (Phexcaer-Vilnheim)
50. Schwarzer Berg
51. Beginn des Orklandes
52. umgestürzter Baum
53. Brücke (Auplog-Varnheim; Breida-Tjoila; Orvil-Rovik)
54. Höhleneingang
55. toter Wanderer (Felsteyn-Orkanger; Nordvest-Rovamund)
56. Reiter
57. Berg (Dracheneiche)
58. Drache / Riesenlindwurm
59. Hebel in Wand
60. Skelett an Wand (Mine in Prem)
61. Hetmann Tronde Torbensson
62. Hetmann Hyggelik der Große
63. Janda / alte Frau
64. Thorwaler (später SC)
65. Gauklerin (später SC)
66. Krieger (später SC)
67. Jäger (später SC)
68. Dicker Mann
69. ängstliche Frau
70. Frau hinter Tür
Bei den Nummern 05, 07, 50 und 59 ist mir der Ort des Auftretens im Spiel unbekannt.--Kunar 22:40, 3. Okt 2007 (CEST)

Sternenschweif

Schatten über Riva

Links

Kategorie:DSA1Kategorie:DSA2Kategorie:DSA3Kategorie:Bildformat
Clone this wiki locally