BOB
Animations- und Vollbildformat.
Das alte Format wird in DSA1 und teilweise in DSA2 in Dateien mit den Namen *.BOB benutzt.
Header | 4 Byte Integer (unsigned) | Hauptbild-Pixeldaten-Offset |
4 Byte Integer (unsigned) | Farbpaletten-Offset | |
2 Byte Integer (unsigned) | Hauptbild-Breite | |
1 Byte Integer (unsigned) | Hauptbild-Höhe | |
1 Byte Integer (unsigned) | Anzahl der Animationssequenzen (= a) | |
(a × 4) Byte Integer (unsigned) | Offsets der Animationssequenz-Definitionen | |
(a×) Animationssequenz-Definitionen | 4 Byte Charakter-Array | Name der Animationssequenz |
2 Byte Integer (unsigned) | x-Offset der Animationssequenz im Hauptbild | |
1 Byte Integer (unsigned) | y-Offset der Animationssequenz im Hauptbild | |
1 Byte Integer (unsigned) | Höhe der Einzelbilder dieser Animationssequenz | |
1 Byte Integer (unsigned) | Breite der Einzelbilder dieser Animationssequenz | |
2 Byte | unbekannt | |
1 Byte Integer (unsigned) | Anzahl der Einzelbilder in dieser Animationssequenz (= b) | |
(b × 4) Byte Integer (unsigned) |
Offsets der Pixeldaten der Einzelbilder dieser Animationssequenz Offset an Stelle s = erstes Offset + (Höhe × Breite × s) oder alle Einträge sind gleich; dann befindet sich an diesem Offset ein PP20-Archiv mit den Pixeldaten aller Einzelbilder dieser Animationssequenz. |
|
variabel | unbekannt | |
Pixeldaten des Hauptbilds | variabel | Pixel-Farben-Index-Array (Höhe × Breite) oder ein PP20-Archiv hiervon |
(a×) Pixeldaten der Animationssequenzen | variabel | siehe oben |
Farbpalette Anzahl der Farben ( = f): (BOB-Dateigröße - (Farbpaletten-Offset+6)) / 3 |
6 Byte | unbekannt |
1 Byte Integer (unsigned) | Farbe #1: Rot (* 4 = 0-255) | |
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 #(f): Rot (* 4 = 0-255) | |
1 Byte Integer (unsigned) | Farbe #(f): Grün (* 4 = 0-255) | |
1 Byte Integer (unsigned) | Farbe #(f): Blau (* 4 = 0-255) |
00-02 | Signatur "BOB" |
03-04 | In allen Dateien 0x0101. ??Version?? |
05 | Anzahl der Teilanimationen |
06-07 | Unbekannt. Hat immer den Wert 0x010A. |
08-0F | Unbekannt Enthält immer 0x00, bis auf SMAGIER.BOB. |
Die Daten sind "interleaved" angegeben, also immer für jeweils alle Teilanimationen ein Datum, dann das nächste Byte u.s.w.
00 | Länge der Animationssequenz?, mit 4 Bytes multiplizieren. |
01 | dito. Steht (immer? meist?) das selbe wie in Byte 1. |
02 | Unbekannt. |
03 | Unbekannt. |
Es geht also nach 0x10+4*([:05]+2) Bytes weiter (evtl. auch schon früher, wenn die +2 in Wirklichkeit +1 sind und die 4 Bytes davor schon zum Teilanimations-Miniheader gehören).
... noch unbekannt ...
00-01 | Breite des Bildes |
02-03 | Höhe des Bildes |
04-05 | Läuflänge für die folgenden Daten? (=$LL) |
4*($LL+1) | Unbekannte Daten. |
00-03 | Name |
04 | x-Offset des Teilbildes zum Hauptbild |
05 | Unbekannt (meist/immer? 0x00) |
06 | y-Offset des Teilbildes zum Hauptbild |
07 | Höhe (Achtung, Reihenfolge) |
08 | Breite |
09-0A | Unbekannt (meist/immer? 0x0000) |
0B | Anzahl Einzelbilder (=$EB) |
$EB*4 | Unbekannt. Irgendwelche DWords mit XY00-Schema. |
+2 | Anzahl der folgenden Words/2 (=$UB), d.h. ab hier noch 4*$UB Bytes. |
+2-4*$UB | ? Folgen von je 2 Words. Meist 2. Wert 0, 1. Wert niedrig. Selten niedrige Werte im 2. Byte. |
Dann folgen die Daten, immer hintereinander ohne Pause.
6-Bit-Palette für 256 Farben. Bei manchen Bildern sind die obersten zwei Bits gesetzt, was gefiltert werden muss. Mit (c & 0x3f) * 4 filtert man den korrekten Anteil aus dem jeweiligen Byte und multipliziert es sauber auf 0-255 hoch.
Das ANIS-Archiv enthält mehrere BOB-Animationdateien (extrahierbar durch die Offsettabelle ANIS.TAB), welche im Bildfenster des Hauptbildschirms angezeigt werden. Jede Animation besteht aus einem 208x135 großen Hauptbild und 0 bis n beweglichen Elementen. Ein bewegliches Element hat mindestens ein kleineres Bild welches in zeitlichen Perioden auf das Hauptbild kopiert wird.
Index im ANIS-Archiv |
Bild |
00 | Ödland |
01 | Camp Wildnis |
02 | Tempel |
03 | Herbergsvater |
04 | Schmied |
05 | Hafen |
06 | Furt |
07 | Hütte (Einsiedler, Berghütte) |
08 | Blick vom Schiff aufs Meer (Piratenangriff) |
09 | Haus in Stadt (Einbrechen) |
10 | Schlossruine (Hyggelik) |
11 | Herberge (unterwegs) |
12 | Taverne (am Tisch) |
13 | Krämerstand |
14 | Waffenhändler |
15 | Markt |
16 | Geisterschiff |
17 | Geisterschiff im Strudel |
18 | Bauernhof (wurde im Spiel nicht verwendet) |
19 | Hausbewohner |
20 | Karenherde (Jagd) |
21 | Kräuterfrau |
22 | Heiler |
23 | Bordell |
24 | Keilerherde (Jagd) |
25 | Tempel des Namenlosen |
26 | Taverne (Überblick) |
27 | Greif |
28 | Bisons (Jagd) |
29 | Schlange (wurde im Spiel nicht verwendet) |
30 | Krakenangriff |
31 | Bär in Höhle |
32 | Nashorn (Jagd) |
33 | Dungeoneingang (Prem, Oberorken) |
34 | Orkangriff auf Thorwal (Gameover) |
35 | Camp (ind Städten, nur in der CD-Version) |
Datei | Bild |
BROTHEL.BOB | Bordell |
CAMP3.BOB | Camp, 3 Leute mit Fackel |
CAMP4.BOB | Camp, Magier mit Flim Flam |
DEPOT1.BOB | Depot, Mann mit gutem Erscheinungsbild |
DEPOT2.BOB | Depot, Mann mit zerfetztem Auge |
DEPOT3.BOB | Depot, Mann mit fleckigem Gesicht |
GETOFF_2.BOB | Bewohnerin mit Amulett |
GETOFF_3.BOB | Bewohner mit Irokesenfrisur |
GETOFF_4.BOB | Bewohner mit Glatze |
GSHOP_M.BOB | Gemischtwarenladen (Herb Shop) mit Verkäufer |
HEALER.BOB | Heiler |
HEALERES.BOB | Heilerin |
HSHOP_M.BOB | Kräuterladen (Herb Shop) mit Verkäufer |
INN_F.BOB | Herberge mit Wirtin |
SMITH_F.BOB | Schmiedin |
TAVERN.BOB | Taverne, z.B. "Liebliche Au" |
TAVERN_2.BOB | Taverne, z.B. "Peraines Tisch" |
TEMPLE.BOB | Tempel mit weiblichem Priester |
TEMPLE_M.BOB | Tempel mit männlichem Priester |
WSHOP_F.BOB | Waffenladen mit Verkäuferin |
WSHOP_M.BOB | Waffenladen mit Verkäufer |
Datei | Bild |
ALATZ1.BOB | Dialog mit Sudran Alatzer |
BSTR_FIR.BOB | Bannstrahler, mit Feuer |
BSTR_NO.BOB | Bannstrahler, ohne Feuer |
CAMP1.BOB | Camp, mit Laute, vier Männer |
CAMP2.BOB | Camp, zwei Frauen, zwei Männer |
ELSUR1.BOB | Dialog mit Elsurion Strnlicht |
GETOFF_1.BOB | Bewohnerin mit Kopftuch |
GSHOP_F.BOB | Gemischtwarenhändlerin |
HSHOP_F.BOB | Kräuterhändlerin |
INN.BOB | Herberge mit Wirt |
PHEXFIN.BOB | |
SMAGIER.BOB | |
SMITH.BOB | Schmied |
SPIDER.BOB | Spinne |
Datei | Bild |
ADRAN.BOB | |
AHREN.BOB | |
ALKER.BOB | |
ANDRA.BOB | |
ARDO.BOB | |
ARDOR.BOB | |
ARIANA.BOB | |
BELONA.BOB | |
BERNA.BOB | |
BOOTS.BOB | |
BORONIAN.BOB | |
BOSPER.BOB | |
BRAND.BOB | |
BURIAN.BOB | |
CAMP01.BOB | |
CAMP02.BOB | |
CAYA.BOB | |
CHARINJE.BOB | |
CYBER.BOB | |
DARIAN.BOB | |
DASWADAN.BOB | |
DESMODA.BOB | |
DHANA.BOB | |
DIMELOE.BOB | |
ELAJA.BOB | |
ELEANA.BOB | |
ELIMAR.BOB | |
ELYA.BOB | |
ERAION.BOB | |
FAHRA.BOB | |
FARFEX.BOB | |
FEYARIA.BOB | |
FRAU1.BOB | |
FRAU2.BOB | |
FRAU3.BOB | |
FRAU4.BOB | |
GERNOT.BOB | |
GORM.BOB | |
GRIMOR.BOB | |
HAFFEL.BOB | |
HEADQUAR.BOB | |
IDRA.BOB | |
IMION.BOB | |
ISCHTAN.BOB | |
ISIDA.BOB | |
JETTE.BOB | |
JISILA.BOB | |
JURGE.BOB | |
KALMAN.BOB | |
LANA.BOB | |
LETA.BOB | |
LINAI.BOB | |
LISKA.BOB | |
MAHERBS.BOB | |
MALMODIR.BOB | |
MANN1.BOB | |
MANN2.BOB | |
MANN3.BOB | |
MANN4.BOB | |
MAREN.BOB | |
MASHOP.BOB | |
MAWEAPON.BOB | |
MIRROR.BOB | |
MOVERT.BOB | |
NORAT.BOB | |
ORDO.BOB | |
PATRAS.BOB | |
PRYSHIA.BOB | |
QUENYA.BOB | |
RAHJANE.BOB | |
RANK.BOB | |
ROBAK.BOB | |
SALIX.BOB | |
SAVIHAR.BOB | |
SINA.BOB | |
STORANIO.BOB | |
SUSA.BOB | |
TANIT.BOB | |
TARIK.BOB | |
TARSINIO.BOB | |
THORGRIM.BOB | |
TILSA.BOB | |
VORLOP.BOB | |
WINA.BOB | |
WOLFMAN.BOB | |
WULF.BOB | |
XEBBERT.BOB | |
YASMIR.BOB | |
YETO.BOB | |
ZYLA.BOB | |
YETO.BOB | |
ZYLA.BOB |
Kategorie:DSA1Kategorie:DSA2Kategorie:DSA3Kategorie:Bildformat