Mirai's Miscellaneous Misadventures
M49 / core / packbits.c
#include <mimimi.h>
void mimimi_unpack_bits(int size, unsigned char *unpacked, unsigned char *packed)
{
int i, j, k, n;
i = 0;
j = 0;
while (j < size)
{
n = packed[i++];
if (n == 128) continue;
if (n > 128) n -= 256;
if (n > 0)
{
for (k = 0 ; k <= n ; k++)
unpacked[j++] = packed[i++];
}
else
{
for (k = 0 ; k <= -n ; k++)
unpacked[j++] = packed[i];
i++;
}
}
}