VOGONS


Windows 95, 3Dnow, and SSE

Topic actions

First post, by computergeek92

User metadata
Rank Oldbie
Rank
Oldbie

I read on Wikipedia that Windows 95B was the first version of 95 to work right with MMX. Does 3Dnow and SSE work just fine in Windows 95B and 95C? I suppose this is about installing chipset drivers. (Like the 440BX chipset driver with a Pentium III slot 1 PC)

Dedicated Windows 95 Aficionado for good reasons:
http://toastytech.com/evil/setup.html

Reply 2 of 46, by mrau

User metadata
Rank Oldbie
Rank
Oldbie

afaik when you push/pop the mmx registers, 3dnow also gets saved/restored(same registerset), hence it should work correctly; sse however needs to be pushed separately or in a different way; as long as only 1 program is using it, nothing should happen;

Reply 3 of 46, by Tiger433

User metadata
Rank Member
Rank
Member

Can 95 or 98SE use SSE2 ?

W7 "retro" PC: ASUS P8H77-V, Intel i3 3240, 8 GB DDR3 1333, HD6850, 2 x 500 GB HDD
Retro 98SE PC: MSI MS-6511, AMD Athlon XP 2000+, 512 MB RAM, ATI Rage 128, 80GB HDD
My Youtube channel

Reply 5 of 46, by computergeek92

User metadata
Rank Oldbie
Rank
Oldbie
Trank wrote:

Not sure about 3DNow at all. But i dont think any versions of 95 truly worked with SSE. Am i wrong in thinking this?

I was fiddling with a Pentium III 550 Gateway tower earlier and it had a "Designed for Windows NT" sticker on the case front. WinNT 4.0 came out in 1996, only a year after Windows 95. Still, in 1996 there were no SSE or 3Dnow systems, but I suppose NT got patched for this 1999 Gateway system.

Dedicated Windows 95 Aficionado for good reasons:
http://toastytech.com/evil/setup.html

Reply 6 of 46, by computergeek92

User metadata
Rank Oldbie
Rank
Oldbie
mrau wrote:

afaik when you push/pop the mmx registers, 3dnow also gets saved/restored(same registerset), hence it should work correctly; sse however needs to be pushed separately or in a different way; as long as only 1 program is using it, nothing should happen;

So SSE would work on Windows 95, but with only 1 program at a time?

Dedicated Windows 95 Aficionado for good reasons:
http://toastytech.com/evil/setup.html

Reply 7 of 46, by Scali

User metadata
Rank l33t
Rank
l33t
mrau wrote:

afaik when you push/pop the mmx registers, 3dnow also gets saved/restored(same registerset), hence it should work correctly; sse however needs to be pushed separately or in a different way; as long as only 1 program is using it, nothing should happen;

MMX was designed to re-use the FPU stack. Therefore any software that supports an FPU, should work correctly with MMX.
3DNow! in turn re-uses the MMX registers, so again, if it has FPU/MMX support, it will work correctly.

SSE is a different story, it has its own registers. The OS needs to specifically save and restore them at every context switch, else you will get problems when more than one program tries to use SSE at the same time.
Windows 95 does not support SSE.
SSE2 and higher use the same registers as SSE (the XMM<n> registers).
AVX again introduces different registers (YMM<n> registers for 256-bit and ZMM<n> for 512-bit), and needs specific support.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 9 of 46, by computergeek92

User metadata
Rank Oldbie
Rank
Oldbie
Scali wrote:
MMX was designed to re-use the FPU stack. Therefore any software that supports an FPU, should work correctly with MMX. 3DNow! in […]
Show full quote
mrau wrote:

afaik when you push/pop the mmx registers, 3dnow also gets saved/restored(same registerset), hence it should work correctly; sse however needs to be pushed separately or in a different way; as long as only 1 program is using it, nothing should happen;

MMX was designed to re-use the FPU stack. Therefore any software that supports an FPU, should work correctly with MMX.
3DNow! in turn re-uses the MMX registers, so again, if it has FPU/MMX support, it will work correctly.

SSE is a different story, it has its own registers. The OS needs to specifically save and restore them at every context switch, else you will get problems when more than one program tries to use SSE at the same time.
Windows 95 does not support SSE.
SSE2 and higher use the same registers as SSE (the XMM<n> registers).
AVX again introduces different registers (YMM<n> registers for 256-bit and ZMM<n> for 512-bit), and needs specific support.

Should I avoid installing Windows 95 on a Pentium III? Even though SSE would not work, would the SSE software being multitasked just not activate it's SSE function? Would Win95 bug up if I try running any SSE programs at once or will the SSE on the program just won't activate on the Win95 system? I hope i'm making sense....

I'm trying to find out the fastest possible Win95 machine. If I have to stick to a Pentium II 450 as my max cpu, thats fine, but I would enjoy the extra mhz if I used a Katmai PIII up to 600 even with the SSE not working.

Dedicated Windows 95 Aficionado for good reasons:
http://toastytech.com/evil/setup.html

Reply 11 of 46, by Scali

User metadata
Rank l33t
Rank
l33t
computergeek92 wrote:

Should I avoid installing Windows 95 on a Pentium III? Even though SSE would not work, would the SSE software being multitasked just not activate it's SSE function? Would Win95 bug up if I try running any SSE programs at once or will the SSE on the program just won't activate on the Win95 system? I hope i'm making sense....

