First post, by d1stortion
How about throwing a list of software together that uses them to some extent? Mainly for stuff that came out within just a few years of when the CPUs were released, obviously, because it's kind of boring when it's 10 years later and everybody already has a CPU like that.
Here's some I can think of:
Games:
POD: Uses MMX, a special OEM version was bundled with Pentium MMX processors.
Rebel Moon Rising: Requires MMX, was (exclusively?) bundled with Pentium MMX Overdrive CPUs. (http://www.thefreelibrary.com/INTEL+ANNOUNCES … R...-a019169821)
Extreme Assault: Uses MMX, probably one of the few DOS games to do so.
Half-Life: Uses MMX to great extent, particularly for the software DSP sound engine and probably also skeletal animation system
Unreal: Uses MMX for its Galaxy sound engine, in fact the readme suggests to lower the sampling rate to 11 kHz for better performance on non-MMX CPUs. MMX was also used greatly for the software renderer. There is probably some 3DNow! usage and SSE is detected, although I don't think it's used
Quake II: 3DNow! patch written by AMD to promote K6-2, provides a notable speed boost (and supposedly there are even graphical differences with this?!). There are specific options available for 3DNow! software, OpenGL and Voodoo2 MiniGL ("3DfxGL") IIRC, and also a later version that is more optimized towards K7. No MMX usage though:
http://www.quake2.com/q2faq.html#II.4 wrote:Quake II does NOT use Intel's latest MultiMedia eXtensions. Unreal will though as well as other upcoming games. Even then, it's wise to buy a MMX chip if you're already thinking of upgrading your machine.
The Quake engine uses the Intel FPU extensively, and also uses a native feature of the Intel FPU called Parallel FPU lines. This allows simultaneous integer and FPU calculations and Quake uses these to do lots of calculations at the same time. The problem is that the MMX instructions use the Parallel FPU lines for calculation, and if MMX were supported in Quake, Quake and the MMX would be fighting over the usage of the Parallel FPU lines. This isn't the problem for most programs because Quake is just about the first major program that even uses Parallel FPU lines in the first place, so other programs don't have this conflict.
Carmack reported that a MMX version of Quake he had in alpha stages would run, at best, the same speed in 16-bit colour as an 8-bit colour version does on a non-MMX Pentium chip of the same clock speed. Carmack says this increase in colour depth only isn't worth the development time and money and has decided not to support MMX with the Quake engine in its current form.
Quake III Arena: Not sure on this one, I believe it uses MMX and 3DNow! but not SSE, even though it is detected?
Emulators:
ZSNES (DOS+Windows) supports MMX and requires it for certain video filters and audio interpolation options. ePSXe gets a sizeable speed boost from SSE I believe, although more checking would be needed. 1964 has a "SSE optimizations enabled" message.
As far as drivers/APIs go, the 3dfx drivers/Glide were optimized for all three:
http://www.3dfxzone.it/dir/3dfx/voodoo3/faq/general/ wrote:A. We have worked diligently with AMD to insure that our drivers for Voodoo3 as well as drivers for Voodoo Banshee and Voodoo2 will get the maximum possible benefit from the 3DNow! instruction set. You can even see several AMD K6-3D systems in our booth today!
A. Collaborating with Intel, we optimized current and future Voodoo products for the Pentium III processor, enabling consumers to enjoy greater levels of realism in their games and entertainment content. All of the application programming interfaces (APIs) supported by Voodoo3 – including Microsoft’s Direct X6, Glide from 3Dfx and OpenGL from Silicon Graphics – have been optimized for the Pentium III processor. As a result, content developers can incorporate more intricate models and scenes, and apply significantly greater realism to the movements of characters and objects.
As for Pentium II, with Voodoo Banshee we introduced a patent to directly handle out-of-order commands from the Pentium II so that there are no CPU stalls. This hardware optimization results in as much as a 15 percent performance improvement.
DirectX 6.1 introduced 3DNow! support (http://www.weblearn.hs-bremen.de/risse/RST/SS … s/3ddirectx.htm), although there are reports of that being gone in DirectX 7 (http://www.hardwarecentral.com/showthread.php … rectX-6.1-3DNOW!)?
There is also this diagnostic software Perfmonitor, which requires K7 or Netburst, but it can show executed MMX and SSE instructions to verify if old games use them.
I also found this nice list with 3DNow! supported software. Where is my Duke Nukem Forever with 3DNow! support?! 😁