VOGONS


First post, by myne

User metadata
Rank Member
Rank
Member

https://msfn.org/board/topic/186080-xp-running-on-a-486-cpu/

Figured someone here is crazy enough to want to try it out

Things I built:
Mechwarrior 2 installer for Windows 10/11 Re: A comprehensive guide to install and play MechWarrior 2 on new versions on Windows.
Dos+Windows 3.11 auto-install iso template (for vmware)
Script to backup Win9x\ME drivers from a working install

Reply 1 of 10, by Trashbytes

User metadata
Rank Oldbie
Rank
Oldbie

Mad Lad, that some serious digging around to get it working too.

Reply 2 of 10, by Jo22

User metadata
Rank l33t++
Rank
l33t++

The use of CMPXCHG8B in Windows NT was pretty wild.
Windows NT4 SP4 and Windows 2000 had *best* CMPXCHG8B support, while simultaneously still supporting 486es.
(Windows 2000 was latest Windows for PC-9821 series, too.)

https://www.geoffchappell.com/studies/windows/km/cpu/cx8.htm

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 3 of 10, by myne

User metadata
Rank Member
Rank
Member

Heh. That link would have probably saved them so much time.
Just knowing that nt4/5 had 2 code paths would have been a godsend.

Though, it makes me wonder if you could just decompile it and recompile with different settings and achieve the same result.

Things I built:
Mechwarrior 2 installer for Windows 10/11 Re: A comprehensive guide to install and play MechWarrior 2 on new versions on Windows.
Dos+Windows 3.11 auto-install iso template (for vmware)
Script to backup Win9x\ME drivers from a working install

Reply 4 of 10, by GemCookie

User metadata
Rank Newbie
Rank
Newbie

I just gave this a shot. I had some initial issues with services.exe causing high CPU usage spikes, but they have gone away for the most part.
This patch lets Opera 12.18 run on a 486. Crazy to think that Opera supported these CPUs for 27 years!

Asus Maximus Extreme X38 | C2Q Q9550 | GTX 750Ti | 8GiB DDR3 | 120GB SSD+640GB HDD | WinXP/7/11
MSI MS-5169 | K6-2 350 | TNT2 M64 | 384MiB PC100 | 120GB HDD | WinNT4.0/XP
Dell Precision M6400 | C2D T9600 | FX2700M | 16GiB | 128GB SSD | Win2k/XP/Vista

Reply 5 of 10, by Jo22

User metadata
Rank l33t++
Rank
l33t++
GemCookie wrote on 2024-05-24, 19:14:

I just gave this a shot. I had some initial issues with services.exe causing high CPU usage spikes, but they have gone away for the most part.
This patch lets Opera 12.18 run on a 486. Crazy to think that Opera supported these CPUs for 27 years!

I assume that the original Opera had been a clean i386 binary without much dependencies on additional x86 instructions.

Maybe it could be run on a plain 386, even, not sure.

Or a 486DLC, at least. That processor looks like a 486 to software, at least, despite being accused of being a "fake" 486 so often.

That being said, not sure if an x87 FPU must be present, as well.
Speaking of, I wonder if XP can run on an 486SX processor.

Normal Windows (DOS line) has WIN87EM.DLL, which is both an 8087 emulator and virtualizer.

"Emulator" because it can make x87 enabled applications run and "virtualizer" because it does manage context-switching of a real x87 unit.

That's necessary so that multiple Windows applications can share the x87 (they can run side by side).

Not sure how Windows NT works, though. Maybe it can work without an x87 floating point unit.

Last time I tried Windows NT on an plain 386 (no FPU), it was NT 3.1 Workstation.
Which by itself was an oddball. It supported multi-processor PCs on 386 basis, which later Windows NT versions didn't anymore.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 6 of 10, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie
Jo22 wrote on 2024-05-25, 04:47:

Maybe it could be run on a plain 386, even, not sure.

Many binaries have XADD instructions in them which would break them on a 386

Reply 7 of 10, by GemCookie

User metadata
Rank Newbie
Rank
Newbie
Jo22 wrote on 2024-05-25, 04:47:

I assume that the original Opera had been a clean i386 binary without much dependencies on additional x86 instructions.

Maybe it could be run on a plain 386, even, not sure.

I doubt it would work. A while ago, I installed Windows 98 SE with KernelEx on i386, hoping it would let me run some programs that require Windows 2000. Alas, every single program I tried also wanted i486 instructions.

That being said, not sure if an x87 FPU must be present, as well.
Speaking of, I wonder if XP can run on an 486SX processor.

I tried to do this in PCem; however, the emulator crashes soon after the splash screen appears.

Not sure how Windows NT works, though. Maybe it can work without an x87 floating point unit.

Last time I tried Windows NT on an plain 386 (no FPU), it was NT 3.1 Workstation.

Indeed, Windows 2000 will run without an FPU.

Which by itself was an oddball. It supported multi-processor PCs on 386 basis, which later Windows NT versions didn't anymore.

I suspect later Windows NT versions would work if the i386 SMP check was patched out of the kernel. This would have practical advantages -- while Windows NT 3.1 isn't particularly useful, Windows NT 3.51 (the last release to support i386) can already run many Windows 95 apps.

Asus Maximus Extreme X38 | C2Q Q9550 | GTX 750Ti | 8GiB DDR3 | 120GB SSD+640GB HDD | WinXP/7/11
MSI MS-5169 | K6-2 350 | TNT2 M64 | 384MiB PC100 | 120GB HDD | WinNT4.0/XP
Dell Precision M6400 | C2D T9600 | FX2700M | 16GiB | 128GB SSD | Win2k/XP/Vista

Reply 8 of 10, by roytam1

User metadata
Rank Newbie
Rank
Newbie
GemCookie wrote on 2024-05-24, 19:14:

I just gave this a shot. I had some initial issues with services.exe causing high CPU usage spikes, but they have gone away for the most part.
This patch lets Opera 12.18 run on a 486. Crazy to think that Opera supported these CPUs for 27 years!

they don't make use of newer instructions to make it run faster.
and think in another way, they don't use newer compiler that generates i586/i686-only instructions.

Reply 9 of 10, by Jo22

User metadata
Rank l33t++
Rank
l33t++
jakethompson1 wrote on 2024-05-25, 04:48:
Jo22 wrote on 2024-05-25, 04:47:

Maybe it could be run on a plain 386, even, not sure.

Many binaries have XADD instructions in them which would break them on a 386

Just checked, the 486DLC has it being mentioned in the dataheet.
So it seems to have 486 (486SX) instructions set, indeed.

What surprises me is that XP seemingly can really work without VME (V86 mode enhancements) and has such alternate codepaths that work.

Or maybe the 486 processors that XP had been run on previously do support VME, already?
Later 486 CPU cores had Pentium era features, such as CPU ID, I vaguely remember.

I'm just wondering, I don't know the answer.
I mean, 86Box and PCem don't really support different 486 cores (say, 1989 original and 486DX4) for the different speeds listed in the processor chechbox, do they ?

I would be surprised if so much thought had been spent on this detail.
486DLC and different manufacturer are a different story, I suppose.

Because AMD, Intel, UMC and Cyrix had different CPU strings and clock cycles, anyway, so it made sense to treat them as different processors straight away.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 10 of 10, by Jo22

User metadata
Rank l33t++
Rank
l33t++

By the way, Windows 8.1 x64 had have an similar "issue" that XP had.
It dropped emulation/simulation of CMPXCHG16b instruction.
This had dropped support for early AMD Athlon X64 PCs (K8/9 series).

https://www.guru3d.com/story/some-older-amd-c … rt-windows-8-1/

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//