Windows Computing In The Late 90's (The Emulation Aspect)

Anyone who's a regular visitor on this blog or my YouTube Channel knows that I'm an enthusiast when it comes to PC emulation. It allows me to relive the machines that I've used in the past along with computers that I never used before. 

When it comes to PC emulation, I have standardized on as few emulators as possible to keep my configurations streamlined. For most PC's starting from the IBM Model 5150 (The OG PC) released in August 1981 up till the PC's of the mid 90's, I like to use PCEM. Created and developed by Sarah Walker and now managed by Michael Manley, PCEM can emulate a vast array of various hardware configurations. This project just amazes me to no ends. The vast majority of the screenshots of the PC articles were taken using PCEM. 

As much as I love PCEM, I start to encounter issues when I want to emulate a late 90's PC using this emulator (and every other one for that matter too). Performance issues means that I've reached the capability of what PCEM can do. As such, I start to look for different emulators to see if they meet my wants. I then took a look at 86Box. I've used 86Box a few times, and a lot more recently for a few more setups. Forked from PCEM and managed by OBattler, 86Box emulates various OEM systems not emulated by PCEM. I've used 86Box when it comes to Windows NT 3.1, 3.5, and Desqview/X in an networked environment using the Novell NE2000 NIC. However, like PCEM, the performance of the emulated systems start to suffer once I go past 120MHz on any processor. My host has a AMD FX-4300 Quad-Core CPU running at 3.8GHz, also equipped with a Nvidia GTX 950 and 16GB's of RAM. The host PC has Windows 10 installed.

While PCEM and 86Box is awesome when it comes to emulate that 1996/1997 PC, anything after that is pushing the capabilities of those emulators. My next choice is DOSBox. I've already have used DOSBox proper (SVN builds downloaded from EmuCR) when it comes to Windows 95. Although not officially supported, it works well enough as long as you know what your doing. I actually have the IBM Aptiva OEM version of Windows 95 installed and it works just great when it comes to Pentium 1-era software. Performance wise at max speed, DOSBox on the AMD FX-4300 is comparable to a PC equipped with a Pentium 1 processor running at 166MHz. Flight Simulator 95 works great, along with Quake, both running in software mode and GL-Quake when using DOSBox-G. However, DOSBox proper suffers from the same issues that PCEM/86Box does when it comes to building that post-97 PC configuration. I start to push the limitations of what DOSBox proper is capable of. What do I do next?

I've been using DOSBox-G for the longest of time. It's like DOSBox proper except that it's based on patches that were a part of DOSBOX SVN Daum port, a fork that hasn't been updated in several years. It has support for the 3DFX Voodoo within Windows 95 either through full emulation or as a wrapper directing the 3D calls to your GPU. However, the support for Windows 3DFX games have been hit-or-miss (mostly miss). 

DOSBox-X

I've been experimenting with DOSBox-X, which is largely seen as the spiritual successor to DOSBox-G. What I like about this project's goals is that it aims to emulate that late 90's era Wintel PC. It has to be noted at this point that DOSBox proper is geared towards running DOS games, as implied by the name (DOSBox). Windows 9x compatibility isn't something that the core DOSBox developers never aimed for (Otherwise, it would be called WinBox). It just happens that DOSBox can run Windows 95 very well. As such, Win9x compatibility was never a stated goal for the main DOSBox developers, and as the maintainers of that project, that is a respectable decision given there project aims, which is to provide support for DOS games. The main project already has accomplished so much in this regard that there isn't room to complaint, especially from an plastic armchair user. Other projects can make those attempts, like DOSBox-X. After trying DOSBox-X in detail, there are many things that I like about it. At the same time, there are many things that leave a lot to be desired.

Windows 98 runs very well within DOSBox-X. At the same time, because the core CPU emulation is the same as DOSBox proper; on my PC, DOSBox-X is still comparable to that PC with the Pentium 1 Processor running at 166MHz, except that now the Pentium II instruction set is emulated. But because the core performance is the same, that means that I don't gain anything running Windows 98 that I wouldn't have had under Windows 95. Also installing Windows 98 took a long time (1 hour 15 minutes). I use to install Windows 98 on such hardware, and it brought back memories that I so don't want to fondly remember. I've been so spoiled by VMware installing Windows 98 in 12-15 minutes that I've forgot how long it took to installing it on a Pentium 1 (equivalent) PC. I also noticed stability issues when I tried to run more demanding games. On one hand, this isn't much of a surprise as demanding games are going to run slower on older (emulated) hardware. Generally though, performance and compatibility was much worse than expected though. 

My dream emulation configuration for Windows 98 system is one comparable to a PC with a AMD-K6/2 running at 400MHz, 64MB's of RAM, S3 Trio 32/64 with the 3DFX Voodoo.  This was very reminiscent to the family computer that I use to use as a teen, except that the PC in question had a Cirrus Logic SVGA adapter instead of an S3. This is the dream computer that I would want to recreate in a VM, but it won't happen if DOSBox-X. While it's very promising, its still is a very much work-in-progress.

I never expected Half-Life to run at 1024 by 768 at 30FPS. At the very least though, I thought that the game would have been playable at 640 by 480 at a reasonable framerate. Anyone playing Half-Life on the original Voodoo would have ran the game at that resolution, as that was the maximum supported accelerated resolution. When full-system emulation of the Voodoo was enabled, the DOSBox-X window would constantly resize continuously before I was forced to close it. Other time, Half-Life would load successfully, only to see weird graphical issues in-game while experiencing single digit framerates before the game crashed. Things were slightly better when using the wrapper. The constant window-resizing issue went away with Half-Life loading successfully now. However, while the graphical issues mostly went away, the performance, while better, was still horrible. The framerate was still mostly single-digits with constant stuttering. Half-Life was configured at 640 by 480 using the 3DFX OpenGL driver. Half-Life was a no-go.

