Coffeehouse Post

Single Post Permalink

View Thread: Minesweeper, Solitaire, Pinball, ...
  • User profile image

    Speaking of Solitaire, I remembered a nice story I read about quite a while ago.

    Folklore says that during development of Windows NT 4.0, Solitaire was used as a benchmark for the new GDI subsystem. In NT 3.x, the GDI subsystem (the entire Win32 subsystem, if I recall this correctly) was implemented out-of-process, as a user-mode process. Issuing graphics calls from a process was a slow task, given the fact that it took interprocess communication and at least two context switches to get things done.
    To improve performance (in terms of speed, memory footprint, context switches, IPC and other aspects), most of Win32 was moved to the kernel, resulting in the Win32.sys module today. But, at some point, some developer playing Solitaire is said to have noticed that the final show of cards falling around was way slower than in the previous version. The GDI team has set its performance bar accordingly and tuned the core until Solitaire performed as expected. (Maybe someone from Microsoft who was actually a part of this story can confirm this myth or correct me in case I was wrong in some way.)

    Btw, in order to test the falling cards, you don't have to finish a game. It's enough to press Alt+Shift+2. Worked flawlessly on every single version of Windows NT I ever tested on! I wonder whether Managed Solitaire keeps this tradition.

    And, finally, two links about the technical details of going from NT 3.x to NT 4.0. The really funny thing is that everyone predicted that NT 4.0 would crash horribly and die every once in a while because of this move. It turns out they were half right: I have never seen a Windows kernel function to blue-screen the system, but damn those amateur video driver writers!