Chciałbym wam przedstawić prostą metodę na pozbycie się ditheringu na stareńkim “szaraczku”. Spowoduje to, że gry na nowoczesnych telewizorach mogą wyglądać lepiej, bądź jak kto woli stracić swój urok 😉
Odrobina teorii…
Konsola Sony PlayStation z 1994 roku posiadała zaawansowany procesor graficzny do renderowania wielokątów i mapowania tekstur, jednak nie posiadała możliwości tworzenia tła 2D i sprite’ów.
Dlatego przyjęło się, że większość (jak nie wszystkie) gry wykonane w 2D wyglądały lepiej na Sedze Saturn, gdyż konsola konkurencji miała specjalny procesor do przetwarzania obrazu 2D.
Jednak w przypadku Sony PlayStation prawie każdy obiekt na ekranie był definiowany dla procesora graficznego jako wielokąt z teksturą (lub prostokąt), bez względu na to, czy był wklejany jako płaski obraz 2D, czy też mapowany w przestrzeni 3D.
Dochodzimy do sedna sprawy. PlayStation posiadała 1 megabajt pamięci VRAM i przechowywała swoją grafikę w 24 lub 15 bitowej głębi kolorów. 24 bitowa głębia kolorów oznaczała dla nas łącznie ponad 16 milionów kolorów, zaś 15 bitowy odpowiednik generował ich tylko 32 tysiące.
Tutaj muszę napisać, że 24 bitowa głębia kolorów nie została wykorzystana w wielu grach chociaż PlayStation podczas generowania grafiki robił prawdziwego “fikołka”, gdyż zazwyczaj PlayStation przechowywało 24 bitowe tekstury w pamięci, jednak renderowało je jako 15 bitowe.
Tak drastyczna redukcja głębi kolorów oznaczała, że na ekranie pojawi się zjawisko “bandingu”, czyli widocznych przejść między kolorami. Dlatego też na konsoli Sony PlayStation stosowano dithering, ponieważ 15 bitów głębi kolorów nie wystarczało, aby konsola była w stanie płynnie przechodzić pomiędzy kolorami.
Czym jest dithering ?
Dithering to technika wykorzystywana w dziedzinie grafiki komputerowej i przetwarzania sygnałów, której celem jest zmniejszenie widocznego efektu “bandingu” w obrazach, szczególnie tych, które mają ograniczoną liczbę dostępnych kolorów w niskiej głębi kolorów.
Dithering polega na wprowadzeniu losowego szumu lub wzorców na obrazie, aby złagodzić ten efekt. Dzięki temu, choć każdy piksel może mieć tylko jedną z ograniczonych kombinacji kolorów, dithering pozwala na efekt bardziej płynnych przejść między kolorami
Firma Sony zdawała sobie sprawę, że głębia kolorów wynosząca tylko 15 bitów mogłaby prowadzić do efektu bandingu, jednak na starych telewizorach, zastosowanie ditheringu prowadziło do mniejszego występowania tego efektu, oraz płynniejszych przejść kolorów dla większości użytkowników. Dopiero przy przejściu na sygnał S-Video lub RGB mogły pojawić się artefakty związane z zastosowaniem tego efektu.
Niestety nie jestem w stanie pokazać wam na prawdziwej konsoli, jak wyglądało zastosowanie ditheringu na konsoli PlayStation. Poniżej macie przykład z emulatora DuckStation, który tak jak konsola potrafi konwertować tekstury z zachowaniem ditheringu:
Co ciekawe konsola PlayStation nakładała ten efekt sprzętowo, więc pytanie brzmi, jeśli dithering był nakładany poprzez hardware konsoli to czy nie można by go po prostu wyłączyć ? Odpowiedź brzmi tak.
Najprostszą metodą na pozbycie się ditheringu jest pobranie PS1_De-Dither-1.1.0 z załącznika poniżej tego wpisu. Jest to prosty skrypt *.bat
nad który musimy opuścić nasz obraz *.iso w celu spatchowania gry i pozbycia się ditheringu. Zmodyfikowany obraz płyty zapisywany jest pod nazwą PatchedISO.
Skrypt (podobno) działa z większością tytułów na PSX jednak przynosi to różne rezultaty. Na przykład jeśli wyłączymy ditering w grze “Silent Hill” to efekt bandingu będzie naprawdę zauważalny, co nie wygląda za dobrze i gra na tym naprawdę traci.
Jednak w przypadku gry “Ridge Racer”, która wydaje się stosować losowy wzór diteringu praktycznie wszędzie, może to zapewnić znacznie “czystszy” wygląd.
Oczywiście tak spatchowane obrazy gier musimy sami sobie wypalić i posiadać przerobioną konsolę, która jest w stanie uruchomić tak zmodyfikowane płyty.
Na zakończenie tego wpisu mam jedno pytanie: posiadacie w swoich zbiorach szaraczka ? Jeżeli tak, to dajcie znać w komentarzach. Być może zachęcony otrzymanym feedbackiem naskrobię jeszcze kilka artykułów na jej temat.
Dziękuję za uwagę.