Windows 8 build 7978
|Build of Windows 8|
|Timebomb||2011-07-01 (+86 days)|
Windows 8 build 7978 is a build of Windows 8, which was shared on the BetaWiki Discord server on 9 May 2021. It is the last build to feature the boot screen used in Windows 7 and the last to utilize the Windows Classic visual style in the Preinstallation Environment.
Editions and keys[edit | edit source]
|Edition / SKU Name||Key|
Redpill[edit | edit source]
Redlock can be used to unlock all of the Redpill levels on this build, including the Start screen.
The design of the Start screen tile has been changed, and as such no longer features a colored background that is based on the application's icon. A dark aqua background has been introduced in place of the previous functionality.
Bugs[edit | edit source]
- This build will not boot on some CPUs with the Advanced Vector Extensions (AVX) instruction set due to a bug where a CPU triple fault occurs immediately after the boot screen is first displayed. A workaround is discussed later in the article.
- This problem can also present itself as three bugchecks occurring one after the other, with different error codes overwriting each other on the screen.
- This build must be installed on either an IDE or a SATA hard drive since SCSI disk devices are not functional on this build.
- On some devices, opening either Windows Photo Viewer or Internet Explorer results in a
0x50bugcheck. This can usually be fixed by using the Windows Basic theme or on some machines, by installing a graphics driver.
- Some graphics drivers may cause only the window borders to render, as well as cause the screen to flicker whenever the mouse is moved.
- This build incorporates a USB 3.0 driver that is incompatible with some USB controllers.
- On some devices, the screen may remain blank after booting into this build. If this occurs, keep restarting the machine until you are able to see the login screen.
Aero[edit | edit source]
This build appears to have a slightly broken Windows Aero theme, with only the top portion of the window frame using the blur effect, leaving the side borders transparent.
Compiler[edit | edit source]
This is one of the first builds to be compiled using a new compiler. However, the problems surrounding it at that time resulted in the build becoming unbootable on certain hardware, as the boot loader does not properly function on modern Intel CPUs with the AVX instruction set and a select number of AMD CPUs. As a result, a CPU triple fault occurs resulting in either a crash on a hypervisor or a reboot on real hardware.
Most of the bugs found in this build are a side effect of the new compiler.
Patching winload.exe to run on Intel processors with AVX[edit | edit source]
In order to properly enable SSE instructions for machines using Intel processor with AVX, the 9th bit in Control Register 4 (CR4) must be turned on. The following code is executed and is located in winload.exe at offset A042:
mov eax, cr4 ; 0f20e0 or eax, 20h ; 83c820 -- Turn on 5th bit, PAE (Physical Address Extension) mov cr4, eax ; 0f22e0 -- Store it in CR4 mov eax, cr0 ; 0f20c0 or eax, 80000000h ; 0d00000080 -- Enable paging mov cr0, eax ; 0f22c0
By default the following bits are set in CR0: Protected Mode (PE) (0x00000001), Monitor co-processor (MP) (0x00000002) and Extension type (ET) (0x00000010), with no bits in CR4 set initially, so the need to turn on the 9th SSE bit (i.e. OR with 0x600) should be done, but due to limitation in this piece of code, a rewriting needs to be done and the following approach may be used instead:
mov eax,620h ; b820060000 mov cr4,eax ; 0f22e0 mov eax,80000013h ; b813000080 mov cr0,eax ; 0f22c0 nop ; 90 nop ; 90 nop ; 90 nop ; 90
As a disclaimer, patching winload.exe with these changes will invalidate integrity checks and thus requires Test Mode to be enabled (by setting
NoIntegrityChecks in the BCD to on) in order to boot with the patched winload.exe, as well as ownership of the file in both
%systemroot%\System32\Boot need to be altered in case file replacement was not possible.
Compatibility[edit | edit source]
VMware Workstation[edit | edit source]
For another workaround on the Intel SSE bug that does not involve patching and disabling security checks, the compatibility level must be set to version 7.x or lower in order to boot this build. In addition, the following block of code must be added to the VMX (virtual machine configuration) file in order to allow this build to boot on modern Intel CPUs:
featureCompat.enable = "FALSE" cpuid.0.ebx = "0110:1000:0111:0100:0111:0101:0100:0001" cpuid.0.ecx = "0100:0100:0100:1101:0100:0001:0110:0011" cpuid.0.edx = "0110:1001:0111:0100:0110:1110:0110:0101" cpuid.1.eax = "0000:0000:0000:0001:0000:0110:0111:0001" monitor_control.enable_fullcpuid = "TRUE"
The above configuration is mostly not required if the host machine has an AMD processor, and as such only requires the compatibility version to be changed.