Wine: Using Linux to watch Windows productions

category: general [glöplog]
To get an impression of the usability of Wine in regards to viewing Windows scene productions on Linux, I have tested every production on the list at http://pouet.net/prodlist.php?platform[]=Windows&order=thumbup. I thought the results might interest a few, or prove useful to people considering switching OS, thus this little post was born.

I have graded every production according to the following system:

  • Flawless: no discernible difference from running under Windows
  • Good: minor flaws, but still fully enjoyable
  • Ok: watchable, but with flaws that distract from the experience
  • Bad: Runs, but in a horrible state from which no joy can be extracted.
  • Broken: Completely fails to run.

Disclaimer: I have only used memory, common sense and YouTube to spot flaws - so I might be wrong in some cases :)

My test machine is an i7-860 with 8GB RAM, equipped with a GeForce 260 driving a 1920x1200 screen. I'm using Kubuntu 10.4, and Wine 1.2-rc2.
Every demo was (unless otherwise noted) run with default quality settings at fullscreen in 1920x1200 (or the highest available).

Audio generally Just Works(tm), so if nothing else is mentioned, the sound is perfect.

A few notes and recommendations:

  1. Use a Nvidia graphics card. The drivers for AMD/ATI cards are not up to scratch (yet).
  2. Track the releases of Wine closely by adding their repository to your package manager. This will get you a new version every other week (including the odd regression of course). This is interesting because the Direct3D part of Wine is developed quite aggressively in an attempt to satisfy all the Linux users starving for Windows games.
  3. Download Winetricks. It's a script that automates the installation of a wide range of common Windows dependencies and stuff that can't legally be distributed by Wine.
  4. Consider killing Pulseaudio. Some productions work better using plain ALSA (hello Stargazer).
  5. OpenGL demos will generally run much closer to native speed than Direct3D ones. This is, of course, due to the fact that Direct3D calls need to be translated to OpenGL at runtime on Linux.
  6. If you start productions from the console, consider redirecting the output to /dev/null, since some demos will spit out a ton of errors while running, slowing them down considerably. (wine problematic_demo.exe &>/dev/null)

In KDE (dunno about Gnome), Windows executable are transparently integrated. A double click on the exe will run it, just like on Windows:
BB Image

Anyway, the list:

1. fr-041: Good
In a few places there are flickering pixels at polygon seams. Otherwise looks great. I believe it runs quite a bit slower than on Windows - on my machine it runs at about 30-50 fps.

2. Lifeforce: Good
Complains about a missing video codec (the Wine version of msvidc32.dll is seemingly not good enough), resulting in the two AVI files not playing during the demo. Otherwise flawless.

3. Heaven Seven: Flawless
Flawless in windowed mode. In fullscreen mode, the top and bottom is not cleared to black. Since the window can be freely resized, just use KDEs built-in fullscreen function.

4. fr-025: Flawless

5. Elevated: Bad
Extremely long precalc. Music sounds right, video insanely slow. 2-3 seconds between frames - but they do look correct ;)

6. Kings of the Playground: Flawless

7. Stargazer: Good
Reflective cubes scene is unbearably slow (2-3 fps), and the scene following it is broken to the point that you can't see whats going on. Otherwise everything looks right, and runs at a nice frame rate.

8. fr-08: Good
Textures on sky boxes not quite right. The slow zoom out with the yellow animated pattern is buggy.

9. 1995: Flawless

10. Chaos Theory: Flawless

11. Atrium: Ok
The shading is not right - everything is to bright/pastelly. Had to check a video recording to confirm, so it is not unwatchable.

12. fr-019: Ok
Three effects are half-broken, the rest works fine.

13. Variform: Flawless

14. S.O.T.A 2004 invitation: Flawless

15. Frameskool - breakpoint 2007 invit: Flawless

16. fr-030: Flawless

17. Rupture: Flawless

18. Masagin - Nvision 08 Invitation: Broken
Completly fails to start. Hangs without using CPU time.

19. Project Genesis: Flawless

20. YouShould: Flawless

21. Agenda Circling Forth: Broken
Effects not working at all. Crashes after about 30 seconds.

22. Iconoclast: Flawless

23. Tracie: Broken
Crashes after a few seconds, nothing is shown on the screen.

24. Panic Room: Broken
Black screen, followed by crash.

25. We Cell: Flawless

Flawless: 14
Good: 4
Ok: 2
Bad: 1
Broken: 4

added on the 2010-06-10 23:15:07 by Ransom Ransom
You could try running them on windows maybe.
added on the 2010-06-10 23:36:00 by xernobyl xernobyl
Wow, thanks for all this effort
added on the 2010-06-11 00:41:06 by sigflup sigflup
thanks for the list ransom.
added on the 2010-06-11 01:06:48 by psenough psenough
Nice one Ransom! :-)
Now, write a demo! ;-)
added on the 2010-06-11 01:10:13 by prodigy prodigy

