:lol
I'm loving this MSDN blog that was linked to in this thread, and this post deserved special mention:
http://blogs.msdn.com/oldnewthing/archive/2004/06/04/148427.aspx
Related to that, it's simply amazing what Microsoft will actually bother to not only test for, but fix, related to third party apps for Windows. The one thing I can't understand though, is what they do with all this testing since they don't do regular point updates like Mac...
For example:
http://blogs.msdn.com/oldnewthing/archive/2004/09/10/227860.aspx
I'm loving this MSDN blog that was linked to in this thread, and this post deserved special mention:
http://blogs.msdn.com/oldnewthing/archive/2004/06/04/148427.aspx
Do not underestimate the power of the game Deer Hunter
During the run-up to Windows XP Service Pack 2 Beta in December of last year, there was a list of five bugs that the release management team decided were so critical that they were going to slip the beta until those bugs got fixed.
The third bug on the list: Deer Hunter 4 won't run.
Deer Hunter has the power to stop a beta.
posted on Friday, June 04, 2004 7:01 AM by oldnewthing
# re: Do not underestimate the power of the game Deer Hunter
Friday, June 04, 2004 7:10 AM by asdf
Don't keep me in suspense. Why didn't deer hunter run?
# re: Do not underestimate the power of the game Deer Hunter
Friday, June 04, 2004 7:18 AM by Raymond Chen
Its copy protection was crashing.
# re: Do not underestimate the power of the game Deer Hunter
Sunday, June 06, 2004 5:04 PM by Justin Steventon
Tim is quite right, you want to at the very least understand every regression of this class.
Copy protection mechanisms are also tricky, because they are constantly changing so that someone can't write a one-hack-for-all type fix. Since test lists are limited, even a single broken application is likely to mean that dozens more are broken.
However, Raymond's point about Deer Hunter being important is well taken. For XP, we had to make sure every 'Hunter' game was working. And there are lots of them (Shark Hunter, Turkey Hunter, ...)
Related to that, it's simply amazing what Microsoft will actually bother to not only test for, but fix, related to third party apps for Windows. The one thing I can't understand though, is what they do with all this testing since they don't do regular point updates like Mac...
For example:
http://blogs.msdn.com/oldnewthing/archive/2004/09/10/227860.aspx
Sometimes the bug isn't apparent until late in the game
I didn't debug it personally, but I know the people who did. During Windows XP development, a bug arrived on a computer game that crashed only after you got to one of the higher levels.
After many saved and restored games, the problem was finally identified.
The program does its video work in an offscreen buffer and transfers it to the screen when it's done. When it draws text with a shadow, it first draws the text in black, offset down one and right one pixel, then draws it again in the foreground color.
So far so good.
Except that it didn't check whether moving down and right one pixel was going to go beyond the end of the screen buffer.
That's why it took until one of the higher levels before the bug manifested itself. Not until then did you accomplish a mission whose name contained a lowercase letter with a descender! Shifting the descender down one pixel caused the bottom row of pixels in the character to extend past the video buffer and start corrupting memory.
Once the problem was identified, fixing it was comparatively easy. The application compatibility team has a bag of tricks, and one of them is called "HeapPadAllocation". This particular compatibility fix adds padding to every heap allocation so that when a program overruns a heap buffer, all that gets corrupted is the padding. Enable that fix for the bad program (specifying the amount of padding necessary, in this case, one row's worth of pixels), and run through the game again. No crash this time.
What made this interesting to me was that you had to play the game for hours before the bug finally surfaced.
posted on Friday, September 10, 2004 7:00 AM by oldnewthing