[ Thread Index |
Date Index
| More lists.liballeg.org/allegro-developers Archives
]
Ben Davis wrote:
Anyway, yeah, I welcome the changes - although perhaps we should go flat-out
for 32-bit mixing if we're doing final-stage conversion at all?
Currently volumes use 16-bit precision, any sample size above 16-bit
would potentially cause an overflow of the 32-bit registers (x-bit *
y-bit == (x+y)-bit). You could change to use 8-bit volume precision then
you could do 24-bit streams, but that's about it. You can't use 64-bit
or floating-point math, since the mixer is run in a timer, and according
to scale64() in digmid.c: "it is impossible to reliably lock the
compiler helpers that implement a 64 bit divide, and it isn't safe to
use the i386 FPU stack in an interrupt context."
- Kitty Cat