Many applications and games will refuse to boot if they detect a Virtual Machine. I’ve found there are quite a few things you can do to make it much harder for them to do this. Depending on your system load and other factors this may have a performance impact. This will not work for every anti-cheat and anti-vm software. Some kernel-level anti-cheats like Valorant’s Vanguard use various timing tricks and even hypervisor bugs to determine if you are running inside of a Virtual Machine. That said these tricks will let you use many applications that normally will not run inside a Virtual Machine.

Spoof BIOs and Board Information

<sysinfo type='smbios'>
    <bios>
      <entry name='vendor'>American Megatrends Inc.</entry>
      <entry name='version'>2607</entry>
      <entry name='date'>09/14/2020</entry>
    </bios>
    <system>
      <entry name='manufacturer'>ASUSTeK COMPUTER INC.</entry>
      <entry name='product'>TUF GAMING X570-PLUS (WI-FI)</entry>
      <entry name='version'>Rev X.0x</entry>
      <entry name='serial'>Your board's serial number</entry>
      <entry name='uuid'>DOMAIN UUID</entry>
      <entry name='sku'>SKU</entry>
      <entry name='family'>TUF GAMING</entry>
    </system>
  </sysinfo>
  <os>
    <type arch='x86_64' machine='pc-q35-5.2'>hvm</type>
    <smbios mode='sysinfo'/>
  </os>

Pass through the host CPU Model and Information

 <cpu mode='host-passthrough' check='partial' migratable='on'>
    <topology sockets='1' dies='1' cores='8' threads='2'/>
  </cpu>

Make sure KVM State and stuff is hidden

<features>
    <hyperv>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
      <vendor_id state='on' value='whatever'/>
    </hyperv>
    <kvm>
      <hidden state='on'/>
    </kvm>
</features>

Tweak the clock settings

<clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='discard'/>
    <timer name='hpet' present='no'/>
    <timer name='hypervclock' present='yes'/>
  </clock>

Use QEMU Command Line Arguments

 <qemu:commandline>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='host,hv_time,kvm=off,hv_vendor_id=null,-hypervisor'/>
  </qemu:commandline>

Use e1000e network card

Many programs look for virtio drivers