ALSA lib pcm_asym.c:106:(_snd_pcm_asym_open) capture slave is not defined fixme:mixer:ALSA_MixerInit No master control found on Brooktree Bt878, disabling mixer err:ddraw:DllMain Unknown default surface type. Supported are: gdi, opengl fixme:d3d:IWineD3DImpl_FillGLCaps OpenGL implementation supports 32 vertex samplers and 32 total samplers fixme:d3d:IWineD3DImpl_FillGLCaps Expected vertex samplers + MAX_TEXTURES(=8) > combined_samplers fixme:win:EnumDisplayDevicesW ((null),0,0x32f640,0x00000000), stub! fixme:xrandr:X11DRV_XRandR_SetCurrentMode Cannot change screen BPP from 32 to 16 fixme:ddraw:IDirectDrawImpl_WaitForVerticalBlank (0x12f078)->(4,(nil)): Stub It uses DirectDraw, but only copies directly to the front buffer. There are three functions that do this: one for movies, one for the UI, and one for space combat. Movies already work because of the strict timing required. The rest of the game is typical of a DOS program... The UI function copies the whole screen at once, so adding a call to the end of this function fixes it perfectly (the sound is fixed too!) Space combat is different. The function only copies a small part of the screen, so the call to Sleep() had to be added to the main loop. If it is too fast or too slow, try tweaking the values at 87D79h (UI, default 20ms) and 87D8Dh (space, default 30ms).