There has been enough interest in this that I decided just to post the following hacks. These will have no effect on a machine not running Solaris. I am not sure if they work on SUNOS but if you want to try, compile it with -DSOLARIS. All files in question are in the src directory: 1. Edit sound.h and change SOUND_SHM_SAMP_SIZE to 16384 For the next four steps edit the file sound_driver.c 2. Add the following around line 19: #ifdef SOLARIS #include #endif 3. You'll see a section which reads: #ifdef HPUX if(g_use_alib) { child_sound_init_alib(); } else { child_sound_init_hpdev(); } #endif #if defined(__linux__) || defined(OSS) child_sound_init_linux(); #endif Change this to (note the only change is the addition of three lines): #ifdef HPUX if(g_use_alib) { child_sound_init_alib(); } else { child_sound_init_hpdev(); } #endif #ifdef SOLARIS child_sound_init_solaris(); #endif #if defined(__linux__) || defined(OSS) child_sound_init_linux(); #endif 4. You'll see a section which reads: void child_sound_init_linux(); void child_sound_init_hpdev(); void child_sound_init_alib(); Change this to read: #ifdef SOLARIS void child_sound_init_solaris(); #endif void child_sound_init_linux(); void child_sound_init_hpdev(); void child_sound_init_alib(); 5. Now add the following at the end of the file: #ifdef SOLARIS void child_sound_init_solaris() { struct audio_info audioi,audioj; char *str; int speaker; int ret; int i; g_audio_socket = open("/dev/audio", O_WRONLY, 0); if(g_audio_socket < 0) { printf("open /dev/audio failed, ret: %d, errno:%d\n", g_audio_socket, errno); exit(1); } ret = ioctl(g_audio_socket, AUDIO_GETINFO, &audioi); audioi.play.sample_rate = g_preferred_rate; audioi.play.encoding = AUDIO_ENCODING_LINEAR; audioi.play.precision = 16; audioi.play.channels = 2; ret = ioctl(g_audio_socket, AUDIO_SETINFO, &audioi); ret = ioctl(g_audio_socket, AUDIO_GETINFO, &audioj); printf("Output rate: %d Hz\n",audioj.play.sample_rate); printf("Output encoding: %d, %d bits, %d byte buffer\n",audioj.play.encoding, audioj.play.precision, audioj.play.buffer_size); printf("Output channels: %d\n",audioj.play.channels); } #endif Now recompile sound_driver.o and relink. You should be able to do this by typing make. Your binary of kegs should now support Audio on a solaris box, sun4m or newer with 16 bit audio. You can test this by typing kegs -audio 1. I have to add -arate 22050 and halve the sampling rate on my slower machines but it sounds great. (Even has the crackling sounds of the original GS!) Let me know how this works for you. Hopefully Kent will add this to the next release of KEGS. Enjoy, jonathan -- Jonathan Kalbfeld ThoughtWave Technologies LLC UNIX, Networking, Programming +1 415 386 UNIX "All your router are belong to us!"