On my machine, I do not have a `~/Public` directory, which causes
quickqemu to spit out a warning and then crash:
```console
$ quickemu --vm vm.conf
- WARNING! Public directory: '/home/jeremy/Public' doesn't exist!
Quickemu 4.9.7 using /nix/store/nk59c14nwf79bafmrsnnhndmpnrlplrv-qemu-10.1.0/bin/qemu-system-x86_64 v10.1.0
...
- 9P: On guest: sudo mount -t 9p -o trans=virtio,version=9p2000.L,msize=104857600 ~/Public
...
- Process: ERROR! Failed to start /nix/store/va3md6gv82fqf7pxbfxd0cd5gfnmnz9f-vm.conf as va3md6gv82fqf7pxbfxd0cd5gfnmnz9f-vm
qemu-system-x86_64: -netdev user,hostname=va3md6gv82fqf7pxbfxd0cd5gfnmnz9f-vm,hostfwd=tcp::22220-:22,smb=/home/jeremy/Public,id=nic: Error accessing shared directory '/home/jeremy/Public': No such file or directory
```
Here's my `vm.conf`. Note how I'm not asking for a public dir:
```
iso="/nix/store/q3j8357dz3kmyjv84wfj4pyn20b65h9l-nixos-minimal-25.11pre-git-x86_64-linux.iso/iso/nixos-minimal-25.11pre-git-x86_64-linux.iso"
```
FreeDOS does ship the Crynwr packet driver package, which does contain an
RTL8139 driver. However, you have to install the package after installing
FreeDOS, even if you performed a full install. It also seems to lock up for
me when attempting to load it.
The PCNet packet driver on the other hand, is installed with a full FreeDOS
install, is open source, and does work, at least for me.
* fix: Check for PipeWire as well as PulseAudio before falling back to ALSA
* fix: Use PipeWire backend if available, and where QEMU version is >8.1
Co-authored-by: Liam <33645555+lj3954@users.noreply.github.com>
---------
Co-authored-by: Liam <33645555+lj3954@users.noreply.github.com>
* Set RTC to localtime only for Windows/ReactOS/DOS and UTC for all other OS
Windows/ReactOS/DOS conventionally set the system RTC to local time, but Linux/UNIX/macOS use UTC. Guest systems that expect UTC and have the time zone set to local time will have the wrong system clock time at startup until they set the clock with NTP. This is especially an issue for disk images imported from or shared with another VM configuration that uses UTC for non-Windows guests.
* Removed RTC driftfix option for non-Windows/ReactOS/DOS guests
According to the QEMU man page:
Enable driftfix (i386 targets only) if you experience time
drift problems, specifically with Windows' ACPI HAL. This
option will try to figure out how many timer interrupts were
not processed by the Windows guest and will re-inject them.
This option thus seems unnecessary for other systems and may cause
performance or timekeeping issues, so enable only for
Windows/ReactOS/DOS.
When RAM is not specified in the config and the min RAM is not met, quickemu tells the user to override the RAM amount and exits.
If the user overrides the RAM, the script should allow the user to continue with a warning.