opening TIC-80 sources
This commit is contained in:
72
tools/bin2txt/bin2txt.c
Normal file
72
tools/bin2txt/bin2txt.c
Normal file
@@ -0,0 +1,72 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
#include <zlib.h>
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
if(argc >= 3)
|
||||
{
|
||||
bool useZip = false;
|
||||
|
||||
if(argc == 4 && strcmp(argv[3], "-z") == 0) useZip = true;
|
||||
|
||||
FILE* bin = fopen(argv[1], "rb");
|
||||
|
||||
if(bin)
|
||||
{
|
||||
fseek(bin, 0, SEEK_END);
|
||||
int size = ftell(bin);
|
||||
fseek(bin, 0, SEEK_SET);
|
||||
|
||||
unsigned char* buffer = (unsigned char*)malloc(size);
|
||||
|
||||
if(buffer)
|
||||
{
|
||||
fread(buffer, size, 1, bin);
|
||||
fclose(bin);
|
||||
|
||||
if(useZip)
|
||||
{
|
||||
unsigned char* output = (unsigned char*)malloc(size);
|
||||
|
||||
if(output)
|
||||
{
|
||||
unsigned long sizeComp = size;
|
||||
if(compress2(output, &sizeComp, buffer, size, Z_BEST_COMPRESSION) != Z_OK)
|
||||
{
|
||||
printf("compression error\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
size = sizeComp;
|
||||
memcpy(buffer, output, size);
|
||||
}
|
||||
|
||||
free(output);
|
||||
}
|
||||
else printf("memory error :(\n");
|
||||
}
|
||||
|
||||
FILE* txt = fopen(argv[2], "wb");
|
||||
|
||||
if(txt)
|
||||
{
|
||||
for(int i = 0; i < size; i++)
|
||||
fprintf(txt, "0x%02x, ", buffer[i]);
|
||||
|
||||
fclose(txt);
|
||||
}
|
||||
else printf("cannot open bin file\n");
|
||||
|
||||
free(buffer);
|
||||
}
|
||||
|
||||
}
|
||||
else printf("cannot open bin file\n");
|
||||
}
|
||||
else printf("usage: bin2txt <bin> <txt>\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
18
tools/bin2txt/makefile
Normal file
18
tools/bin2txt/makefile
Normal file
@@ -0,0 +1,18 @@
|
||||
OPT=-O3 -Wall -std=c99
|
||||
SRC=bin2txt.c
|
||||
INCLUDE=-I../include/zlib
|
||||
LIB=-lz
|
||||
|
||||
all: windows
|
||||
|
||||
windows: $(SRC)
|
||||
gcc $(OPT) $(SRC) $(INCLUDE) -L../../lib/mingw $(LIB) -o bin2txt.exe
|
||||
|
||||
linux32: $(SRC)
|
||||
gcc $(OPT) $(SRC) $(INCLUDE) -L../../lib/linux32 $(LIB) -o bin2txt
|
||||
|
||||
linux64: $(SRC)
|
||||
gcc $(OPT) $(SRC) $(INCLUDE) -L../../lib/linux $(LIB) -o bin2txt
|
||||
|
||||
macosx: $(SRC)
|
||||
gcc $(OPT) $(SRC) $(INCLUDE) -L../../lib/macos $(LIB) -o bin2txt
|
||||
Reference in New Issue
Block a user