# Windows 98

The installation process is quite different since Windows 98 will be incompatible
with most of the defaults in virt-manager.

## Install

https://en.wikibooks.org/wiki/QEMU/Windows_98

https://wiki.gentoo.org/wiki/QEMU/Options#Display_options

You'll need to install from command line like so:

```bash
qemu-system-x86_64 \
    -cdrom /var/lib/libvirt/iso/windows98se.iso \
    -boot order=d \
    -drive file=/var/lib/libvirt/images/win98.qcow2 \
    -m 512 \
    -device sb16 \
    -display sdl
```

- cdrom allows us to use the ISO image. It's also possible to use virsh to
  forward a physical drive to a file, but reading the data from the hard drive
  is usually faster.

- boot allows us to specify the order to d, which is the CD.

- drive allows us to use the image we just created.

- enable-kvm turns on hardware acceleration in x86 using the kernel VM. KVM
  causes problems on Windows hosts when shutting down the guest and can even
  prevent it from starting in some cases. If this occurs, you can safely remove
  it from the command.

- m allocates the guest's RAM. In this case we use 512, but going above it can
  be dangerous for Windows 9x.

- device allows us to add a device driver, in this case, the Creative
  SoundBlaster 16 sound card (sb16) to get audio. Standard Windows 98 discs
  ship with drivers for it, and if you haven't used this flag while installing,
  it would need to scan for it.

- display allows us to use an alternative display engine rather than GTK+. In
  this case, we use Simple DirectMedia Layer because it doesn't conflict as
  much with fullscreen support. You can press Ctrl+Alt+F to enter and exit
  fullscreen mode and Ctrl+Alt to have QEMU grab or ungrab the keyboard input
  and invoke the monitor as usual.


## Boot

We'll boot with the same command we used to install but without the boot parameters

```bash
qemu-system-x86_64 \
    -drive file=/var/lib/libvirt/images/win98.qcow2 \
    -m 512 \
    -device sb16 \
    -display sdl
```


```bash
sudo qemu-system-i386 \
    -name "Windows 98" \
    -L pc-bios -nodefaults -no-hpet -no-reboot -display sdl \
    -M pc,accel=tcg -cpu pentium3 -m 1024 \
    -drive file=/var/lib/libvirt/images/win98.qcow2 \
    -device VGA -device sb16 -device rtl8139,netdev=net0 \
    -netdev user,id=net0,hostfwd=tcp::8080-:80,hostfwd=tcp::2222-:22 \
    -rtc base=localtime,clock=host
```