I've then tried Microsoft Flight Simulator 98. This was the first game in the series that supported 3D acceleration. At the same time, the game used the Voodoo thru the DirectX libraries. FS98 was a Microsoft title after all. While the game successfully loaded, there were graphical issues and distorted textures. FS98 was also a no-go. I  then tried Midtown Madness, another Microsoft title. While the game loaded successfully, there were then weird graphical issues and never made it past the loading screen. The performance was also horrendous. This also highlights that even though Windows 98 on DOSBox-X can use both DirectX and Glide with the Voodoo, the way that the API's interact with it is very different, and this is reflected in the games. While the wrapper emulates the Voodoo at the software level, DOSBox treats the wrapper as an hardware device, leading to various performance and graphical issues depending on the game. 

After 3 failed attempts at running these games, I made the realization that while it's very promising, DOSBox-X isn't where it needs to be to run my dream setup. While it's still a very worthwhile emulator that I recommend with its improved GUS support, networking, and CD-ROM support (MP3 BIN CUE files are treated as an audio CD playable in Voyetra Audiostation), there is a lot to be desired when it comes to using DOSBox-X to emulate that late 90's PC. However, there is a lot that the project does right, and is constantly updated on a regular basis. As such, I'm very optimistic about its future. It's a project that I am closely following.

VMware Player

I've actually used VMware Player a lot when it comes to Windows 98. There are pros and cons when using VMware with Windows 98. VMware is technically a virtualizer, which means that it doesn't emulate the processor, but simply passes the VM to the actual CPU (or core) on your machine. This means really fast emulation. Windows 98 is very responsive. At the same time, there are drawbacks. VMware only emulates a general-purpose video adapter that conforms to VESA standards, and no specific SVGA model. As such, one has to use the VBE VESA drivers for Win9x if they want to use high resolution. Also, the drivers don't support Direct3D. While VMware does support 3D acceleration, it's through a pass-thru to your graphics card and there have to be drivers (thru the VMware Additions) to support it. Thus, while 3D acceleration is supported in VMware, there is no support for the Windows 98 guest. 

Games running on Windows 98 thru VMware Player can only use software rendering. For many though, this works well enough. The 3DFX was a expensive proposition back in the day. The vast majority of PC gamers would have ran there games in software rendering. Not only that, but because modern CPU's are much faster than anything from the late 90's/early 2000's, Windows 98 will run at the speed of the core since VMware abstracts the CPU (or core) to the VM,  

On my AMD FX-4300 CPU, VMware has one core allocated to Windows 98 (Win98 predates multicore setups). As far as Windows 98 is concerned, it's running on a PC with a AMD processor running at 3.8HGz. Games running in software mode will have no trouble running on CPU's of that clock speed. It's much fast than anything that they expected. Of course, applications software from back in the day won't have any troubles running in the VM anyway. At this point, something does need to be noted.

When creating any configuration, regardless of whether it's PCEM, 86Box, DOSBox-X, or VMware; if one wants best compatibility, give the VM hardware that it would have expected. Windows 98 existed before multi-core setups were a thing, so giving Win98 two or more cores can affect system compatibility. Even if Win98 can run with multiple cores, there is no reason why it should be configured as such. There was nothing designed for Windows 98 that needed multiple cores. In fact, even if Windows 98 could technically run on multicore systems, it's not making use of those cores or taking advantage of them in any meaningful way. 

There is also no reason why a Win98 configuration should have 512MB's or more memory. There was nothing released during Windows 98 lifetime that required that much memory. When Windows 98 was released, 32MB's was the norm. 64MB's was preferred. Once you got past a certain threshold, adding memory will not make Windows load faster as it's already achieved max performance. For Win98, this amount is 128MB's. This is what I typically allocated to Windows 98 running in VMware. Just because (after applying the memory patch) Windows 98 can use 1-3GB's of memory doesn't mean to allocate that much memory just because. With older systems, there is a such thing as too much RAM. Giving older VM's far more memory than what they expected can affect software compatibility. 

Conclusion

PCEM, 86Box, and DOSBox/DOSBox-X does a awesome job emulating PC hardware circa 1981-1997. Once you reach PC hardware from circa 1998-2002, that is where there generally isn't a suitable emulator/virtualizer. One of things I like to do instead is install Windows 7 32-bit on a VM, configure it to look like Windows 98 while applying a different file manager reminiscent of older Explorer, along with install ClassicShell. Windows 7 on VMware has excellent compatibility with older games, and with the customizations, it looks very convincing. nGlide does wonders on the Windows 7/VMware setup. This is how I would actually recommend running the early Glide/DirectX software. 

Comments

Popular posts from this blog

WeatherStar 4000 Simulator For Windows (Part 1)

My Thoughts Close Of The Election : Religion and Politics

Old Hardware Emulated :Psion Model 3a Emulated On DOSBox Windows

Classic Systems Emulated: Windows 3.1 OEMS

Old Hardware Emulated : Pocket PC 2000/2002

Some More Thoughts Of Greg Abbott

Classic Systems Emulated: Windows 95 (Part 1)

2021: American Insurrection

WeatherStar 4000 Simulator For Windows (Part 2)

Old Hardware Emulated - Windows Mobile 5.0