Help with Dell splash screen format

Discussion in 'BIOS Mods' started by en4rab, May 2, 2010.

  1. en4rab

    en4rab MDL Novice

    Oct 27, 2009
    44
    7
    0
    #1 en4rab, May 2, 2010
    Last edited by a moderator: Apr 20, 2017
    I have been looking at the format of the Dell bios splash screen and wondering if anybody else has looked at this before as its a non standard BMP format.
    I think i have worked out part of the format but there are still bits of it i dont understand.
    The following was taken from the Precision 470 bios:
    The splash screen BMP appears to be contained in 00-0E-1A (obtained with apokrif's tools)
    and when unpacked looks like this:

    Code:
    Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
    00000000   00 00 03 98 01 7A 00 10  00 04 01 00 00 07 02 00   ...˜.z..........
    00000010   00 D5 49 00 00 87 2E 00  00 55 1D 00 00 1D 0A 00   .ÕI..‡...U......
    00000020   00 F2 53 00 00 ED 51 00  00 E9 50 00 00 E6 4F 00   .òS..íQ..éP..æO.
    00000030   00 E2 4E 00 00 DF 4D 00  00 B3 3D 00 00 2E 10 00   .âN..ßM..³=.....
    00000040   00 0E 05 00 00 00 00 00  00 FF FF FF FF FF FF FF   .........ÿÿÿÿÿÿÿ
    <snip raster data>
    00006170   FF FF FF FF FF FF FF FF  FF FF FF FF FF FF FF FF   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    00006180   FF 00 00                                           ÿ..
    
    The header seems to consist of 3 unknown bytes 00 00 03 followed by the width in pixels 0x0198 (408 pixels) and the height in pixels 0x007A (122 pixels)
    Then there is some pallette index data, im unsure if this begins directly after the height bytes or if it begins with the 04 01 00 00, the actual image info begins at 0x49 where all the FF's begin and appears to end at 0x6180 and have 2 trailing 00's.

    I have cut the raster data and what i think was the pallette index and pasted it on the end of a proper 4bpp BMP header of the correct size and obtained the attached BMP.

    Anyone understand this format better than me and fancy filling in the blanks?
    en4rab
     

    Attached Files:

  2. en4rab

    en4rab MDL Novice

    Oct 27, 2009
    44
    7
    0
    #2 en4rab, May 5, 2010
    Last edited by a moderator: Apr 20, 2017
    (OP)
    I think i have a bit more of a grip on the format, but im still not 100% on whats what, using the example of the dell logo in the post above:
    Code:
    00 00 03 < Header, im unsure if there is any more to it than this
    98 01     < Image width 0x0198 (408 pixels)
    7A 00     < Image height 0x007A (122 pixels)
    10 00     < I think this is the number of colours used/number of palette entrys 0x10 = 16 colours  
    04 01 00 00 < First palette entry, BB GG RR 00 
    07 02 00 00
    D5 49 00 00
    87 2E 00 00
    55 1D 00 00
    1D 0A 00 00
    F2 53 00 00
    ED 51 00 00
    E9 50 00 00
    E6 4F 00 00
    E2 4E 00 00
    DF 4D 00 00
    B3 3D 00 00
    2E 10 00 00
    0E 05 00 00
    00 00 00 00 < last palette entry 
    FF FF FF FF < Beginning of raster data
    <snip>
    FF FF FF < end of raster data
    00 00 < looks like 2 bytes of padding left from creating the image in a paint package before conversion to dells simple bitmap format
    
    Essentially this is a 4bpp bitmap with a custom header, it should be possible to create a new logo in your favourite paint package and then cut the BMP header off leaving the palette indexs and paste the custom dell header on instead.
    The last 2 0x00 bytes are interesting and i think are an artifact of the image having been created in a paint package and converted, in a proper BMP those 2 null bytes would round the image size to 0x61B0, making the last byte byte 0x61AF, this doesnt seem to round the logo in the dell format to an even number.

    I seem to have caught some sort of plague but when im feeling better ill have a go at modding the logo and post the results, i think this apply to most optiplex, precision and dimension desktops, for the following systems:

    Dell Latitude
    C-Series and D-Series systems, except for Latitude CP and Latitude CPi.
    Dell Inspiron
    3700, 3800, 4000 series, 8000 series, 9000 series, 500m series, 600m series.
    Dell Precision
    M-Series

    Dell already provide a tool splash.exe to allow you to change the bios boot logo.
     
  3. danwalmsley

    danwalmsley MDL Member

    Oct 15, 2009
    119
    23
    10
    Have you tried modifying the image data at all to see if the bios accepts it? Or is that too risky? I have a few inspiron 1525s and vostro 1400s which I know I can recover if the bios gets corrupt so if you want me to test a modded bios I will happily test for you.
     
  4. Oz

    Oz MDL Expert

    Sep 1, 2009
    1,077
    743
    60
  5. Apokrif

    Apokrif MDL Addicted

    Dec 7, 2008
    542
    35
    30
    They have few defferent formats - varations of BMP.
    I wrote tools to to convert back and forth quite some time ago.
    Nobody seemed interested at that time so I didn't post anything...
     
  6. Apokrif

    Apokrif MDL Addicted

    Dec 7, 2008
    542
    35
    30
    Does it work for old BIOS format?
    If it does - that's the very thing Andy & yo'll looking for - it has old style compression code! ;-)
     
  7. shakeyplace

    shakeyplace MDL Addicted

    May 5, 2007
    867
    75
    30
    #7 shakeyplace, May 9, 2010
    Last edited: May 9, 2010
    Works with Inspiron 6400 as well (wasn't sure since oem splash screen has different dimensions)... and couldn't find out elsewhere... It will be interesting to then backup the bios and see if it actually mods the bios bootscreen or if it stores the bmp elsewhere, say in the hard drive boot sectors

    Edit,
    Yes it does save it to bios....
     
  8. Apokrif

    Apokrif MDL Addicted

    Dec 7, 2008
    542
    35
    30
    Yep. I.e. it does have compresson code.
    But I think Inspiron 6400 has "new" compresson format.
    Am I mistaken?
    How many versions of SPLASH.EXE exists - i.e. what is the oldest one?
     
  9. Apokrif

    Apokrif MDL Addicted

    Dec 7, 2008
    542
    35
    30
  10. shakeyplace

    shakeyplace MDL Addicted

    May 5, 2007
    867
    75
    30
    One possible reason the desktops aren't officially supported, Dell does have administration tools for their corporate customers (I forget the name of the software suite) and I believe it supports changing boots screens, I suppose so they company can have a corporate logo for their boot screen...
     
  11. Apokrif

    Apokrif MDL Addicted

    Dec 7, 2008
    542
    35
    30
  12. lollett

    lollett MDL Novice

    Feb 3, 2010
    7
    1
    0
    #13 lollett, Sep 12, 2010
    Last edited: Sep 12, 2010
    I've used phoenix tool to extract the bios.exe, and looking in the dump folder i've found the .rom with the bitmap. I've done as described and copied the raster data into an external file which then opens fine.

    Next i've filled the raster data section with all FF's, which changes the logo to all black.

    I'd like to see if this can be flashed, but this is where i'm stuck!

    - Phoenix tool only writes the .rom with the modified slic... But I need to also update the bmp .rom.

    - The extracted bios.hdr file has the:
    00-00-03 Header
    98-01 Image Width
    7A-00 Image Height
    [But the raster section is compressed]

    How do I re-compress this bmp rom???

    I have tried "lzss-r e original_bmp.rom compressed_original_bmp.rom" and compared against the hdr file as it shouldn't have changed.
    Again the 00-00-03..... etc looks fine, the compressed section (which shouldn't have change) is different.
     
  13. Apokrif

    Apokrif MDL Addicted

    Dec 7, 2008
    542
    35
    30
    You’ve done everything right.
    lzss-r is home brew program, it compression algo produce stream compatible with de-compressor in Dell BIOS, but it’s not the same if you shrink same file using Dell compressor.

    I’ll work, I have done replacement myself. I would suggest not changing resolution unless you fiddling with notebook.
    Once you reinsert recompressed logo - you’ll need update CRC - you won’t be able to flash it otherwise.
    HDR tool can replace any module and update CRC as well.
    The reason I didn’t post updated version – we had some discussion about legality of CompuTrace module removing and I’ve decided not too… o_O
     
  14. lollett

    lollett MDL Novice

    Feb 3, 2010
    7
    1
    0
    #15 lollett, Sep 12, 2010
    Last edited: Sep 12, 2010
    Thanks for the quick response Apokrif!

    I'm not changing the resolution or anything, right not just experimenting by changing the whole image to black fffffff.....

    Cheers,

    LOllett
     
  15. lollett

    lollett MDL Novice

    Feb 3, 2010
    7
    1
    0
    #16 lollett, Sep 12, 2010
    Last edited: Sep 12, 2010
    Many many thanks Apokrif!

    Works a treat!
     
  16. shakeyplace

    shakeyplace MDL Addicted

    May 5, 2007
    867
    75
    30
    Apokrif, I would think if someone wants to make use of Andy's tools for this purpose the easiest thing to do would be to choose the advanced options, check "don't alter any acpi tables" uncheck "replace all oem/table id occurences" and the Dell option, perhaps the most important would be to check the first four and the last "control options". If the tool requests to make any changes to acpi, slic etc deny then, before rebuilding the bios it will offer to allow the user to make any changes to additional modules, you could then replace the boot screen module, keeping the same name, using the format described in this thread, and then complete the mod, of course check the log to ensure there is no changes recorded other than your custom boot screen, right?
     
  17. crc-error404

    crc-error404 MDL Novice

    Apr 29, 2010
    7
    0
    0
    #18 crc-error404, Dec 22, 2010
    Last edited: Dec 22, 2010
    Hi to all of you!

    My first post - very n00bish i think - please be considerate with me and my poor english... :D

    Maybe someone can help me with my problem.... im own a dell d430 and i want to change the splash screen... before some of u say - use the post screen tool - it works for me but i loose the loading bar... and resolution and fitting really sucks... So im finding out how to put files back into bios - flashed it and it works.


    so my question is:

    1. Ive changed all pics to the background color #AAAAA - is it possible to change the whole splashscreen background from #000000 (black) to #AAAAAA (grey)?

    If someone can help me, I would appreciate it very much...

    thanks in advance - cheers

    CRC
     
  18. Apokrif

    Apokrif MDL Addicted

    Dec 7, 2008
    542
    35
    30
    I guess, BIOS code doesn’t change background color, but set resolution + clear screen only (black is the default background color).
    I might be very well mistaken - I haven’t seen code loading those images- never had enough time to find it. :(
     
  19. thedogcow

    thedogcow MDL Novice

    May 26, 2007
    3
    0
    0
    I have an Inspiron 6400 and I have windows 7 and ubuntu set up to dual boot (ubuntu boots when the mediadirect button is pressed). I was wondering if anyone out there knew how to change or get rid of the MediaDirect bios POST image? I've been looking everywhere on the net to no avail. I already have a patched bios for the slic tables.