3D Pinball was one of the most popular games on any Windows XP machine. Ever wondered why Microsoft decided to drop it from subsequent Windows versions? Most speculated that the reason was legal, but that was not the case.
3D Pinball was originally written for Windows 95 and had a render loop that painted frames as fast as possible. But it was found while porting it to Windows XP that Pinball’s frame rate on contemporary hardware (then) was over one million frames per second. Microsoft later added a limiter in Windows XP, that capped the frame rate to 120 frames per second. This was enough to drop the CPU usage from 100% to 1%.
While porting several millions of lines of code from 32-bit to 64-bit Windows, one program that ran into trouble was Pinball.
The 64-bit version of Pinball had a pretty nasty bug where the ball would simply pass through other objects like a ghost. In particular, when you started the game, the ball would be delivered to the launcher, and then it would slowly fall towards the bottom of the screen, through the plunger, and out the bottom of the table. Games tended to be really short. Two of us tried to debug the program to figure out what was going on, but given that this was code written several years earlier by an outside company, and that nobody at Microsoft ever understood how the code worked (much less still understood it), and that most of the code was completely uncommented, we simply couldn’t figure out why the collision detector was not working. Heck, we couldn’t even find the collision detector! We had several million lines of code still to port, so we couldn’t afford to spend days studying the code trying to figure out what obscure floating point rounding error was causing collision detection to fail. We just made the executive decision right there to drop Pinball from the product, says a blog post on MSDN.
While one could always add Pinball to subsequent Windows versions, it was not recommended.