Whistler boot screen mystery
Whistler boot screen mystery
Up to build 2416, the boot screen was pretty simple:
The system just rotated the rings in the middle of the picture in a loop. The color palette of the boot screen was also self-contained in the bitmap. This boot screen used exactly 16 colors in total.
The boot animation mechanism was changed in build 2419 with the introduction of this bootscreen:
Instead of just changing the position of an element in the bitmap, Windows first faded the boot screen in and then started fading the color bars in and out. Now, the boot screen was running in 4 bit color, which means that no more than 16 colors can be displayed at a time. As you can see in the picture above, the boot screen of build 2419 uses 12 shades of gray and 4 colors. To accomplish the fade animations, Windows used a little trick: it changed the colors in the color palette on the fly. It changed the color values of the last 4 fields in the palette to create a fade-in/out animation of the color bars.
The boot screen was updated in build 2428 to accomodate the new Windows flag, but the mechanism stayed the same. The only thing that changed was the bitmap:
The mechanism changed a little bit with build 2474 and its short-lived blinking "loading..." boot screen, but the core principle stayed: the "loading..." label had its own color palette entry (made it cyan in the following screenshot for illustration purposes), which changed colors between various shades of gray as the system booted up:
The "loading..." label was soon scrapped and not even ten builds later we see a completely new boot screen with the familiar moving squares. The fade-in animation still remained and made its way into RTM:
Of course, this means that the boot screen needed to display more than 16 colors in total, more than the 4-bit bitmap could fit in its palette, so the enumeration of colors was moved outside the bitmap and its color palette was changed to be all-black, which causes Resource Hacker and any other software working with the bitmap's own color palette to just display a black picture:
Now this comes with a little mystery: the color palette isn't present in the bitmap since build 2419, but it doesn't seem to be in ntoskrnl.exe either until build 2481 with the RTM boot screen (at least not in the RTM format), so my final question is: Where could the color palette be stored from build 2419 to build 2475?
The system just rotated the rings in the middle of the picture in a loop. The color palette of the boot screen was also self-contained in the bitmap. This boot screen used exactly 16 colors in total.
The boot animation mechanism was changed in build 2419 with the introduction of this bootscreen:
Instead of just changing the position of an element in the bitmap, Windows first faded the boot screen in and then started fading the color bars in and out. Now, the boot screen was running in 4 bit color, which means that no more than 16 colors can be displayed at a time. As you can see in the picture above, the boot screen of build 2419 uses 12 shades of gray and 4 colors. To accomplish the fade animations, Windows used a little trick: it changed the colors in the color palette on the fly. It changed the color values of the last 4 fields in the palette to create a fade-in/out animation of the color bars.
The boot screen was updated in build 2428 to accomodate the new Windows flag, but the mechanism stayed the same. The only thing that changed was the bitmap:
The mechanism changed a little bit with build 2474 and its short-lived blinking "loading..." boot screen, but the core principle stayed: the "loading..." label had its own color palette entry (made it cyan in the following screenshot for illustration purposes), which changed colors between various shades of gray as the system booted up:
The "loading..." label was soon scrapped and not even ten builds later we see a completely new boot screen with the familiar moving squares. The fade-in animation still remained and made its way into RTM:
Of course, this means that the boot screen needed to display more than 16 colors in total, more than the 4-bit bitmap could fit in its palette, so the enumeration of colors was moved outside the bitmap and its color palette was changed to be all-black, which causes Resource Hacker and any other software working with the bitmap's own color palette to just display a black picture:
Now this comes with a little mystery: the color palette isn't present in the bitmap since build 2419, but it doesn't seem to be in ntoskrnl.exe either until build 2481 with the RTM boot screen (at least not in the RTM format), so my final question is: Where could the color palette be stored from build 2419 to build 2475?
- whistler2250
- Posts: 214
- Joined: Wed Aug 09, 2017 1:08 am
Re: Whistler boot screen mystery
It may be in ntkrnpa.exe, I haven't checked it for sure yet.
Pseudo-localized builds are awesome!
- geminiman112
- Posts: 74
- Joined: Sun Aug 06, 2017 12:46 pm
Re: Whistler boot screen mystery
This reminds me of the color tricks that developers would use on the Sega Genesis to get more than 64 colors. It is interesting that Microsoft would work around a limitation that they set themselves which they could have just as (if not more) easily removed.AlphaBeta wrote:Up to build 2416, the boot screen was pretty simple:
The boot animation mechanism was changed in build 2419 with the introduction of this bootscreen:
Instead of just changing the position of an element in the bitmap, Windows first faded the boot screen in and then started fading the color bars in and out. Now, the boot screen was running in 4 bit color, which means that no more than 16 colors can be displayed at a time. As you can see in the picture above, the boot screen of build 2419 uses 12 shades of gray and 4 colors. To accomplish the fade animations, Windows used a little trick: it changed the colors in the color palette on the fly. It changed the color values of the last 4 fields in the palette to create a fade-in/out animation of the color bars.
EDIT:
I checked. It's not in ntkrnpa.exe (at least not in build 2419). There was an interesting image of a Microsoft Codename Whistler Windows Server Family boot-up screen, but that's probably on the internet already.whistler2250 wrote:It may be in ntkrnpa.exe, I haven't checked it for sure yet.
Re: Whistler boot screen mystery
It's not, and it wouldn't make sense to include the color palette in one kernel image but exclude it from other ones.whistler2250 wrote:It may be in ntkrnpa.exe, I haven't checked it for sure yet.
Oh, they didn't set the limitation themselves. They went for the 640x480x4 resolution that's guaranteed to be supported by any display adapter supported by Windows, including these without VESA support.geminiman112 wrote:It is interesting that Microsoft would work around a limitation that they set themselves which they could have just as (if not more) easily removed.
- whistler2250
- Posts: 214
- Joined: Wed Aug 09, 2017 1:08 am
Re: Whistler boot screen mystery
Well, since Windows XP has a default VESA driver even if your display hardware can't be detected, it wouldn't make sense to put on such a limitation. The only time Windows XP wouldn't be in VESA mode is if you set it to 256 color mode or if your display driver badly screws up and you end up with horrible 4-bit color.
Pseudo-localized builds are awesome!
Re: Whistler boot screen mystery
XP's default VGA driver does support VESA modes but (logically) enables them only if it detects that the graphics adapter is VESA compatible. If it's not, you're going to get 4-bit color since that's the greatest common divisor:whistler2250 wrote:Well, since Windows XP has a default VESA driver even if your display hardware can't be detected, it wouldn't make sense to put on such a limitation. The only time Windows XP wouldn't be in VESA mode is if you set it to 256 color mode or if your display driver badly screws up and you end up with horrible 4-bit color.
Of course, the VGA also supported 8-bit color, but no Windows except from 3.0 MME really supported operating in this mode with the OOB drivers since the resolution was too low (3.0 MME used 320x240):
Windows 9x made use of VGA's 256 colors modes with some clever tricks for its boot screen, the progress bar in the bottom even works on the same principle, but that's a completely different story.
I think we are going slightly off-topic with this though, it's time to get back.
Oh yes, Server builds still used the re-branded Windows 2000 Server boot screen that was ditched in Client around build 2267 until build 2455. Build 2257 includes the client variant of this specific boot screen, which (unexpectedly) is a re-branded Windows 2000 Professional one.There was an interesting image of a Microsoft Codename Whistler Windows Server Family boot-up screen, but that's probably on the internet already.
Last edited by AlphaBeta on Fri Aug 11, 2017 1:43 am, edited 1 time in total.
- whistler2250
- Posts: 214
- Joined: Wed Aug 09, 2017 1:08 am
Re: Whistler boot screen mystery
Not trying to get too off-topic here, but I'm pretty sure almost everyone in 2001 had a vesa compatible graphics card in their computer, but once again, it may be Microsoft retaining legacy graphics modes that no one uses anymore.AlphaBeta wrote:XP's default VGA driver does support VESA modes but (logically) enables them only if it detects that the graphics adapter is VESA compatible. If it's not, you're going to get 4-bit color since that's the greatest common divisor:whistler2250 wrote:Well, since Windows XP has a default VESA driver even if your display hardware can't be detected, it wouldn't make sense to put on such a limitation. The only time Windows XP wouldn't be in VESA mode is if you set it to 256 color mode or if your display driver badly screws up and you end up with horrible 4-bit color.
Of course, the VGA also supported 8-bit color, but no Windows except from 3.0 MME really supported operating in this mode with the OOB drivers since the resolution was too low (3.0 MME used 320x240):
Windows 9x made use of VGA's 256 colors modes with some clever tricks for its boot screen, the progress bar in the bottom even works on the same principle, but that's a completely different story.
I think we are going slightly off-topic with this though, it's time to get back.
Pseudo-localized builds are awesome!
Re: Whistler boot screen mystery
This snippet of code might be what you're looking for. This code is used for the fade in portion of the boot animation.
I haven't done much research on 2475 but I'd imagine that they used the same snippet of code in 2475.
Another good place to look would probably be in bootvid.dll itself.
Code: Select all
#define FULL_PALETTE_SIZE (16)
RGBQUAD MainPalette [FULL_PALETTE_SIZE] = { {0,0,0,0}, {21,26,32,0}, {70,70,70,0}, {210,62,45,0},
{1,101,83,0}, {5,53,178,0}, {126,126,126,0}, {0,146,137,0},
{252,127,94,0}, {32,107,247,0}, {255,166,141,0}, {4,220,142,0},
{27,188,243,0}, {188,188,188,0}, {252,252,252,0}, {255,255,255,0} };
Another good place to look would probably be in bootvid.dll itself.
Re: Whistler boot screen mystery
Yes, that's the color palette for the boot screen They surely must have used a similar piece of code in 2475 and below, but this would mean that the array is in a different format and/or in a different file as opposed to RTM.
I suppose they have used the same fade-in code also for the color bars and the "loading..." label in the earlier bootscreens. Would be pretty nice to mod the color bars to the RTM, but the XP source tree isn't publicly available and I don't know how source compatible ReactOS is regarding kernel stuff. I don't have the experience either
I suppose they have used the same fade-in code also for the color bars and the "loading..." label in the earlier bootscreens. Would be pretty nice to mod the color bars to the RTM, but the XP source tree isn't publicly available and I don't know how source compatible ReactOS is regarding kernel stuff. I don't have the experience either
Re: Whistler boot screen mystery
ReactOS seems to scan the palette table of the bitmap first, and using that data in the fade function (basically the same effect as XP, but not pre-programmed)
You could use ReactOS, or possibly the WRK to replicate this result. However, the WRK you might need to rewrite the boot video code for the kernel since it's not publicly available (I've rewritten it several times, it's not too hard depending on your skill and knowledge of windows internals/reverse engineering)
Also, From Vista to 10 they all have the same palette programmed into the kernel, which is visible when booting into Vista or entering recovery mode in 7+
I might port the Vista boot screen to XP / NT 6.0 (it's a work in progress, but it's built off of XP's kernel)
The color palette to Vista is exactly the same as XP
You could use ReactOS, or possibly the WRK to replicate this result. However, the WRK you might need to rewrite the boot video code for the kernel since it's not publicly available (I've rewritten it several times, it's not too hard depending on your skill and knowledge of windows internals/reverse engineering)
Also, From Vista to 10 they all have the same palette programmed into the kernel, which is visible when booting into Vista or entering recovery mode in 7+
I might port the Vista boot screen to XP / NT 6.0 (it's a work in progress, but it's built off of XP's kernel)
The color palette to Vista is exactly the same as XP
-
windowsawesome
- Posts: 50
- Joined: Sun Aug 13, 2017 1:53 am
- Location: Earth
Re: Whistler boot screen mystery
Cool There are a LOT of other builds you could try it with
-
TuneableSumo876
Re: Whistler boot screen mystery
That actually should be a matter of replacing the resources, as the progress bar is aligned the same in XP. I actually remember some Vista Transformation Pack thing for XP changing the bootscreen to the Vista one.Raritize wrote:I might port the Vista boot screen to XP / NT 6.0 (it's a work in progress, but it's built off of XP's kernel)
The color palette to Vista is exactly the same as XP
windowsawesome wrote:Cool There are a LOT of other builds you could try it with
Offtopic Comment
"sleek look, clean lines and appealing colors"Zacchi4k wrote:"An exciting new look"
-
AlejHerrBar2k3
- Posts: 38
- Joined: Wed Nov 14, 2018 8:57 pm
- Location: Puntarenas, Costa Rica
Re: Whistler boot screen mystery
Offtopic Comment
"Windows® XP Professional sports a brand-new visual design that combines a sleek look, clean lines, and appealing colors with a task-oriented design and exceptionally streamlined navigation."
It's as sleek as a drawing made with an MS-DOS program and modified a lot just to make it "professional". How can Windows XP run very fine on 4-bit color?Offtopic Comment
And shouldn't that be the "text-based" portion of Windows XP Setup when upgrading from a previous version of Windows? It's very similar! Now what it needs is the text appearing on the text-based Setup billboard and a side-by-side comparison!
Alejandro J. Herrera Barboza, 16, from Costa Rica
Re: Whistler boot screen mystery
Offtopic Comment
it is: https://www.betaarchive.com/forum/viewt ... 61&t=39279AlejHerrBar2k3 wrote:And shouldn't that be the "text-based" portion of Windows XP Setup when upgrading from a previous version of Windows? It's very similar! Now what it needs is the text appearing on the text-based Setup billboard and a side-by-side comparison!
- JennyTheOSCollector
- Posts: 68
- Joined: Sat Oct 26, 2019 3:38 am
- Location: Shanghai,China
Re: Whistler boot screen mystery
The first and the second pictures looks so much like today's things,but the third one looks a bit like longhorn,the last one looks like an old thing!
Bored...Now I'd like to do something practical,like learning about HTML programming and make music pieces!