2002.01.24 ~22 q3asm-turbo3 (later that day) OK, got it to work the way I wanted it. The problem hinged on the combination of lcc's output of values and the way atoi() functioned. Floating-point values are expressed in the .asm files as positive decimal value forms of little-endian IEEE-whatever-thingy floating-point format interpreted as an integer. This meant the decimal value could range anywhere from 0 to (2^32 - 1). However, there were explicit byte vales of "-1" in various places as well (which made me keep atoi() for a while). Signed values are capped at 0x7FFFFFFF in atoi() (as it should), but the float-point values were frequently surpassing that limit. So almost all the floating-poing values were coming out as 0x7FFFFFFF, since they were expressed as Very Large Decimal Values. (I have problems expressing my technical thoughts...) The end result was that a whole lot of math functions came out insane. The workaround was to create a new function that converts to something larger than 32 bits (long long on gnu-x86 is signed 64 bits), then smash it down to 32 bits in a "proper" manner. This might prove unportable, but like relnev^WPeople's Linux-Centric Modifications To the Quake 2 Game Source, I'm more concerned about making this work correctly on linux-x86 right now. Thus ThingThatConvertsDecimalToSigned32SoThatAtoiDoesntCapAt7FFFFFFF(). At last, nice speedy 2-second linking that comes out correcty.