Customize WinXP Startup Screen (Boot Screen)

how to edit the bitmaps, integrated into the file ntsokrnl.exe

The startup (boot screen) screen, unlike Win95-98-ME, is not so simple with XP.  It is not separate image files.  Rather, it is comprised of 3 "all black" bitmaps (strange, but true) that are integrated into the file window\system32\ntsokrnl.exe.  You can only see the images stored within these bitmaps by using a special 16-color (4-bit) palette which is supplied here.

Now, you must realize that the file ntoskrnl.exe is under WFP (Windows File Protection).  In short, you can mess with it, you can edit and save it - and even if you somehow manage to, Windows will immediately replace it.  The workaround is to make a copy of the file, and have you boot.ini file point to that instead by using the "kernel=" switch.

Actually, there are several sites where users upload their own custom boot screens - they upload their own hacked ntsokrnl.exe or the bitmap files for download by others (but it is much more fun to make your own).  Here are a few links:     

There are also several utilities for this - the easiest to use is BootXP - this automates the process for you.  The free version places their logo on the custom boot screen - the pay version does not (only &7.95).  The most powerful is Inno Logo which include custom progress bars.  But why buy?  We show you how for free here !!!

Here are the three bitmaps (for display only - do not download them for use with XP !!).  In order from left to right, they are the ntsokrnl integrated bitmaps 1 (640x480), 8 (22x9), and 10 (164x25).  The only one you really need to customize is bitmap 1.



The Progress Bar - when you boot, you will see the progress bar with tiny squares moving left to right.  The fist, large image has a small, 126x15 rectangle with a border to make space for the progress bar.  Bitmap 8 creates the small rectangles that move left-to-right within the border of bitmap 1.  For your new custom image you can place the border there but it is not necessary - and it is difficult to get it positioned exactly.  If you decide to use a border, paste the original image as a new layer in Photoshop on top of your custom image, and then delete everything except the border on that layer.


To customize, first - download Resource Hacker and the Photoshop ACT 16-color Palette.  If you are using PaintShop Pro or some other image editor - here is the PAL 16-color Palette.

  1. copy windows\system32\ntoskrnl.exe  to  windows\system32\mykrnl.exe
  2. start Resource Hacker and open windows\system32\mykrnl.exe
  3. the startup screen bitmaps are 1, 8, and 10  -  you only need to edit number 1 bitmap
  4. select Actions/Save [Bitmap . . .] and save bitmap 1 to your hard drive.  Since you are not editing ntsokrnl, you do not need to save the 3 bitmaps for going back to the original later - they are all saved within the file, ntsokrnl.exe !!
  5. open the bitmap in Photoshop - oddly - it will be completely black
  6. click Image/Mode/Color Table . . . and load the 16-color Palette
  7. suddenly the image will show up - so strange !!!
  8. edit the image or replace it - using the same size and the same palette
  9. save the image, go back to Resource Hacker, and select Actions/Replace Bitmap
  10. save the file mykrnl.exe
  11. edit boot.ini to point to the new kernel file - simply add /kernel=mykrnl.exe to the end of the WinXP line.  This example is for a dual-boot system where C drive has Win98 and D drive has WinXP.  The boot.ini file is on the C drive :

[boot loader]
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /KERNEL=Mykrnl.exe
C:\ = "Microsoft Windows 98 SE"

    12.  Done !!!  To go back to the original splash screen, just remove the text, "/KERNEL=Mykrnl.exe"

If you have several logon screens, you can rotate them by using the LogonUI Randomizer.

The 16-color (4-bit) Palette

The palette can be changed manually but it is a bear.  You can use Boot Editor to change the default boot palette but the utility is not user-friendly and has a couple of bugs.  Or you can go to the Boot Screen Bitmap Creator which does the conversion for you - just point it to a 640x480 bitmap and it will convert it to 16 colors (but they are not the default palette required by Windows) !!!  

How to make Decent Looking 16-color (4-bit) Images

Getting a nice, flowing 4-bit image requires the use of a palette that matches the needs of the image.  That image cannot require more than 16 colors !!!  So you are limited to:

For example, an image with large gold letters XP that look very realistic, will have several shades of gold and nothing else except the white background.  The default palette contains primary colors and will look horrible.  But you can use GIF Animator or Adobe Image Ready (comes with Photoshop 7) to optimize the image with 16 colors.  GIF Animator does a better job and allows you to save the palette as a PAL file.  Save the palette and the image as a GIF, reopen in Photoshop, edit the palette so that the first color is Black (0,0,0), and save it as a 4-bit bmp file.  The resulting image look awesome !!  

Skin Tones with 16 Colors - It is a well-known fact that skin tones require numerous colors.  We have all seen the horrendous effect that 256-color bitmaps have on faces.  But this is only because the palette used is the standard Windows system palette.  So long as the rest of the image has only 2 or 3 colors - that leaves you 13 colors for skin tones !!!  Here is an example - I opened the image in GIF Animator, optimized it with a 16-color palette, saved the image as a PSD file and saved the palette, opened it in Photoshop, applied the palette (color table), edited the first color toblack (0,0,0), and saved it as a 4-bit bmp file :

Not bad for only 16 colors !!!  This is how you can have a 16-color image that flows nicely.  

Likewise, if you need a gradient, you can have one, so long as the two colors are not extreme opposites.  For example, blue to dark blue will look OK, whereas light blue to dark blue will not (it takes too many colors to represent that type of gradient).

IMPORTANT:  Photoshop will only save an image with 4-bit color, when the first color is Black (RGB=0,0,0).  So before saving the image you must goto Image/Mode/Color Table, click the first image, and edit the color to 0,0,0  -  otherwise when you save it as a bmp, the only option will be 8-bit color and 4-bit will be grayed out !!!  This change usually has no visible effect on the image, since most 16-color palettes have at least a very dark color in the first position !!

The Steps  

  1. create or open a file and save it as full 24-bit color
  2. open the file in GIF Animator or Image Ready and optimize it to a 16-color table - save the palette (GIF Animator only) and save the file as a PSD (GIF Animator) or GIF (Image Ready)
  3. open it in Photoshop and select Image/Mode . . . Color table and then load the 16-color (4-bit) palette
  4. click on the first color and edit the RGB to be 0,0,0 (black)
  5. save it as a bmp and select 4-bit color and RLE compression.  You can test this by reopening and viewing the palette (color table).)

For most of you - it is easiest to use the palette included in the bitmap image that you save from mykrnl.exe.  Stick to cartoon-style or clip-art style images, or download some nice ones - there are tons of websites for this.

Now for the manual method.  Skip this next part unless you are a masochist !!!  

IMPORTANT - You cannot just use any old 16-color palette !!  The palette RGB numbers are stored in the kernel file, separately from the bitmap.

However, if you have a lot of patience you can edit the image palette yourself by using a Hex editor to edit mykrnle.exe  -  which has the hex strings in it.  Unfortunately it is stored using reverse BGR instead of RGB so you have to do a lot of notekeeping before editing.