diff -Naur bullet-2.70/Extras/BulletMultiThreaded/SpuCollisionTaskProcess.cpp bullet-2.70.tpg/Extras/BulletMultiThreaded/SpuCollisionTaskProcess.cpp --- bullet-2.70/Extras/BulletMultiThreaded/SpuCollisionTaskProcess.cpp 2008-05-06 00:44:18.000000000 +0000 +++ bullet-2.70.tpg/Extras/BulletMultiThreaded/SpuCollisionTaskProcess.cpp 2008-08-24 16:19:16.000000000 +0000 @@ -128,7 +128,7 @@ - m_threadInterface->sendRequest(CMD_GATHER_AND_PROCESS_PAIRLIST, (uint32_t) &taskDesc,m_currentTask); + m_threadInterface->sendRequest(CMD_GATHER_AND_PROCESS_PAIRLIST, (ppu_address_t) &taskDesc,m_currentTask); // if all tasks busy, wait for spu event to clear the task. diff -Naur bullet-2.70/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.cpp bullet-2.70.tpg/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.cpp --- bullet-2.70/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.cpp 2008-06-22 03:30:55.000000000 +0000 +++ bullet-2.70.tpg/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.cpp 2008-08-24 16:19:16.000000000 +0000 @@ -164,7 +164,7 @@ memcpy(g_manifoldDmaExport.getFront(),lsManifold,sizeof(btPersistentManifold)); g_manifoldDmaExport.swapBuffers(); - uint64_t mmAddr = (uint32_t)mmManifold; + ppu_address_t mmAddr = (ppu_address_t)mmManifold; g_manifoldDmaExport.backBufferDmaPut(mmAddr, sizeof(btPersistentManifold), DMA_TAG(9)); // Should there be any kind of wait here? What if somebody tries to use this tag again? What if we call this function again really soon? //no, the swapBuffers does the wait diff -Naur bullet-2.70/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask.cpp bullet-2.70.tpg/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask.cpp --- bullet-2.70/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask.cpp 2008-07-31 19:44:28.000000000 +0000 +++ bullet-2.70.tpg/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask.cpp 2008-08-24 16:19:16.000000000 +0000 @@ -836,8 +836,11 @@ register int dmaSize; register ppu_address_t dmaPpuAddress; register ppu_address_t dmaPpuAddress2; - +#ifdef USE_ADDR64 + long userInfo; +#else int userInfo; +#endif //USE_ADDR64 int numPairs; register int p; SpuCollisionPairInput collisionPairInput; @@ -895,9 +898,13 @@ spu_printf("pair->m_algorithm = %d\n",pair.m_algorithm); spu_printf("pair->m_pProxy0 = %d\n",pair.m_pProxy0); spu_printf("pair->m_pProxy1 = %d\n",pair.m_pProxy1); -#endif //DEBUG_SPU_COLLISION_DETECTION +#endif //DEBUG_SPU_COLLISION_DETECTION +#ifdef USE_ADDR64 + userInfo = long(pair.m_userInfo); +#else userInfo = int(pair.m_userInfo); +#endif //USE_ADDR64 if (userInfo == 2 && pair.m_algorithm && pair.m_pProxy0 && pair.m_pProxy1) { diff -Naur bullet-2.70/Extras/BulletMultiThreaded/SpuParallelSolver.cpp bullet-2.70.tpg/Extras/BulletMultiThreaded/SpuParallelSolver.cpp --- bullet-2.70/Extras/BulletMultiThreaded/SpuParallelSolver.cpp 2008-05-21 23:29:35.000000000 +0000 +++ bullet-2.70.tpg/Extras/BulletMultiThreaded/SpuParallelSolver.cpp 2008-08-24 16:19:16.000000000 +0000 @@ -578,7 +578,7 @@ SpuSolverTaskDesc& desc = m_taskDescriptors[m_currentTask]; - m_threadInterface->sendRequest(1, (uint32_t)&desc, m_currentTask); + m_threadInterface->sendRequest(1, (ppu_address_t)&desc, m_currentTask); } void SolverTaskScheduler::flushTasks() diff -Naur bullet-2.70/Extras/BulletMultiThreaded/SpuRaycastTaskProcess.cpp bullet-2.70.tpg/Extras/BulletMultiThreaded/SpuRaycastTaskProcess.cpp --- bullet-2.70/Extras/BulletMultiThreaded/SpuRaycastTaskProcess.cpp 2008-07-09 23:30:21.000000000 +0000 +++ bullet-2.70.tpg/Extras/BulletMultiThreaded/SpuRaycastTaskProcess.cpp 2008-08-24 16:19:16.000000000 +0000 @@ -79,7 +79,7 @@ SpuRaycastTaskDesc& taskDesc = m_spuRaycastTaskDesc[m_currentTask]; taskDesc.taskId = m_currentTask; - m_threadInterface->sendRequest(1, (uint32_t) &taskDesc,m_currentTask); + m_threadInterface->sendRequest(1, (ppu_address_t) &taskDesc,m_currentTask); //printf("send thread requested for task %d\n", m_currentTask); // if all tasks busy, wait for spu event to clear the task. if (m_numBusyTasks >= m_maxNumOutstandingTasks) diff -Naur bullet-2.70/Extras/BulletMultiThreaded/SpuSampleTaskProcess.cpp bullet-2.70.tpg/Extras/BulletMultiThreaded/SpuSampleTaskProcess.cpp --- bullet-2.70/Extras/BulletMultiThreaded/SpuSampleTaskProcess.cpp 2008-06-03 21:24:34.000000000 +0000 +++ bullet-2.70.tpg/Extras/BulletMultiThreaded/SpuSampleTaskProcess.cpp 2008-08-24 16:19:16.000000000 +0000 @@ -130,7 +130,7 @@ } - m_threadInterface->sendRequest(1, (uint32_t) &taskDesc, m_currentTask); + m_threadInterface->sendRequest(1, (ppu_address_t) &taskDesc, m_currentTask); // if all tasks busy, wait for spu event to clear the task.