OK got it fixed
http://alsa.opensrc.org/faq/
When I try to play Enemy Territory or other games based on the Quake 3 engine, I get an "/dev/dsp: Input/output error Could not mmap /dev/dsp" message
Read the OssEmulation documentation about setting the parameters for OSS via the /proc interface.
For some people trying to play ET, the following works:
echo "et.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss
You will generally need to add write permissions even for the root user in order to echo anything to /proc/asound/card0/pcm0p/oss. Also remember your new settings will not be preserved following a reboot.
::which changes the playback part of OSS (indicated by the "p" in "pcm0p").
You may also need to try this:
echo "et.x86 0 0 disable" > /proc/asound/card0/pcm0c/oss
::which disables capture (meaning microphone input? PCM input?):
This is not enough for some driver modules such as cs46xx for which you need to enable mmap explicitly via a module option. See the relevant AlsaDrivers pages for more info on your driver modules.
On the M-Audio Revolution 7.1 with enemy-territory, all the above does is change the error message to: Could not set /dev/dsp to stereo=2.
An easy-fix workaround is using esd 0.2.35 or above as an intermediate. just type
esddsp --mmap mygame
Where mygame is the name of the game, and it will probably run. You should have esd (esound) installed (and esd active) of course.