PSA: Windows 95/98/98SE/ME can't be installed in VBox >= 6.0 + Ryzen CPUs

Discussions about using Windows guests in VirtualBox.
scottgus1
Site Moderator
Posts: 20965
Joined: 30. Dec 2009, 20:14
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Windows, Linux

Re: PSA: Windows 95/98/98SE/ME can't be installed in VBox >= 6.0 + Ryzen CPUs

Post by scottgus1 »

I don't know if you're in the right place, jpbed? My googling shows that Surface Pro 7's come with Intel CPU's, and this thread is about AMD's. Did you post in the wrong topic?
birdie
Posts: 428
Joined: 2. May 2010, 14:19
Primary OS: Fedora other
VBox Version: PUEL
Guest OSses: Windows, Linux, other Unixes
Location: Artem S. Tashkinov
Contact:

Re: PSA: Windows 95/98/98SE/ME can't be installed in VBox >= 6.0 + Ryzen CPUs

Post by birdie »

mpack wrote:
birdie wrote:It's great your CPU still works.
(1) I've never had a problem with any CPU I've used on any PC since 2008. It's just a matter of setting up the guest correctly.

(2) You didn't say above you had a problem with Ryzen, you said all of those guests had a problem with HW virtualization on modern CPUs. Perhaps you should make up your mind.
I'm using VirtualBox defaults. You've never said something needs to be changed to make Windows 9x work.

Again, VirtualBox developers have admitted that Windows 9x works incorrectly but you always call me out as if I'm lying or making things up. I don't even understand why you continue to argue with me:
Before opening such tickets, please do some due diligence first. Google for "windows 98 ryzen crash" and you will see that this is not a problem with VirtualBox, it's a problem with Ryzen CPUs and Windows 9x, or more likely a bug in Windows 9x. See e.g. here https://communities.vmware.com/thread/579537

I believe this blog post explains what the problem is. The method Windows 9x uses to manage page tables does not work (reliably) on AMD Bulldozer and Ryzen CPUs, and it probably only works by accident on other CPUs.

Disabling the I/O APIC of course does nothing, Windows 9x does not use it. But disabling nested paging does a lot, because it hides the TLB management problem referenced above.

Please note that Windows 9x is known to have serious problems on fast CPUs.

Also note that the first generation Ryzens had a bug related to VME (Virtual-8086 Mode Extensions) but VirtualBox works around that and AMD fixed that a long ago.

You can complain to AMD but they will very likely tell you that this is a bug in Win9x that they have no desire working around. Intel has done such things too, various old operating systems no longer work on current Intel CPUs because they did things that they shouldn't have done, and they're no longer commercially important.

The bottom line is that this is not a regression and it's not something VirtualBox can fix. Disabling nested paging may help but Windows 9x still remains an unsupported guest OS in VirtualBox.
And here's how Windows 98 SE "works" with Nested Paging disabled:
nested_paging_disabled.png
nested_paging_disabled.png (19.92 KiB) Viewed 1941 times
Not much better with VirtualBox defaults:

Freezes here infinitely:
freeze.png
freeze.png (16.78 KiB) Viewed 1939 times
Segfaults galore:
crash.png
crash.png (27.62 KiB) Viewed 1939 times
birdie
Posts: 428
Joined: 2. May 2010, 14:19
Primary OS: Fedora other
VBox Version: PUEL
Guest OSses: Windows, Linux, other Unixes
Location: Artem S. Tashkinov
Contact:

Re: PSA: Windows 95/98/98SE/ME can't be installed in VBox >= 6.0 + Ryzen CPUs

Post by birdie »

It would be great if @mpack let me know what kind of settings would allow me to run Windows 98 SE on my Ryzen CPU cause nothing that I've tried worked.
Post Reply