When running inside DOSBox, Carmageddon only shows black screen when the movies are supposed to be shown. It works fine with dgVoodoo.
I figured out, Carmageddon issues a LFB lock but never bothers to unlock the buffer (as that would actually trigger buffer update in openglide, instead the buffer remains empty). Glide reference specifically states that an application can only call grLfbLock and grLfbUnlock when it holds a lock to a buffer and cannot use other commands.
The following patch issues a buffer unlock when grSwapBuffers is called and re-locks the buffer after the SwapBuffers. It's against what reference manual says (even if SwapBuffers implicitly unlocked the buffer on real hardware, the application could not expect the LFB pointer to remain valid after the buffer swap), but it makes the game work

thedoctor45 wrote:hmm... with the hires and carmageddon patches the 3Dfx version of BLOOD now looks like this:

. . .

any idea what could cause that and how to debug this?

Yep, You can't scale blood. The 3dfx patch is a bit of a hack: where the software version used to generate lots of one-pixel-wide lines, the 3dfx patch generates very thin triangles. Glidos has a way around it, but it's very complicated: Glidos reads in the little triangles, and stiches them together to make big ones; it also has to use linear regression to calulate good texture coords.