Nice one Ransom! :-)
Now, write a demo! ;-)

yeah that's my question- How nicely does visual C++ runs in wine. I suppose we can cross-build to windows with the gnu tools but I never actually have done that.
added on the 2010-06-11 01:13:09 by sigflup sigflup
Uhm, nice work. Any intention to add this info to AppDB? A few demos are already there.
added on the 2010-06-11 02:49:03 by ninjadrm ninjadrm
Sigflup: The Linux MingW cross-compiler suite seems to work just fine and makes porting rather easy, if there is already a Linux+GCC+Makefile based version. The Windows version of fit-039 was cross-compiled with MingW and then tested under Wine.
added on the 2010-06-11 09:01:16 by Marq Marq
develop for MinGW (unless you're making 4k/64k stuff). If you want to make things easy for yourself use cmake and git also.

I started out developing on windows (mingw), then moved over to linux (it has valgrind!), now I'm coding for windows on linux..
added on the 2010-06-11 11:09:58 by jaw jaw
BB ImageBB ImageBB Image
added on the 2010-06-11 12:38:21 by krabob krabob
that problem that masagin hangs without using the cpu also happens with windows xp in virtualbox and with windows 7 in vmware + the wddm driver, weird
added on the 2010-06-12 15:03:20 by CME CME
With wine1-0
fr08 -> OK ( there is one problem reported by wine ... but I never noticed it graphically ( I am maybe blind ) )
Kings of the playground -> flawless
Camouflage ( musicdisk ) -> flawless
digital sounds ( musicdisk ) -> Ok ( I think it can crash , but can't test on the moment )
fr011 -> flawless
I've seen a lot of ASD demos on Ubuntu - Rupture, Metamorphosis, Midnight Run, and also Ferner I think. In some of them I needed to replace an old version of cg.dll with a newer one, but once that was done I was home free :)
4. Consider killing Pulseaudio. Some productions work better using plain ALSA (hello Stargazer).

I reccomend just destroying every bit of audio crap on your system that isn't either ALSA, JACK or some OSS compatibility layer for ALSA, seeing as ALSA by itself works fine. OSS is a piece of shit, the other ones don't matter, as far as I've noticed.

It's given me quite a lot less issues with audio on linux in general (no more shit with one app refusing to play audio while another app is, etc.)

BB Image
added on the 2010-06-13 15:00:54 by havamal havamal
@Maali: I see this image posted all the time, and it's fucking stupid. First of all, most of these are libs and don't count.

ALSA is the primary solution all major distros use these days.

OSS is good and simple, but nobody uses it because ALSA jumped in when OSS was still missing important features and had the wrong license. kind of neglected and thus, dead.

PulseAudio takes care of per-application mixing like the Vista sound manager does it. Ubuntu uses it, and I like it for its ability to cut off ALSA apps entirely when I need exclusive access to JACK. It also handles quite perfectly: pulling out an USB soundcard in mid-playback and plugging it back in - perfectly continues sound output as it should. Can also switch master audio output on the fly.

JACK: ASIO + Rewire on steroids. Used for everything pro audio. I love it, especially for its sample-accurate cross-process MIDI routing.

ESD: audio server. dead. superseded by PulseAudio.
NAS: never heard of that one. possibly dead.
aRts: audio server. dead. superseded by PulseAudio.
PortAudio: x-platform compatibility lib, and troublesome. write your own audio clients.
GStreamer: DirectShow on steroids. It's not really an audio lib, but it supplies various output modules.

FFADO: project to support the firewire sound card protocol. target goal is to integrate the results with ALSA and make FFADO disappear as a standalone option.

everything else: libs libs libs. Just put into there so you get the impression that LA is a mess. But it's no less a mess than the one on Windows. Talk MME, DirectSound, ASIO, Kernel streaming: WHAT?
added on the 2010-06-13 17:04:46 by paniq paniq
+ blogs.adobe.com: what do you expect? cocksuckers.
added on the 2010-06-13 17:09:49 by paniq paniq
Ransom: Excellent work. I use wine all the time to test demos and play games. Never thought of doing what you did, though! :-)

paniq: Pulseaudio and ESD also provide something that most people don't need (but others need desperately): Redirect sound output to a thin client over the network, in the same way X servers do. http://ltsp.org/ does this, although the latency is horrible :-)
added on the 2010-06-13 18:11:09 by moT moT
I like very mush pulseaudio "simple" interface: never seen such a fast way to code sound output. Plus, I like the fact you can change the volume per application in the system sound interface
added on the 2010-06-14 16:29:36 by krabob krabob