BetaArchive Logo
Navigation Home Screenshots Image Uploader Server Info FTP Servers Wiki Forum RSS Feed Rules Please Donate
UP: 18d, 7h, 33m | CPU: 21% | MEM: 20211MB of 24567MB used
{The community for beta collectors}

Post new topic Reply to topic  [ 10 posts ] 
Author Message
 PostPost subject: Whistler boot screen mystery        Posted: Wed Aug 09, 2017 4:13 am 
Reply with quote
Donator
User avatar
Offline

Joined
Sun Aug 12, 2012 4:33 pm

Posts
1587

Location
Czechia

Favourite OS
MinWin
Up to build 2416, the boot screen was pretty simple:
Image
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:
Image
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:
Image

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:
Image

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:
Image

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:
Image

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?

_________________
Image
AlphaBeta, stop brainwashing me immediately!


Top  Profile
 PostPost subject: Re: Whistler boot screen mystery        Posted: Wed Aug 09, 2017 4:25 am 
Reply with quote
FTP Access
User avatar
Offline

Joined
Wed Aug 09, 2017 1:08 am

Posts
94

Favourite OS
4001
It may be in ntkrnpa.exe, I haven't checked it for sure yet.


Top  Profile
 PostPost subject: Re: Whistler boot screen mystery        Posted: Wed Aug 09, 2017 7:36 pm 
Reply with quote
FTP Access
User avatar
Offline

Joined
Sun Aug 06, 2017 12:46 pm

Posts
16

Favourite OS
5111
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:
Image
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.


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.

EDIT:
whistler2250 wrote:
It may be in ntkrnpa.exe, I haven't checked it for sure yet.


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.

_________________
thepaganohut.neocities.org
I've got the spirit, lose the feeling, take the shock away.


Top  Profile  WWW
 PostPost subject: Re: Whistler boot screen mystery        Posted: Fri Aug 11, 2017 12:32 am 
Reply with quote
Donator
User avatar
Offline

Joined
Sun Aug 12, 2012 4:33 pm

Posts
1587

Location
Czechia

Favourite OS
MinWin
whistler2250 wrote:
It may be in ntkrnpa.exe, I haven't checked it for sure yet.

It's not, and it wouldn't make sense to include the color palette in one kernel image but exclude it from other ones.

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.

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.

_________________
Image
AlphaBeta, stop brainwashing me immediately!


Top  Profile
 PostPost subject: Re: Whistler boot screen mystery        Posted: Fri Aug 11, 2017 12:47 am 
Reply with quote
FTP Access
User avatar
Offline

Joined
Wed Aug 09, 2017 1:08 am

Posts
94

Favourite OS
4001
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.


Top  Profile
 PostPost subject: Re: Whistler boot screen mystery        Posted: Fri Aug 11, 2017 1:17 am 
Reply with quote
Donator
User avatar
Offline

Joined
Sun Aug 12, 2012 4:33 pm

Posts
1587

Location
Czechia

Favourite OS
MinWin
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.

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:
Image

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):
Image

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.

Quote:
There was an interesting image of a Microsoft Codename Whistler Windows Server Family boot-up screen, but that's probably on the internet already.

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.

_________________
Image
AlphaBeta, stop brainwashing me immediately!


Last edited by AlphaBeta on Fri Aug 11, 2017 1:43 am, edited 1 time in total.

Top  Profile
 PostPost subject: Re: Whistler boot screen mystery        Posted: Fri Aug 11, 2017 1:43 am 
Reply with quote
FTP Access
User avatar
Offline

Joined
Wed Aug 09, 2017 1:08 am

Posts
94

Favourite OS
4001
AlphaBeta wrote:
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.

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:
Image

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):
Image

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.


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.


Top  Profile
 PostPost subject: Re: Whistler boot screen mystery        Posted: Fri Aug 18, 2017 4:35 pm 
Reply with quote
User avatar
Offline

Joined
Wed Apr 16, 2014 6:34 pm

Posts
301

Location
Ohio, United States

Favourite OS
NT 4, LH 4074, Whistler 2419
This snippet of code might be what you're looking for. This code is used for the fade in portion of the boot animation.
Code:
#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} };


I haven't done much research on 2475 but I'd imagine that they used the same snippet of code in 2475.

Image

Another good place to look would probably be in bootvid.dll itself.

_________________
Image


Top  Profile
 PostPost subject: Re: Whistler boot screen mystery        Posted: Sun Aug 20, 2017 9:16 pm 
Reply with quote
Donator
User avatar
Offline

Joined
Sun Aug 12, 2012 4:33 pm

Posts
1587

Location
Czechia

Favourite OS
MinWin
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 :P

_________________
Image
AlphaBeta, stop brainwashing me immediately!


Top  Profile
 PostPost subject: Re: Whistler boot screen mystery        Posted: Tue Aug 22, 2017 1:04 am 
Reply with quote
User avatar
Offline

Joined
Wed Apr 16, 2014 6:34 pm

Posts
301

Location
Ohio, United States

Favourite OS
NT 4, LH 4074, Whistler 2419
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

_________________
Image


Top  Profile
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 10 posts ] 




Who is online

Users browsing this forum: tristanleboss and 5 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  

All views expressed in these forums are those of the author and do not necessarily represent the views of the BetaArchive site owner.

Powered by phpBB® Forum Software © phpBB Group

Copyright © 2006-2017

 

Sitemap | XML | RSS