Przeczytalem dwa razy to co napisales i nie za wiele zrozumialem co dokladnie robisz, ale do rzeczy..
Cholok juz czesciowo odpowiedzial na pytanie. Plik
hell.pal zawiera palete 128 kolorow, z tym, ze jest to jakis uniwersalny, wewnetrzny format Glooma i w przypadku tego obrazka z piekla rodem, wykorzystuje on tylko polowe informacji czyli dane dla 64 kolorow (specjalnie dla kosci OCS, ktore nie obsluza 128 kolorow). To jest pewnie jakis trik w GLOOMie, ktory wykorzystuje format graficzny 128kolorow i 64 jako jeden plik. Jak to dokladnie wyglada?
Tak..
KLIK
Paleta zapisana jest we formacie $0RGB (to jest system hexadecymalny) czyli 0, skladowa red, skladowa green,skladowa blue pozniej nastepuje ciag $0000 po czym kolejny kolor $0RGB, znowu ciag $0000 (te ciagi czterech zer oraz zer i osemek to pewnie dopelnienie wartosci skladowej dla trybu AGA), nastepny kolor, ciag $0000 itd. Jesli ulozysz wszystkie kolumny w jeden ciag to otrzymasz cos takiego:
kolor nr 1, cztery zera, kolor nr 2, cztery zera, kolor nr 3, cztery zera,kolor nr 4, cztery zera............kolor nr 64, cztery zera. Dalej zawarta jest druga polowa danych kolorow 65 do 128 w ten sam sposob. Czyli mamy tak, ze pierwszy kolor to 0000,drugi kolor 0AAA , trzeci 0F0F, czwarty 0F0F, piaty 0452, szosty 0792, siodmy 0BC4, osmy 08A6 itd... az do szescdziesiatego czwartego koloru 0777.
Jak odczytujesz barwe koloru:
np. kolor $0BC4 zapisany hexadecymalnie ale po kolei wg skladowych koloru - pierwsze 0 odrzucasz, druga pozycja to skladowa czerwona o wartosci B czyli 11 w systemie dziesietnym , kolejna skladowa zielona C = 12 w systemie dziesietnym i ostatnia skladowa niebieska 4 = 4 w systemie dziesietnym czyli wartosc tego koloru to 11,12,4 ($BC4) barwa zolto-zielona. Jak wlaczysz sobie np. Deluxe Painta to ustawienie suwakow (RGB) koloru o takich wartosciach da wlasnie taka barwe.
Pierwszy kolor $0000 ma wszystkie trzy skladowe = 0 (notacja dziesietna 0,0,0) stad barwa czarna. Kazda skladowa koloru moze miec wartosc od 0 do 15 (hexadecymalnie od 0 do F) np. 15,15,15 to kolor bialy. Stad maksymalna liczba kolorow dla OCS'a to 16 wartosci *16 wartosci *16 wartosci = 4096 barw. Dla kosci AGA kazda skladowa ma 256 wartosci stad paleta 256*256*256 = ponad 16 milionow barw.
Wiec teoretycznie, zeby wrzucic swoj obrazek musisz wgrac go do Painta, zasejwowac jako oryginalny plik, odczytac po kolei wartosci wszystkich kolorow i recznie zapisac je w pliku
hell.pal w notacji $0rgb.
Tylko, ze (uwaga!) to nie jest tryb AGA 64 kolorow tylko EHB OCS'a. EHB to potworek gdzie modyfikujesz tylko pierwsze 32 kolory bazowe a pozostale 32 sa tworzone automatycznie poprzez odjecie polowy nasycenia barwy koloru podstawowego, nie wiem kto to wymyslil ale nalezy mu sie
Przyklad z kolorem $BC4 dla ktorego wartosc polowy nasycenia bedzie $562 (bo B/2=5, C/2=6, 4/2=2) gdzie tak naprawde B/2=5,5 ale wartosc niecalkowita jest zaokraglana w dol stad wynikaja problemy z wykorzystaniem wszystkich 64 kolorow jak rozne odcienie bo czesc zaczyna sie powtarzac.
Cholok slusznie tez zauwazyl smieci na gorze ekranu. Na 99% wynikaja one stad:
Mowisz, ze wprowadzasz recznie ciag 014000F00007 gdzie po przeliczeniu widac, ze $0140 to dziesietnie 320 a $000F0 to 240 zatem format danych graficznych to 320x240 a nie 320*256.