Poniższy tutorial napisałem głównie pod kątem osób chcących tłumaczyć
lub hakować ;] gry na starego, poczciwego PSXa jak i dla ludzi którzy
już wcześniej mieli styczność z romhackingiem i chcą się "przenieść" na
"duże konsole" (tym samym poznając prawa rządzące grafiką). PSOne się
idealnie do
tego nadaje. Jej popularność zachęciła mnóstwo ludzi do napisania
bardzo dobrych narzędzi, dokumentacji i tutoriali takich jak ten hehe.
Niestety, w konsekwencji jest też skierowany do osób które używają
komputera do czegoś więcej niż tylko chat-owania i grania w pasjansa ;]
Początkującym może się wydać chaotyczny lub nawet całkowicie
niezrozumiały. Jeśli należysz do tej właśnie grupy, nie czytaj, nie bluzgaj, a
poprostu wróć za jakiś czas. Jak to mówią: "Nie od razu Rzym zbudowano".
Zanim przejdziemy do krótkiego FAQ i czegoś konkretnego, należy
wspomnieć o jeszcze jednej, bardzo ważnej rzeczy - natury etycznej:
Jeśli nie jesteśmy w posiadaniu oryginalnej kopii
gry, na której pracujemy, naruszamy prawa autorskie. Publikując lub
zamieszczając w sieci zmodyfikowane przez nas pliki również łamiemy
prawo (możemy za to stworzyć patcha, ale to już materiał na inny artykuł).
Kilka słów o TIM file:
Cóż to takiego? Jest to najpopularniejszy format graficzny
(2d), który rozpoznaje nasza PSOne. Modyfikując taki plik modyfikujemy menu, tło,
teksturÄ™ etc. w grze. Wierzcie mi, nie jest to trudne, a sprawia
mnóstwo radości i satysfakcji.
Zawiera takie informacje jak:
- Color mode (4; 8; 16; 24)
- CLUT Section (siatka, paleta/y)
- Pixel Data Section (VRAM, rozdzielczość)
- STP Bit (przeźroczystość, pół przeźroczystość)
- Round lower 3 bit (pojęcia nie mam :])
Mogą występować w postaci 4, 8, 16 lub 24 bitowej. Na nasze
szczęście każdy *.tim korzysta z określonej ilości kolorów w palecie (o ile taką ma, ale o tym w dalszej części):
4bit - 16 kolorów
8bit - 256 kolorów
16bit - 32 lub 64 tysiące kolorów
24bit - >64000 kolorów
I co z tego? Otóż dzięki takiej budowie plik o określonej rozdzielczości i ilości kolorów zawsze będzie ważył tyle samo. Dzięki temu możemy operować na obrazie lub big file'u
bez potrzeby pisania unpackerów.
"Ok. ale w jaki sposób "wyjąć" taki plik z gry, przecież bardzo rzadko *.tim-y znajdują się "pojedynczo" na płycie?"
Do tego celu należy zaopatrzyć się w program zdolny do ich "ekstrakcji"
i włożeniu pod ten sam offset. Na kolejnych dwóch stronach opisałem dwa, zdecydowanie najlepsze z nich.
Mini FAQ:
"Po edycji moja bitmapa waży, więcej niż pierwotnie"
Jest kilka powodów dlaczego tak się stało. Możliwe, że twój plik ma
większą rozdzielczość lub większą paletę (więcej kolorów).
Jeśli edytowałeś plik innymi programami niż tymi, które ja opisałem to
istnieje prawdopodobieństwo, że dodały do pliku swoje "trzy grosze"
(podpis). Np. TimTool zawsze dodaje 16 byte'ów i jest to szczególnie
irytujące przy 4bit. Jeśli tak to co z tym zrobić? Trzeba w hex
edytorze przyciąć dummy, poprawić to co się popsuło i jeszcze raz
zapisać. Powinno pomóc, tylko po co robić konkurencję mitycznemu
Syzyfowi ;] ?
"Po edycji moja bitmapa waży, mniej niż pierwotnie"
Analogicznie: Możliwe, że twój plik ma mniejszą rozdzielczość lub mniejszą paletę (mniej kolorów).
Czasem timy majÄ… kilka palet, rzadko bo rzadko ale jednak (np. Ace
Combat, Parasite Eve). Edytując taki plik w programie, który widzi
tylko pierwszą z nich i zapisaniu, tracimy wszystkie pozostałe. Jedyna
znana mi metoda to PSH, ale jeśli chcemy wstawić własną, zupełnie nową
bitmapę trzeba ją ręcznie edytować co może prędko doprowadzić do
szewskiej pasji.
"Czy mogę samemu zrobić tim, który zawierałby kilka palet ?"
Jeśli chciałeś nim zastąpić bitmapę z jedną paletą to czy uprzednio
pomyślałeś jak go potem z powrotem wsadzić? Będzie za duży. Jeśli zaś
masz kłopot z edycją takiej, która zawiera więcej niż jedną paletę to
cóż... Móc możesz, pytanie tylko jakim programem.
"Czy mogę zmienić koordynaty do VRAM ?"
Tylko jeśli wiesz co robisz. Na ogół developerzy wykorzystują cały
"bufor", a taka zmiana może spowodować wyrzucenie innej bitmapy lub
"wysypanie" gry do debug mode.
"Gra się bug-uje, wyrzuca do debuga lub całkiem zawiesza"
Jak wyżej. Ewentualnie plik jest błędnie adresowany (zła wielkość, zły offset, błąd programu itd...).
"Przeskanowałem obraz/plik, ale wszystkie timy mają jakieś dziwne kolory"
Niektóre gry korzystają z zewnętrznych palet (vide Crash Team Racing,
Vagrant Story). Edycja takiego tima jest mocno utrudniona, ponieważ w
grę wchodzą tylko i wyłącznie programy, które wraz z załadowaniem
naszej bitmapy, dodatkowo odczytujÄ… paletÄ™ (np. *.clt). Jakie to
programy? Nie mam pojęcia, jedynie o tym czytałem i niestety dla mnie to nadal
stanowi niezbadanÄ… materiÄ™.
"A gdybym dodał własną paletę ?"
To na ekranie Ci wyjdzie wojna mrówek :)
"Przeskanowałem obraz/plik i nie znalazłem wszystkich/żadnych timów"
Poszukiwane przez Ciebie pliki sÄ… prawdopodobnie skompresowane, a
jedynÄ… metodÄ… ich ekstrakcji jest napisanie ext/reb do tego munge'a
(drobiazg, prawda? ^^). Może też się tak zdarzyć, że obiekty 3d wcale
nie są w *.tmd/*.pmd/*.hmd, a specjalnie opracowanym przez developerów
formacie (w takim przypadku gra nie korzysta z "zewnętrznych" tekstur).
"Czy mogę uszkodzić konsolę poprzez takie zabawy ?"
Naturalnie, że nie. Co najwyżej możesz doprowadzić swoją kopię gry do stanu, który nie nadaje się już do użytku ;]
"Czy takie zabawy sÄ… legalne ?"
Legalne jeśli masz oryginalną kopię, nie zamierzasz potem handlować
swoimi owocami pracy i nie upubliczniasz plików z danej gry.
Ponadto legalne jeśli nie rozbierasz niewiast w Dead or
Alive X Beach Volleyball lub nie odsłaniasz sutków biednej Larze Croft (ależ skąd, żadna aluzja he he)