Hyper-V is provided with Windows 8 and above but many are unclear how to use it for gaming and test purposes. The generation 1 virtual machine is ideal for loading Windows XP to run legacy applications etc.

Unfortunately its not possible to run Windows 95 or Windows 98 on Hyper-V as MIcrosoft was sued over the use of Java which was believed to be publically available. Following this fiasco, C and C++ became the primary programming languages for development. Microsoft also invested heavily in .NET which is a rival to Java in some ways but its much more sophisticated. In time many programing languages all adopted .NET to provide Windows implementations.

So unless you are using a PXE server to load Windows in a data center, everyone should use generation 1. All versions of Windows run in generation 1 including Windows Server.

The default is generation 1 when creating a new virtual machine. No need to change it.

The only time generation 2 is needed is for a secure boot platform for Windows 8 and above. The VM has a UEFI BIOS and boot up shows Hyper-V. Windows 10 does not work with generation 1 virtual machines but it does work with generation 2 fine.