The GPU_DrawElements call requires a u32* parameter. The actual value required is the address offset from the base address. Indices is converted to a u32 so that unsigned integer math is used to subtract the base rather than pointer math. If you subtract one from a u32* it would actually adjust the address by the sizeof(u32) which in this case is 4.I don't get why, in portal3ds, the index offset from this line:
GPU_DrawElements(GPU_UNKPRIM, (u32*)((u32)mdl->indices-md2BaseAddr), mdl->header.num_tris*3); is first converted to u32 before being converted to u32*.
Any help?

