From 800769308430afb19f42bb642820c918e66bdea3 Mon Sep 17 00:00:00 2001 From: darkf Date: Sun, 30 Mar 2014 23:59:16 -0700 Subject: [PATCH 1/2] Add FindGLEW to CMake modules along with some compiler flags --- rpcs3/CMakeLists.txt | 3 +- rpcs3/cmake_modules/FindGLEW.cmake | 47 ++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 rpcs3/cmake_modules/FindGLEW.cmake diff --git a/rpcs3/CMakeLists.txt b/rpcs3/CMakeLists.txt index 6139e73436..9bece62c40 100644 --- a/rpcs3/CMakeLists.txt +++ b/rpcs3/CMakeLists.txt @@ -8,6 +8,7 @@ if (CMAKE_COMPILER_IS_GNUCXX) add_definitions(-w) # TODO: remove me add_definitions(-fpermissive) # TODO: remove me add_definitions(-g) # Debugging!! + add_definitions(-msse2) endif() set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules) @@ -59,5 +60,5 @@ ${CMAKE_SOURCE_DIR}/../Utilities/* add_executable(rpcs3 ${RPCS3_SRC}) -target_link_libraries(rpcs3 ${wxWidgets_LIBRARIES} ${OPENAL_LIBRARY} ${GLEW_LIBRARIES} ${OPENGL_LIBRARIES} libavformat.a libavcodec.a libavutil.a libswresample.a libswscale.a ${ZLIB_LIBRARIES}) +target_link_libraries(rpcs3 ${wxWidgets_LIBRARIES} ${OPENAL_LIBRARY} ${GLEW_LIBRARY} ${OPENGL_LIBRARIES} libavformat.a libavcodec.a libavutil.a libswresample.a libswscale.a ${ZLIB_LIBRARIES}) diff --git a/rpcs3/cmake_modules/FindGLEW.cmake b/rpcs3/cmake_modules/FindGLEW.cmake new file mode 100644 index 0000000000..c703bf1aa3 --- /dev/null +++ b/rpcs3/cmake_modules/FindGLEW.cmake @@ -0,0 +1,47 @@ +# +# Try to find GLEW library and include path. +# Once done this will define +# +# GLEW_FOUND +# GLEW_INCLUDE_PATH +# GLEW_LIBRARY +# + +IF (WIN32) + FIND_PATH( GLEW_INCLUDE_PATH GL/glew.h + $ENV{PROGRAMFILES}/GLEW/include + ${PROJECT_SOURCE_DIR}/src/nvgl/glew/include + DOC "The directory where GL/glew.h resides") + FIND_LIBRARY( GLEW_LIBRARY + NAMES glew GLEW glew32 glew32s + PATHS + $ENV{PROGRAMFILES}/GLEW/lib + ${PROJECT_SOURCE_DIR}/src/nvgl/glew/bin + ${PROJECT_SOURCE_DIR}/src/nvgl/glew/lib + DOC "The GLEW library") +ELSE (WIN32) + FIND_PATH( GLEW_INCLUDE_PATH GL/glew.h + /usr/include + /usr/local/include + /sw/include + /opt/local/include + DOC "The directory where GL/glew.h resides") + FIND_LIBRARY( GLEW_LIBRARY + NAMES GLEW glew + PATHS + /usr/lib64 + /usr/lib + /usr/local/lib64 + /usr/local/lib + /sw/lib + /opt/local/lib + DOC "The GLEW library") +ENDIF (WIN32) + +IF (GLEW_INCLUDE_PATH) + SET( GLEW_FOUND 1 CACHE STRING "Set to 1 if GLEW is found, 0 otherwise") +ELSE (GLEW_INCLUDE_PATH) + SET( GLEW_FOUND 0 CACHE STRING "Set to 1 if GLEW is found, 0 otherwise") +ENDIF (GLEW_INCLUDE_PATH) + +MARK_AS_ADVANCED( GLEW_FOUND ) \ No newline at end of file From 61d0e4ee54de3fb9c122eb8dad6dcefed092e504 Mon Sep 17 00:00:00 2001 From: darkf Date: Mon, 31 Mar 2014 00:55:27 -0700 Subject: [PATCH 2/2] Rename xor to xor_ to allow build to continue in compliant compilers --- rpcs3/Crypto/unedat.cpp | 6 +++--- rpcs3/Crypto/utils.cpp | 4 ++-- rpcs3/Crypto/utils.h | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/rpcs3/Crypto/unedat.cpp b/rpcs3/Crypto/unedat.cpp index 03dddf89ce..65641919cb 100644 --- a/rpcs3/Crypto/unedat.cpp +++ b/rpcs3/Crypto/unedat.cpp @@ -457,7 +457,7 @@ void validate_data(const char* file_name, unsigned char *klicensee, NPD_HEADER * else { // Generate klicensee xor key. - xor(key, klicensee, NP_OMAC_KEY_2, 0x10); + xor_(key, klicensee, NP_OMAC_KEY_2, 0x10); // Hash with generated key and compare with dev_hash. dev_hash_result = cmac_hash_compare(key, 0x10, (unsigned char *)npd, 0x60, npd->dev_hash); @@ -529,7 +529,7 @@ bool extract_data(wxFile *input, wxFile *output, const char* input_file_name, un if((EDAT->flags & SDAT_FLAG) == SDAT_FLAG) { ConLog.Warning("EDAT: SDAT detected!\n"); - xor(key, NPD->dev_hash, SDAT_KEY, 0x10); + xor_(key, NPD->dev_hash, SDAT_KEY, 0x10); } else { @@ -670,4 +670,4 @@ int DecryptEDAT(const std::string& input_file_name, const std::string& output_fi input.Close(); output.Close(); return 0; -} \ No newline at end of file +} diff --git a/rpcs3/Crypto/utils.cpp b/rpcs3/Crypto/utils.cpp index 5df31b17e7..13eb434d89 100644 --- a/rpcs3/Crypto/utils.cpp +++ b/rpcs3/Crypto/utils.cpp @@ -20,7 +20,7 @@ u64 swap64(u64 i) ((i & 0x00ff000000000000) >> 40) | ((i & 0xff00000000000000) >> 56); } -void xor(unsigned char *dest, unsigned char *src1, unsigned char *src2, int size) +void xor_(unsigned char *dest, unsigned char *src1, unsigned char *src2, int size) { int i; for(i = 0; i < size; i++) @@ -744,4 +744,4 @@ int lz_decompress(unsigned char *out, unsigned char *in, unsigned int size) delete[] tmp; return result; -} \ No newline at end of file +} diff --git a/rpcs3/Crypto/utils.h b/rpcs3/Crypto/utils.h index 51bc56eba3..0d9e5eed2c 100644 --- a/rpcs3/Crypto/utils.h +++ b/rpcs3/Crypto/utils.h @@ -6,7 +6,7 @@ u16 swap16(u16 i); u32 swap32(u32 i); u64 swap64(u64 i); -void xor(unsigned char *dest, unsigned char *src1, unsigned char *src2, int size); +void xor_(unsigned char *dest, unsigned char *src1, unsigned char *src2, int size); // Hex string conversion auxiliary functions. u64 hex_to_u64(const char* hex_str); @@ -19,4 +19,4 @@ bool hmac_hash_compare(unsigned char *key, int key_len, unsigned char *in, int i bool cmac_hash_compare(unsigned char *key, int key_len, unsigned char *in, int in_len, unsigned char *hash); // Reverse-engineered custom Lempel–Ziv–Markov based compression (unknown variant of LZRC). -int lz_decompress(unsigned char *out, unsigned char *in, unsigned int size); \ No newline at end of file +int lz_decompress(unsigned char *out, unsigned char *in, unsigned int size);