Well yes, running Win95 on a PIII is a risk.
You see, there is the CPUID instruction that any program can call, which lets the CPU tell the program directly what kind of features it supports, including SSE. The OS cannot block this. I don't think even the BIOS can.
So any software that supports SSE, will see the capability of your CPU, and in most cases it will automatically be enabled.
You can get away with this as long as you run a single program with SSE. But it's very difficult to control that, because any kind of background process may also use SSE. As soon as two or more SSE programs are running at the same time, they will corrupt each others registers at every task switch, so that will turn into a big mess soon.

Perhaps you should look at Athlons for the fastest possible Win95 machine.
Any pre-Athlon XP does not have SSE support. The fastest Athlon you can get is 1400 MHz, so you're way up there with the fastest PIII CPUs, but without SSE 😀

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 12 of 46, by computergeek92

User metadata
Rank Oldbie
Rank
Oldbie

Well, then you'd have to worry about the trouble to apply the K6-2 patch - which affected other later cpus besides the K6-2.

If only there was a way to disable SSE in the Bios.. Is a 450Mhz Pentium II good enough to play all Win9x games? BTW, it's good to hear that 3Dnow works on 95 without any trouble. 😉

Last edited by computergeek92 on 2016-06-14, 00:09. Edited 1 time in total.

Dedicated Windows 95 Aficionado for good reasons:
http://toastytech.com/evil/setup.html

Reply 13 of 46, by computergeek92

User metadata
Rank Oldbie
Rank
Oldbie
Scali wrote:

Perhaps you should look at Athlons for the fastest possible Win95 machine.
Any pre-Athlon XP does not have SSE support. The fastest Athlon you can get is 1400 MHz, so you're way up there with the fastest PIII CPUs, but without SSE 😀

If so, going with an Athlon T-Bird, then SSE is would not be a big deal for gaming anyway? Since AMD's 3Dnow is STILL something?

And thank you Scali in explaining the SSE bug in an easy to understand way. 😀

Dedicated Windows 95 Aficionado for good reasons:
http://toastytech.com/evil/setup.html

Reply 14 of 46, by candle_86

User metadata
Rank l33t
Rank
l33t

The main point of 3d now is the fpu. If you run Athlon the fpu is already faster than the Pentium clock for clock so 3d now isn't really needed

Reply 15 of 46, by computergeek92

User metadata
Rank Oldbie
Rank
Oldbie

I've never installed the K6-2 patch before.. It won't be too hard to get it working with, lets say: An Athlon T-Bird 1000C with Windows 95C?

Dedicated Windows 95 Aficionado for good reasons:
http://toastytech.com/evil/setup.html

Reply 16 of 46, by candle_86

User metadata
Rank l33t
Rank
l33t

no the K6 patch works on any cpu up to 2.2ghz, at 2.2ghz you need a separate community patch.

the K6-2 Patch is for Pentium 4/K6-2/K6-3/Athlon/Athlon XP

Not sure if it works for Athlon 64 but anyone running 95 on an Athlon 64 I'd have to question their existence.

Reply 17 of 46, by computergeek92

User metadata
Rank Oldbie
Rank
Oldbie

heheheh.. I'm not that crazy. I just want Windows 95 over 98 for religious reasons:_:_:_:_: http://toastytech.com/evil/setup.html

Dedicated Windows 95 Aficionado for good reasons:
http://toastytech.com/evil/setup.html

Reply 18 of 46, by Scali

User metadata
Rank l33t
Rank
l33t
computergeek92 wrote:

If so, going with an Athlon T-Bird, then SSE is would not be a big deal for gaming anyway? Since AMD's 3Dnow is STILL something?

Yes, the D3D and OGL libs/drivers should have 3DNow! optimizations, and various games back in the day also had special optimizations for it.
So the difference with SSE isn't very large.
Even without 3DNow!, performance is still very good.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 19 of 46, by Orkay

User metadata
Rank Member
Rank
Member

I've been trying to validate some of the claims regarding what would happen if one was to run SSE-capable programs in Windows 95. Using a 450MHz Pentium III running Windows 95 OSR2.1 with new chipset drivers and an updated USB supplement, I ran three programs at once which support SSE optimizations from what I understand. As it turns out, none of the programs corrupt each other, but I can't give a firm reason as to why this is. I doubt these programs are actually using SSE here, as there doesn't seem to be any updates for Windows 95 which add native SSE support. The best I can speculate is that these programs prevent themselves from using SSE if they're running under Windows 95, or Windows 95 itself is incapable of executing SSE instructions, causing programs to fall back to MMX.

I know 3DMark 99 MAX doesn't have an option to enable SSE optimizations when run in Windows 95, whereas either edition of Windows 98 is able to use them. Even though this system uses an NVidia TNT2 Pro, some set of benchmarks I ran with an 800MHz Pentium III and a Voodoo3 3000 leave me confused over whether SSE is being used or not. The frame rates I got when running the demo "four" in Quake III Arena were 52.2 for Windows 95B and 52.4 for Windows 98SE. Does the Voodoo3 not support SSE even with the latest drivers, or is SSE actually being used in Windows 95? I'll run some benchmarks on Windows 95/98 with the TNT2 Pro tomorrow, assuming that'll make any giant difference.

I have two computers with a 450MHz K6-2 and a 650MHz Athlon handy, so I'll also be sure to benchmark those; since 3DNow uses the same register set as the FPU and MMX, I expect that to work as many of you have said.

Attachments

  • ssewin95.png
    Filename
    ssewin95.png
    File size
    274.07 KiB
    Views
    1389 views
    File comment
    Running 3ds MAX R3, Q3A, and UT99 on a Pentium III with Windows 95B
    File license
    Fair use/fair dealing exception