With the sram fixed, I've made a bit of cleaning. I've remove nearly all warnings. I also fix declarations of all function. I think I've found a bug: In the sqrt intruction, you're doing : src=arm7reg.r[0]; arm7reg.r[0]= (u32) sqrt(src); As far as I know, this sqrt is made on integer and not float. Am I right?? If yes, as math.h was not include, sqrt was returning a float, but was treated as an int. IF no, the code should work,but it's better to cast the register as a float before calling sqrt. Hope it help I've send you the patchs with darcs send command. Crazyjul