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 47, 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 47, 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 47, 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 47, 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 47, 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 47, 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 47, 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 47, 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 47, 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 47, 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 47, 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 47, 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 47, 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 47, 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 47, by alvaro84

User metadata
Rank Member
Rank
Member

I think those programs didn't use SSE. Back in the day I experimented with SSE on my Palomino Athlon XP. To make things interesting I did it under DOS. And it didn't work until I explicitly enabled SSE via a control register bit. It must be the way it was designed, right to prevent unaware OSes from messing things up while switching between SSE optimized programs without saving the extra registers.

Shame on us, doomed from the start
May God have mercy on our dirty little hearts