Windows 95/98/ME emulators
Throughout the 1990s, Microsoft released the Windows 3.x and 9x series to consumers worldwide. The Windows 3.x series included 3.0, 3.1, and 3.11, and the Windows 9x series consisted of Windows 95, Windows 98, and Windows Millennium Edition (ME).
- Higher level emulators will run apps on the host platform as close to natively as possible, for easy interactivity.
- Lower level emulators will run a separate, isolated operating system by emulating hardware to get the software working.
High level emulators
Some 9x applications can be run on later systems like Windows XP because of a feature Microsoft developed called Windows on Windows. However, support is very poor and 64-bit versions of Windows don't support it (because Windows on Windows refers to 32-bit program support instead). Selecting Windows 95 or Windows 98 in compatibility mode may help, and Windows XP will get the best compatibility, but it's best to use XP in a dual boot setup (or in a virtual machine instead) since it's no longer officially supported by Microsoft.
Win3mu is a compatibility layer that uses 80286 CPU emulation. It maps API calls onto the modern 32 or 64-bit Windows API. Its development has been marked as postponed since December 2017, and is planned to be released as open-source.
Wine is a compatibility layer for Unix-based systems (such as Linux, various BSDs, and macOS) that allows Windows applications to run in a sandbox. Support for Windows 3.x and 9x programs is quite strong, though since development is continually aiming to support new versions of Windows, classic software is usually the lowest priority.
Low level emulators
PCem and forks
PCem is a fast x86 system emulator that can handle old hardware fairly accurately. Configuration is not the easiest but once it's running it works quite well. Needs somewhat powerful hardware to run.
Currently, it only emulates up to a Pentium processor on the latest stable release, but if you have the muscle for it, you can also emulate an S3 ViRGE, or even a 3dfx Voodoo. Other forks of it exist, like 86Box that encompass even more hardware.
QEMU and Bochs
QEMU's x86 emulation is fairly good for general purpose needs. 3D acceleration isn't too great right now, so it's better to use another option until it improves.
Bochs is another similar emulator geared around emulating the full x86 architecture rather than games or platforms specifically. In their own FAQs section, they explain that "because Bochs emulates every x86 instruction and all the devices in a PC system, it does not reach high emulation speeds."
DOSBox is an outlier in the HLE and LLE fields but it leans towards lower level emulation because it mounts images and emulates the hardware. Before Windows NT (including Windows ME), the classic versions of Windows were graphical shells that ran on top of DOS, so while DOSBox isn't designed to run Windows, it's still possible to get them working. Step by step guides exist for installing Windows 3.x and Windows 9x. There has been interest in creating a spin-off version of DOSBox that incorporates this compatibility called 9xbox, but as of 2017 it never passed the theoretical stage.
Windows 3.x runs very smoothly, but 95 and 98 require more legwork, and it runs much slower than on QEMU without acceleration. For instance, 3.x will run games from a mounted CD drive just fine, but the 9x systems require a disc mounting tool like Daemon Tools to be installed, and it also doesn't do a good job running DOS games, especially since it doesn't have any 3D acceleration. Some will not detect Windows properly and refuse to install, and any problems and bugs Windows had alone will only be made worse in an emulator.
Windows 3.x and 9x can be installed in VirtualBox and VMware Player/Workstation. 3D acceleration for VirtualBox is very poor for 9x (since it requires a lot of work to get it running), and VMware hasn't updated their guest tools in a while.