public byte[] GetRawData()
{
MemoryStream memoryStream = new MemoryStream();
BinaryWriter binaryWriter = new BinaryWriter(memoryStream);
NibbleWriter nibbleWriter = new NibbleWriter(binaryWriter);
nibbleWriter.WriteString(Title, 42);
Author.Write(nibbleWriter);
ColorPalette.Write(nibbleWriter);
nibbleWriter.WriteByte(0x00);
nibbleWriter.WriteByte(0x0A);
nibbleWriter.WriteByte((byte)Type);
nibbleWriter.WriteByte(0x00);
nibbleWriter.WriteByte(0x00);
for (int j = 0; j < Data.GetLength(1); j++)
for (int i = 0; i < Data.GetLength(0); i += 2)
{
nibbleWriter.WriteNibble(Data[i + 1, j]);
nibbleWriter.WriteNibble(Data[i, j]);
}
byte[] result = memoryStream.ToArray();
memoryStream.Close();
return result;
}