From 8e77643bb4e89a19eeb2d577145f99b1e11c8612 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Mon, 21 Jan 2013 13:12:53 -0500 Subject: [PATCH] snes: pcx_to_tiles_4bpp clean up code, add command line argument for label name --- .../{sprites_pal0.pcx => level1_pal0.pcx} | Bin tb_snes/tools/pcx_to_tiles_4bpp.c | 93 +++++++----------- 2 files changed, 36 insertions(+), 57 deletions(-) rename tb_snes/graphics/{sprites_pal0.pcx => level1_pal0.pcx} (100%) diff --git a/tb_snes/graphics/sprites_pal0.pcx b/tb_snes/graphics/level1_pal0.pcx similarity index 100% rename from tb_snes/graphics/sprites_pal0.pcx rename to tb_snes/graphics/level1_pal0.pcx diff --git a/tb_snes/tools/pcx_to_tiles_4bpp.c b/tb_snes/tools/pcx_to_tiles_4bpp.c index c1ac105..d27458c 100644 --- a/tb_snes/tools/pcx_to_tiles_4bpp.c +++ b/tb_snes/tools/pcx_to_tiles_4bpp.c @@ -7,22 +7,24 @@ #include /* for file modes */ #include /* exit() */ +char label_prefix[BUFSIZ]="tile"; + /* Convert to 15-bpp bgr */ -int rgb2bgr(int r,int g, int b) { +static int rgb2bgr(int r,int g, int b) { int r2,g2,b2,bgr; r2=(r>>3)&0x1f; g2=(g>>3)&0x1f; b2=(b>>3)&0x1f; - + bgr=(b2<<10)|(g2<<5)|r2; - + return bgr; } -int vmwLoadPCX(int pcx_fd) { - +static int vmwLoadPCX(int pcx_fd) { + int debug=1,bpp; int x,y; int i,numacross,planes=0; @@ -30,36 +32,28 @@ int vmwLoadPCX(int pcx_fd) { int xmin,ymin,xmax,ymax,version; unsigned char pcx_header[128]; unsigned char temp_byte; - - /* Open the file */ - // pcx_fd=open(filename,O_RDONLY); - - //if (pcx_fd<0) { - // printf("ERROR! File \"%s\" not found!\n",filename); - // return -1; - // } - + /*************** DECODE THE HEADER *************************/ - + // lseek(pcx_fd,0,SEEK_SET); - + read(pcx_fd,&pcx_header,128); - + xmin=(pcx_header[5]<<8)+pcx_header[4]; ymin=(pcx_header[7]<<8)+pcx_header[6]; - + xmax=(pcx_header[9]<<8)+pcx_header[8]; ymax=(pcx_header[11]<<8)+pcx_header[10]; version=pcx_header[1]; bpp=pcx_header[3]; - + if (debug) { - + fprintf(stderr,"Manufacturer: "); if (pcx_header[0]==10) fprintf(stderr,"Zsoft\n"); else fprintf(stderr,"Unknown %i\n",pcx_header[0]); - + fprintf(stderr,"Version: "); switch(version) { @@ -73,19 +67,19 @@ int vmwLoadPCX(int pcx_fd) { fprintf(stderr,"Encoding: "); if (pcx_header[2]==1) fprintf(stderr,"RLE\n"); else fprintf(stderr,"Unknown %i\n",pcx_header[2]); - + fprintf(stderr,"BitsPerPixelPerPlane: %i\n",bpp); fprintf(stderr,"File goes from %i,%i to %i,%i\n",xmin,ymin,xmax,ymax); - + fprintf(stderr,"Horizontal DPI: %i\n",(pcx_header[13]<<8)+pcx_header[12]); fprintf(stderr,"Vertical DPI: %i\n",(pcx_header[15]<<8)+pcx_header[14]); - + fprintf(stderr,"Number of colored planes: %i\n",pcx_header[65]); fprintf(stderr,"Bytes per line: %i\n",(pcx_header[67]<<8)+pcx_header[66]); fprintf(stderr,"Palette Type: %i\n",(pcx_header[69]<<8)+pcx_header[68]); fprintf(stderr,"Hscreen Size: %i\n",(pcx_header[71]<<8)+pcx_header[70]); fprintf(stderr,"Vscreen Size: %i\n",(pcx_header[73]<<8)+pcx_header[72]); - + } planes=pcx_header[65]; @@ -97,15 +91,15 @@ int vmwLoadPCX(int pcx_fd) { ysize=((ymax-ymin)+1); char *output; - + output=calloc((xsize*ysize),sizeof(unsigned int)); if (output==NULL) return -1; x=0; y=0; - while(y>1); } printf("\t.word $%02x%02x\n",plane1,plane0); } - + printf("\t; Plane 2 Plane 3\n"); for(y=0;y