Quote Originally Posted by JSoftware
Are you sure esi+tEXTURE_Header.addrcalc is 16-byte aligned? That could probably be the source of the problem

Mind you, I get the precisely same backtrace as arthurps on a 32bit core 2 duo
JSoftware i am using special sse_getmem,sse_freemem procedures which align pointer to the 16-byte boundary.

The texture header consists of "clampmin,clampmax,size:fvec4;wrapmask,addrcalc:iv ec4;". All this variables are 16-byte wide and the compiler is compiling all global variables in to 16-byte boundary's. See file "compilecfg.inc", there is compiler directive "{$CODEALIGN varmin=16}", which says to the compiler, that all global variables must be aligned to the 16-byte boundary. So qword, dword or byte variable is 16-byte wide too. So all variables can be easyly loaded with movaps and movdqa without an error or without to be mixed with other small (8,4,2,1 byte-wide) variables

.... aaand are sure, that your cpu support sse4? Because some intel-duo core doesn't support it.