X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=video.c;h=b4e137f785a3fbca4493e8ab1460881d289c91b0;hp=5ab1bc9e1996abd8074ecd5bcb3536196234d88e;hb=3ee0ae39373065c2afa6ddd823a0f667d5875d8a;hpb=c62d28102c77e19c291c78bf6bf7f0a81abd54b9 diff --git a/video.c b/video.c index 5ab1bc9..b4e137f 100644 --- a/video.c +++ b/video.c @@ -30,6 +30,9 @@ #include #include #include +#ifdef GP2X +#include +#endif #include "types.h" #include "video.h" @@ -43,20 +46,18 @@ uint8 *XBuf=NULL; int InitVirtualVideo(void) { - uint32 m; - if(!XBuf) /* Some driver code may allocate XBuf externally. */ - if(!(XBuf = (uint8*) (FCEU_malloc((256+16) * 240 + 8)))) + if(!(XBuf = (uint8*) (FCEU_malloc(320 * 240)))) return 0; - +/* if(sizeof(uint8*)==4) { m=(uint32) XBuf; m+=8;m&=0xFFFFFFF8; - (uint32)XBuf=m; - } - - memset(XBuf,128,272*240); + XBuf=(uint8 *)m; + } +*/ + memset(XBuf,0,320*240); return 1; } @@ -116,7 +117,7 @@ int SaveSnapshot(void) fputc(b,pp); } fclose(pp); - + return u+1; } @@ -145,7 +146,7 @@ static int WritePNGChunk(FILE *fp, uint32 size, char *type, uint8 *data) if(fwrite(data,1,size,fp)!=size) return 0; - crc=CalcCRC32(0,type,4); + crc=CalcCRC32(0,(uint8 *)type,4); if(size) crc=CalcCRC32(crc,data,size); @@ -166,7 +167,7 @@ int SaveSnapshot(void) int x,u,y; FILE *pp=NULL; uint8 *compmem=NULL; - uint32 compmemsize=totallines*263+12; + unsigned long compmemsize=totallines*263+12; if(!(compmem=FCEU_malloc(compmemsize))) return 0; @@ -207,9 +208,12 @@ int SaveSnapshot(void) { char pdata[256*3]; + + //void FCEUD_GetPalette(uint8 i,uint8 *r, unsigned char *g, unsigned char *b); for(x=0;x<256;x++) - FCEUD_GetPalette(x,pdata+x*3,pdata+x*3+1,pdata+x*3+2); - if(!WritePNGChunk(pp,256*3,"PLTE",pdata)) + FCEUD_GetPalette(x,(uint8*)(pdata+x*3),(unsigned char*)(pdata+x*3+1),(unsigned char*)(pdata+x*3+2)); + // static int WritePNGChunk(FILE *fp, uint32 size, char *type, uint8 *data) + if(!WritePNGChunk(pp,256*3,"PLTE",(uint8 *)pdata)) goto PNGerr; } @@ -228,7 +232,7 @@ int SaveSnapshot(void) *dest=0; // No filter. dest++; for(x=256;x;x--,tmp++,dest++) - *dest=*tmp; + *dest=*tmp; tmp+=16; } @@ -246,6 +250,9 @@ int SaveSnapshot(void) free(compmem); fclose(pp); +#ifdef GP2X + sync(); +#endif return u+1;