Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/joncampbell123/dosbox-x/llms.txt

Use this file to discover all available pages before exploring further.

DOSBox-X provides official, first-class support for running Microsoft Windows 3.x (3.0, 3.1, and 3.11 for Workgroups) and the Windows 9x family (Windows 95, 98, and Millennium Edition) as full guest operating systems — not just as DOS programs. This distinguishes DOSBox-X from most other DOS emulators, which treat these versions of Windows as an afterthought. With the right configuration, DOSBox-X can boot from a hard disk image and run Windows 9x software, games, and utilities in a stable emulated environment.

How It Works

Windows 3.x and 9x are DOS-based operating systems. DOSBox-X boots them from a hard disk image (.img or .vhd) using the BOOT command, just as a real PC would boot from a hard drive. The emulator provides IDE controller emulation so that Windows can use its own drivers for disk and CD-ROM access, which is essential for stability and performance under Windows 9x enhanced mode.
You must supply your own licensed copy of Windows to install into a disk image. DOSBox-X does not include any Microsoft software.

The configuration below is a solid starting point for a Windows 98 guest. Save it as your DOSBox-X configuration file before beginning the installation.
[dosbox]
machine  = svga_s3
memsize  = 64

[cpu]
cputype = pentium
cycles  = max

[ide, primary]
enable = true
pnp    = true

[ide, secondary]
enable = true
pnp    = true

Why These Settings?

machine = svga_s3

The S3 Trio64 is the best-supported SVGA card for Windows 9x in DOSBox-X. Windows 95 and 98 include built-in S3 drivers and can switch to high-color or true-color resolutions automatically.

memsize = 64

64 MB of emulated RAM is a comfortable amount for Windows 98. Windows 95 runs well with 32–64 MB. Do not exceed 512 MB for Windows 9x guests — these OSes have known issues with very large memory amounts.

cputype = pentium

Selecting pentium emulates a Pentium-class CPU with CPUID support. Windows 9x setup will detect and install appropriate drivers for this CPU class.

IDE controllers

Enabling the primary and secondary IDE interfaces allows Windows to load its own 32-bit protected-mode disk drivers (ESDI_506.PDR) and CD-ROM drivers, improving stability and avoiding real-mode compatibility shims.

Installing Windows 9x from Scratch

1

Create a hard disk image

Use DOSBox-X’s built-in IMGMAKE command to create a virtual hard drive. A 2 GB image is suitable for Windows 98 with a typical software load.
IMGMAKE c:\win98.img -t hdd -size 2048
Alternatively, use -t hdd_large to allow FAT32 formatting, which is required if you want a partition larger than 2 GB.
2

Boot from a DOS floppy or bootable CD

Mount your Windows 98 boot floppy or a bootable ISO image that includes FDISK and FORMAT, then boot from it:
IMGMOUNT A floppy.img -t floppy
IMGMOUNT D win98.iso -t iso
BOOT A:
3

Partition and format the disk image

Inside the booted DOS environment, mount the hard disk image and partition it:
IMGMOUNT C win98.img -t hdd
FDISK
After creating a primary DOS partition and rebooting, format the drive:
FORMAT C: /S
4

Run the Windows installer

With the disk partitioned and formatted, switch to the CD-ROM drive and launch Windows Setup:
D:
SETUP.EXE
Follow the on-screen prompts. Windows Setup will copy files and reboot several times — DOSBox-X handles these reboots automatically when booted from the disk image.
5

Boot into Windows from the disk image

After installation completes, add the disk image to your DOSBox-X configuration and boot from it:
[autoexec]
IMGMOUNT C win98.img -t hdd -fs fat
BOOT C:
DOSBox-X will hand control to the Windows 98 boot loader, which loads the full GUI environment.

IDE Controller Settings

The [ide, primary] and [ide, secondary] sections control the emulated IDE/ATA interfaces. These are critical for Windows 9x stability.
SettingDefaultDescription
enabletrueEnable or disable this IDE controller entirely
pnptrueEnumerate this controller in the ISA Plug-and-Play BIOS — required for Windows 9x device detection
int13fakeioEnable INT 13h fake I/O for compatibility with some older disk utilities
int13fakev86ioINT 13h fake I/O in V86 (Virtual 8086) mode — helps BIOS-level disk access under EMM386
cd-rom insertion delay0Delay in milliseconds before a CD-ROM insertion is reported to the guest — increase if Windows does not detect disc changes
Attach your hard disk image to the primary IDE channel and your CD-ROM image to the secondary channel. This mirrors the most common real hardware configuration and results in the most predictable driver behavior under Windows 9x.

Windows 3.x Specifics

Windows 3.0, 3.1, and 3.11 for Workgroups have somewhat different requirements from Windows 9x.
Windows 3.x Standard Mode runs on a 286 or better and requires no more than 15 MB of RAM — programs using 286 protected mode may crash with more than 15 MB. It does not use protected-mode disk drivers, so IDE configuration is less critical. Set memsize = 15 and machine = svga_s3 for a solid Standard Mode environment.

Known Limitations

These are known constraints when running Windows 9x inside DOSBox-X. Most workloads are unaffected, but be aware of them for edge cases.
  • Direct3D hardware acceleration is not emulated. Games requiring Direct3D HAL (hardware abstraction layer) will fall back to software rendering or may refuse to run.
  • USB emulation is not available. Windows 9x USB drivers will not find any devices.
  • Performance depends on the host: cycles = max lets DOSBox-X use as much host CPU as available, which typically gives good results, but a very slow host machine will result in a slow Windows 9x guest.
  • Memory limits: Windows 95 and 98 have bugs with more than ~512 MB of RAM. Keep memsize at or below 512.
  • Sound Blaster: For Windows 9x audio, use a Sound Blaster 16-compatible configuration (sbtype = sb16) and install the appropriate Windows 9x drivers.

Build docs developers (and LLMs) love