Ten tutorial jest uzupełnieniem tego tutoriala, dlatego w osobnym temacie bo edytując tam pierwszego posta zrobiłbym nieco bałaganu w całym temacie...Jak już wiadomo z poprzedniego tutoriala pliki bootscreenów mają zaimplementowaną paletę kolorów w której wyświetlają grafiki.
Istnieje jednak sposób na jej zmianę

Do podmiany palety w plikach kernela będą nam potrzebne takie narzędzia jak:
-Paint Shop Pro 9 (ja tego używam i na tym są screeny)
-hexedytor (w moim przypadku Hexplorer)
-program do edycji zasobów graficznych
-Paint
-Notatnik
-Kalkulator
Zacząć trzeba od wybrania odpowiedniego obrazu który by nas satysfakcjonował, w tym przypadku wybrałem sobie logo qlimax'u


Trzeba otworzyć obraz i odpowiednio przez edycję rozmiaru (przez 'Resize' i 'Canvas Size') dopasowujemy go do rozmiaru 640x480.

Teraz wybieramy z menu kolejno 'Image -> Decrease Color Depth -> 16 colors'

Opcjami dostępnymi u dołu okienka kombinujemy tak aby uzyskać możliwie najładniejszy obraz

Gdy to zrobimy, paleta ustawi się na 16-kolorową więc teraz znowu wybieramy 'Image -> Pallete -> Save Pallete'

Podajemy nazwę i zapisujemy

Znowu wybieramy 'Image -> Pallete -> Edit Pallete'

I odczytujemy kod HTML dla każdego indexu palety (na dole po prawej)



zapisując każdy kolejny index w notatniku w taki sposób

Microsoft zadbał aby nie było łatwo więc teraz trzeba każdy kolor nieco odwrócić zamieniając ostatnią kolumnę z pierwszą tak jak widać to na screenie

Wróciwszy do PSP musimy stworzyć nowy obraz o wymiarach 22x9, będzie to nasz pasek postępu.

Gdy utworzymy nowy obrazek, trzeba go dostosować do naszej palety, dlatego wybieramy 'Image -> Pallete -> Load Pallete'

wybieramy naszą paletę i klikamy na 'Load'

Teraz można się ewentualnie wykazać twórczością i narysować samemu progressbar a gdy się to zrobi można zapisać go jako grafikę 4, pamiętać trzeba o przestawieniu żeby PSP zapisał obraz jako bitmapę.

Tak samo zapisujemy nasze tło, czyli bitmapę nr 1.

PSP można już zamknąć, nie będzie potrzebne.
Teraz w hexplorerze otwieramy plik kernela (np. ntoskrnl.exe) i szukamy ciągu wartości
00000000151A200046464600D23E2D00016553000535B2007E7E7E0000928900FC7F5E00206BF700FFA68D0004DC8E001BBCF300BCBCBC00FCFCFC00FFFFFF
wartość długa, ale na pewno się znajdzie

Teraz ważny etap, począwszy od momentu podświetlenia zaczynamy wpisywać wartości indexów z palety, te które odwróciliśmy w notatniku (kolumna reverse) oddzielając każde 6 cyfr 2 zerami, łatwiej zobaczyć na screenie o co chodzi, wyjdzie coś takiego

W tym momencie, jeśli mamy ochotę zmienić pozycję paska postępu, możemy to zrobić

Szukamy wszystkich wartości
62010000 w pliku.
62 01 00 00 to po odwróceniu wartość hex
00 00 01 62 czyli dziesiętnie
354 - to jest górna krawędź paska postępu.
Jeśli chcemy ją zmienić trzeba wybrać wartość np.
465 w moim przypadku, ustawiamy kalkulator na DEC i wpisujemy
465,

po przestawiniu na HEX dostajemy
1D1 czyli
00 00 01 D1,

zatem trzeba to odwrócić spowrotem czyli
D1 01 00 00. W tym momencie podmieniamy znalezione wartości w 3 miejscach zaznaczonych na screenie.

Następnie szukamy wartości
6A010000, tak samo
6A 01 00 00 to
00 00 01 6A hex, czyli
362 - to wartość dolnej krawędzi paska.
Licząc, że
354+9-1=362 (9 to standardowa wysokość paska, w bitmapie 4 i 8) mogę policzyć sobie gdzie będzie dół mojego paska,
465+9-1=473 (znowu korzystam z kalkulatora) czyli
1D9 hex, odwracam
00 00 01 D9 na
D9 01 00 00 i podmieniam w 2 miejscach na screenie.

Dlatego pisałem 9-1 zamiast 8 bo ktoś może chcieć wyższy pasek postępu albo niższy więc za 9 podstawi swoją wysokość i policzy dalej, należy pamiętać o odpowiedniej zmianie rozmiaru bitmap w pliku.
Dobierając swoje współrzędne postępujemy analogicznie do mojego przykładu szukając tych samych wartości bo zawsze standardowo pasek jest w tamtym miejscu.
Po dokonaniu tych edycji można już zapisać plik,
pod żadnym pozorem nie można go nadpisać na nasz systemowy, bo jeśli coś zrobiliśmy źle to nie uruchomimy już komputera bez poprawnego pliku
Teraz otwieramy w paincie plik 1.bmp (ten z tłem) i rysujemy sobie ramkę dla paska postępu, można narysować prostokąt zaczynając od punktu x=256 a y=zależy od tego gdzie chcieliśmy umieścić progressbar (sama bitmapa nakłada się w punktach od górnej do dolnej granicy którą niedawno sobie wprowadziliśmy więc trzeba dać jeszcze ze 2px w góre w w dół aby pasek nie nachodził na ramkę) o szerokości i wysokości 125x14 (wysokość można zmienić jeśli zadaliśmy wcześniej że nasz pasek postępu będzie wyższy), wypełnić go na czarno, a ramkę zrobić według własnych upodobań. Wyedytowaną bitmapę zapisujemy.
Plik kernela należy teraz otworzyć w programie typu ResHacker, PE Explorer, Restorator itp. i podmieniamy w nim bitmapy 1,4 i 8 na te które przed chwilą zapisaliśmy (do bitmapy 8 dajemy bitmapę 4 bo to to samo) i zapisujemy
Ważne jest sprawdzenie czy plik w ogóle działa, można to zrobić tak, że do pliku boot.ini kopiuje się linię ze ścieżką do naszego systemu na końcu dodając parametr
/kernel=nazwa pliku. Więc należy dany plik skopiować do folderu system32 pod jakąś nazwą np. qlimax.exe w moim przypadku (dobrze jest też plik potraktować programem modifype poprzez otwarcie CMD w system32 i wpisanie
modifype qlimax.exe -c) i dopisać linię do boot.ini, tak jak na screenie

Wtedy przy uruchomieniu systemu należy z opcji wybrać ten drugi, jeśli się coś nie powiedzie to po restarcie wybrać trzeba pierwszy i nie będzie problemu z powróceniem do działającego systemu i wtedy trzeba próbować dalej

natomiast gdy wszystko się powiedzie można wyedytować pozostałe 3 pliki w identyczny sposób.
Domyślam się, że niektóre osoby po przeczytaniu tego tutoriala się nieco przeraziły, że to troszkę skomplikowane, ale przecież mi się udało... I wyszło

to tak dla przykładu osatni screen

Zatem z tego miejsca życzę dużo cierpliwości i powodzenia, a temat bootscreenów chyba wyczerpałem do końca
