https://bugs.winehq.org/show_bug.cgi?id=40963
--- Comment #3 from Andrew Eikum aeikum@codeweavers.com --- (In reply to Alistair Leslie-Hughes from comment #1)
Created attachment 55111 [details] A possible fix
The issue is caused by nbufs being decreased without check if it's already 0.
With this applied the game starts (assuming it doesn't hit a texture bug), and is quite playable.
This seems like a workaround instead of a proper fix.
I think a better solution would be to clear the OpenAL source object's processed buffers during Stop, calling callbacks as needed, then drop any remaining buffers in the source. This should prevent nbufs from being decremented after the flush call, since there should be no more buffers remaining from before the flush.