In Forum: Microsoft Operating Systems
By User: WinPC
I'm currently in the process of creating a patch to allow Windows 3.0, Windows 3.00a, Windows with Multimedia Extensions 1.0 (version 3.00a), and the early Windows 3.1 builds to run on Virtual PC without any issues.
Currently, I was able to get Windows with Multimedia Extensions 1.0 (version 3.00a) to load by replacing WIN386.EXE, WIN386.PS2, KRNL386.EXE, GDI.EXE, and USER.EXE, with copies from Windows 3.1 Build 61d, which was released to testers at a time when the one was the newest version of Windows that was actually available to most people. Whereas using the final versions of the Windows 3.1 file economically speaking would essentially defeat the purpose since by then, people would have had no use for the earlier base operating system anymore if even the source of the replacement files could be upgraded from it.
So really, using the Windows 3.1 beta files makes this a more authentic patch, since it is not only closer to the date on which it was released, but it also would have had some potential real-world use due to the one version being the latest version of Windows that was available to the public at that time.
Also, apparently, MS-DOS Prompt requires the VGA.GR3 file to be renamed to VGA.3GR, but I haven't tried fixing it yet. Anyway, though, I might have replaced WINOLDAP.MOD, but I'm not sure, nor am I sure that it even needs to be replaced.
The problem here, though, is that Virtual PC for some reason can't handle the version of WIN386.EXE that is present in the Windows 3.0 and early Windows 3.1 builds. The earliest copy of WIN386.EXE that I actually have available at the moment that works on Virtual PC is the version from Windows 3.1 Build 61d, and yet in Windows 3.0, the one file switched the system directly into Protected Mode before KRNL386 loaded, whereas even as early as Windows 3.1 Build 34e, the one file only switched the system into Virtual 8086 (V86 mode), and it was KRNL386.EXE that switched the system into Protected Mode - that is exactly why I got the "Unable to enter protected mode" error message.
So to fix the KRNL386 problem, I had to replace KRNL386.EXE with a copy that switched the system from Virtual 8086 mode (V86 mode) to Protected Mode, and that was the copy from Windows 3.1 Build 61d. Which in turn, meant that I also had to replace GDI.EXE and USER.EXE. But in the end, I was able to get this version of Windows to run quite well on Virtual PC, since applying this patch basically removed all of the incompatible code from the system files themselves.
Not to mention that I also replaced the "[386Enh]" section with the copy from Windows 3.1 Build 61d, although I'm still not sure whether that was actually necessary or not. But anyway, I hope that people find this interesting, and I might provide further updates as to how far I've come in this project.
By User: WinPC
I'm currently in the process of creating a patch to allow Windows 3.0, Windows 3.00a, Windows with Multimedia Extensions 1.0 (version 3.00a), and the early Windows 3.1 builds to run on Virtual PC without any issues.
Currently, I was able to get Windows with Multimedia Extensions 1.0 (version 3.00a) to load by replacing WIN386.EXE, WIN386.PS2, KRNL386.EXE, GDI.EXE, and USER.EXE, with copies from Windows 3.1 Build 61d, which was released to testers at a time when the one was the newest version of Windows that was actually available to most people. Whereas using the final versions of the Windows 3.1 file economically speaking would essentially defeat the purpose since by then, people would have had no use for the earlier base operating system anymore if even the source of the replacement files could be upgraded from it.
So really, using the Windows 3.1 beta files makes this a more authentic patch, since it is not only closer to the date on which it was released, but it also would have had some potential real-world use due to the one version being the latest version of Windows that was available to the public at that time.
Also, apparently, MS-DOS Prompt requires the VGA.GR3 file to be renamed to VGA.3GR, but I haven't tried fixing it yet. Anyway, though, I might have replaced WINOLDAP.MOD, but I'm not sure, nor am I sure that it even needs to be replaced.
The problem here, though, is that Virtual PC for some reason can't handle the version of WIN386.EXE that is present in the Windows 3.0 and early Windows 3.1 builds. The earliest copy of WIN386.EXE that I actually have available at the moment that works on Virtual PC is the version from Windows 3.1 Build 61d, and yet in Windows 3.0, the one file switched the system directly into Protected Mode before KRNL386 loaded, whereas even as early as Windows 3.1 Build 34e, the one file only switched the system into Virtual 8086 (V86 mode), and it was KRNL386.EXE that switched the system into Protected Mode - that is exactly why I got the "Unable to enter protected mode" error message.
So to fix the KRNL386 problem, I had to replace KRNL386.EXE with a copy that switched the system from Virtual 8086 mode (V86 mode) to Protected Mode, and that was the copy from Windows 3.1 Build 61d. Which in turn, meant that I also had to replace GDI.EXE and USER.EXE. But in the end, I was able to get this version of Windows to run quite well on Virtual PC, since applying this patch basically removed all of the incompatible code from the system files themselves.
Not to mention that I also replaced the "[386Enh]" section with the copy from Windows 3.1 Build 61d, although I'm still not sure whether that was actually necessary or not. But anyway, I hope that people find this interesting, and I might provide further updates as to how far I've come in this project.