Zitat von Cherry
Alle Datendateien sind gleich aufgebaut.
Zuerst kommt ein Identifizierungsstring: ein Byte Länge und dann die Stringdaten.
Bei den Maps ist das 0x0A,'LcfMapUnit', beim Map Tree 0x0A,'LcfMapTree', bei der Datenbank 0x0B,'LcfDataBase' und bei den Saves 0x0B,'LcfSaveData'. "Lcf" steht übrigens für "Lucifer", den Nick eines der Programmierer des RM2k.
Danach folgen schon die Daten: verpackt in einzelne "Datenfelder" (Blöcke). Diese bestehen aus einer ID, einer Längenangabe und dann dem Inhalt (alles BERs).
Beispiel (Anfang einer Map):
0A 4C 63 66 4D 61 70 55 6E 69 74 0B 01 00 47 84 58 FB 13 28 00 08 00 00 ...
Zuerst der Identifizierungsstring (0A 4C ... 74), dann der erste Block: ID 0x0B (Looping), Länge 1, Inhalt "00" (kein Loop). Dann der zweite Block: ID 0x47 (Lower Layer) Länge 600 (84 58 -> 4*128 + 88), Inhalt "FB 13 28 ...".
Das geht dann immer so weiter, wobei ein Block auch Unterblöcke enthalten kann. Die enden dann mit immer mit einem Null-Byte.
...