- Update the bullet source files - Update the visual studio project accordingly (e.g. add any new cpp files) - Apply the patches required: See https://github.com/libgdx/libgdx/commit/da30acc5b3521d0fda760ba765ae76a951bd41d7 - Add a default ctor to btWheelInfo.h (around line 82): `btWheelInfo() {}` - Comment out `class btVehicleTuning;` in btRaycastVehicle.h ~22 - Add ContactStartedCallback and ContactEndedCallback, based on http://www.bulletphysics.org/Bullet/phpBB3/viewtopic.php?t=7739&p=32470, as shown in https://github.com/libgdx/libgdx/commit/d492533c3ed9447560770a7482d32c2bfbae5df7: btManifoldResult.cpp ~87: bool isNewCollision = m_manifoldPtr->getNumContacts() == 0; btManifoldResult.cpp ~154: if (gContactStartedCallback && isNewCollision) { gContactStartedCallback(m_manifoldPtr); } btPersistentManifold.cpp ~24: ContactStartedCallback gContactStartedCallback = 0; ContactEndedCallback gContactEndedCallback = 0; btPersistentManifold.h ~31: #ifndef SWIG class btPersistentManifold; btPersistentManifold.h ~36: typedef void(*ContactStartedCallback)(btPersistentManifold* const &manifold); typedef void(*ContactEndedCallback)(btPersistentManifold* const &manifold); btPersistentManifold.h ~40: extern ContactStartedCallback gContactStartedCallback; extern ContactEndedCallback gContactEndedCallback; #endif //SWIG btPersistentManifold.h ~183: if (gContactEndedCallback && m_cachedPoints == 0) { gContactEndedCallback(this); } btPersistentManifold.h ~242: if (gContactEndedCallback && m_cachedPoints) { gContactEndedCallback(this); } - Fix cast error for mingw: bDNA.cpp ~393+429 & bFile.cpp ~446+483: `nr= (long)*(intptr_t*)&cp;` - Disable SSE for IOS, in btScalar.h, around line 176, that starts with `#if (defined(__APPLE__) `... btScalar.h ~177: Add: `#include ` btScalar.h ~178: Modify the line to look `like: #if (defined (__i386__) || defined (__x86_64__)) && (!(TARGET_IPHONE_SIMULATOR))` btScalar.h ~179+180+183: comment out `#define BT_USE_SIMD_VECTOR3` and `BT_USE_SSE` and `#define BT_USE_SSE_IN_API`