Exemplo n.º 1
0
        public void Decode(Stream input, Stream output)
        {
            var compressionHeader = new byte[4];

            input.Read(compressionHeader, 0, 4);
            if (compressionHeader[0] != 0x10)
            {
                throw new InvalidCompressionException("Nintendo Lz10");
            }

            var decompressedSize = compressionHeader[1] | (compressionHeader[2] << 8) | (compressionHeader[3] << 16);

            _decoder.Decode(input, output, decompressedSize);
        }
Exemplo n.º 2
0
        public void Decode(Stream input, Stream output)
        {
            var compressionHeader = new byte[4];

            input.Read(compressionHeader, 0, 4);
            if ((compressionHeader[0] & 0x7) != 0x1)
            {
                throw new InvalidCompressionException("Level5 Lz10");
            }

            var decompressedSize = (compressionHeader[0] >> 3) | (compressionHeader[1] << 5) |
                                   (compressionHeader[2] << 13) | (compressionHeader[3] << 21);

            _decoder.Decode(input, output, decompressedSize);
        }
Exemplo n.º 3
0
        public void Decode(Stream input, Stream output)
        {
            var compressionHeader = new byte[4];

            input.Read(compressionHeader, 0, 4);
            if (compressionHeader[0] != 0x53 ||
                compressionHeader[1] != 0x53 ||
                compressionHeader[2] != 0x5A ||
                compressionHeader[3] != 0x4C)   // "SSZL"
            {
                throw new InvalidCompressionException("Lzss");
            }

            input.Position = 0xC;
            var decompressedSizeBuffer = new byte[4];

            input.Read(decompressedSizeBuffer, 0, 4);
            var decompressedSize = decompressedSizeBuffer[0] | (decompressedSizeBuffer[1] << 8) | (decompressedSizeBuffer[2] << 16) | (decompressedSizeBuffer[3] << 24);

            _decoder.Decode(input, output, decompressedSize);
        }