rendered paste body#include <stdio.h>
int usage() {
printf("Usage: dmc2raw in.dmc out.raw");
return 1;
}
int main(int argc, char *argv[]) {
FILE *in,*out;
int counter=32;
int c;
if(argc < 3) return usage();
in=fopen(argv[1],"rb");
out=fopen(argv[2],"wb");
if(!in || !out) return 1;
while( (c=getc(in)) != EOF ) {
int bit=8;
c &= 0xFF;
while(bit--) {
if(!(c&1) && counter > 0) counter--;
if((c&1) && counter < 63) counter++;
fputc( (counter*4) & 0xFF, out);
c >>= 1;
}
}
fclose(in);
fclose(out);
return 0;
}