diff --git a/desmume/src/OGLRender.cpp b/desmume/src/OGLRender.cpp index 227e24260..2b7d69775 100644 --- a/desmume/src/OGLRender.cpp +++ b/desmume/src/OGLRender.cpp @@ -1106,9 +1106,9 @@ static void GetLine (int line, u16* dst) g = (g*a + oldg*(255-a)) >> 8; b = (b*a + oldb*(255-a)) >> 8; - r=std::min(255ul,r); - g=std::min(255ul,g); - b=std::min(255ul,b); + r=std::min((u32)255,r); + g=std::min((u32)255,g); + b=std::min((u32)255,b); //debug: display alpha channel //u32 r = screen3D[t+3]; diff --git a/desmume/src/saves.cpp b/desmume/src/saves.cpp index 07757f4d4..522d516e9 100644 --- a/desmume/src/saves.cpp +++ b/desmume/src/saves.cpp @@ -655,11 +655,15 @@ static bool savestate_save(std::ostream* outstream, int compressionLevel) int error = Z_OK; if(compressionLevel != Z_NO_COMPRESSION) { + uLongf comprlen2; //worst case compression. //zlib says "0.1% larger than sourceLen plus 12 bytes" comprlen = (len>>9)+12 + len; cbuf = new u8[comprlen]; - error = compress2(cbuf,&comprlen,(u8*)ms.buf(),len,compressionLevel); + /* Workaround to make it compile under linux 64bit */ + comprlen2 = comprlen; + error = compress2(cbuf,&comprlen2,(u8*)ms.buf(),len,compressionLevel); + comprlen = (u32)comprlen2; } #endif