SEGA DREAMCAST SITE

FELIETONY:
Sonic Adventure Hacking
ver.0.2  [ by
Nettapu ]


 

Premiera gry Sonic Adventure była dla wszystkich fanów momentem wyjątkowym - Sonic przeszedł porządną metamorfozę i ukazał się na bardzo dobrej (wtedy) i szybkiej konsoli. Sonic mógł pokazać naprawdę na co go stać. Wystarczy włożyć płytkę do napędu w konsoli.. Właśnie. Płytkę. Z powodu oczywitego, jak bardzo duża ilość danych (no i dostosowanie się do rynku) Sonic Adventure, tak jak wszystkie inne gry na DC wyszły na specjalnych płytach GD-ROM.
Czym różni się płyta GD-ROM od zwykłej płyty CD-ROM? Po pierwsze, pojemnością. Płyta GD-Rom może pomieścić do jednego GB danych (zwykła płyta CD mieści od 650 do 800 mb). Po drugie, budową fizyczną. Płyta GD-ROM składa się z dwóch części: pierwsza, posiada dwie sesję - sesje dźwiękową ("This is a dreamcast disk, and can be used...") i sesję z danymi, gdzie umieszczone są dane czytane przez komputery PC (tu znajdują się np. tapety, ale najczęściej informacje techniczne). Ta część płyty jest zakańczana dwumilimetrowym paskiem z napisem SEGA, by normalne napędy komputerowe nie czytały płyty dalej, tylko "myślały" że to już koniec płyty. SEGA chciała tym sposobem uniknąć piractwa. Oczywiście, piraci znaleźli sposób jak obejść pierwszą część płyty i kopiować płyty (robią to przez dreamcasta, ale to już inna historia). W drugiej części płyty znajdują się dane gry. Wszystkie tzw. "kope zapasowe gier" (aka backups) zawierają tylko drugą część płyty. Posiada ona dwie sesje (muzyczną i z danymi). Jeśli chcesz zająć się "hackowaniem" Sonic Adventure, potrzebujesz właśnie takiej kopii gry, która będzie "odczytywana" przez napęd CD w twoim komputerze. Radzę także zostawić sobie 1 GB wolnego miejsca na dysku, by zgrać całą zawartość płyty na dysk, by móc edytować pliki gry. Większość potrzebnych progamów ściągniecie z:

 www.MegaGames.com


Przejdźmy już do samej płyty z grą Sonic Adventure. W głównym katalogu znajdują się pliki IP.bin, 1ST_read.bin, 2_DP.bin, 0GDTEX.PVR i pliki strony internetowej (opcja Internet w menu głównym gry). Plik 0GDTEX.PVR jest plikiem tekstury płyty, która jest wyświetlana po włożeniu płyty do Dreamcasta i otworzenia jej jako płyty Audio (kręcąca się płyta wokół własnej osi). Co to za plik z rozszerzeniem *.PVR (power vr texture format)? Wszystkie pliki tekstur na płycie posiadają właśnie to rozszerzenie. Inne rozszerzenia to np.: *.adx, *.prs. Pliki *.pvr radzę przeglądać programem Susie z wgraną wtyczką obługi tego typu plików, do ich edycji polecam poprostu Adobe Photoshop także z wtyczką do obsługi *.pvr.



Nazewnictwo plików pvr jest proste i łatwo domyśleć się co w każdym pliku jest:



Bitmapy tytułów leveli:
(pierwsza litera nazwy postaci)_STAGE(numer levelu)(określenie języka: nic - japoński, _E - angielski



Bitmapy tekstu misji:
MISSION_(pierwsza litera nazwy postaci)_(nazwa misji definicja misji np. rings, czyli zebranie 100 pierścieni na czas)_(pierwsza litera języku)



Tekstury tytułów lokacji (adventure field):
T_(nazwa lokacji) (definicja języka, czyli np. _E)
Te tytuły są wspólne dla każdej postaci i występują najczęściej.



Sprite'y zestawów czcionek:
(definicja czcionki)_txt (odkrywcze, nie? :])
Przy edycji zestawów czcionek, musimy pamiętać, iż gra ma zapamiętany współrzędne liter i ich wymiary, zatem przy tworzeniu własnych czcionek musimy uważać by jedna literka nie wchodziła na drugą. Więc nie szalejcie przy wymyślaniu nowych rodzaji tych cziocnek, ponieważ możecie osiągnąc nierządany efekt...



Pierwsze litery postaci: S (Sonic), M (Miles), K (Knuckles), A (Amy), B (Big), i E (E-102). Dla każdej postaci jest inna seria tytułów leveli, ponieważ każda postać ma "własny kolor" i levele przeczhodzi w różnej kolejności. Tytułów leveli posiada najwięcej Sonic, ponieważ występuje on prawie w każdym levelu.



Edytując te pliki możemy osiągnąć ciekawe efekty. Na przykład możemy spolszczyć grę lub pozmieniać tytuły leveli, możemy zmienić czcionkę napisów końcowych, lub wymazując wszystkie litery poprostu je usunąć (co nie jest dobrym pomysłem, lepiej zedytować plik summary.prs w którym znajdują się napisy końcowe i poprostu wyzerować cały tekst lub poddać go śmiesznej przeróbce).



Przy edycji bitmap tekstu misji, radzę brać czciockę Arial Bold o rozmiarze 21 i najlepiej by była Smooth.



Ja widać na obrazku różnica pomiędzy obiema czcionkami jest niewielka. Trzeba też pamiętać, że w tym przypadku tekst jest wyśrodkowany i wartości celu misji (tutaj czas) są czerwone. Przy edycji tych bitmap nie zmieniajcie rozmiarów obrazka.



Oto szablony które zrobiłem i które mogą się wam przydać:



Tytuł poziomu Sonica



Tytuł poziomu Tailsa



Tytuł poziomu Knucklesa



Tytuł poziomu Amy



Tytuł poziomu Biga



Tytuł poziomu E-102 Gammy



Tytuł sub-gry



Pliki dźwiękowe w Sonic Adventure (i w większości innych gier) możemy podzielić na pliki z dwoma rozszerzeniami: *.adx, czyli zwykły plik dźwiękowy i *.asf - spakowany zbiór plików dźwiękowych. Pliki adx w SA to muzyka podczas leveli oraz np. dźwięk ukończenia rundy. Pliki z utworami można podzielić na części. Pierwsza część to część wstępna. Następnie jest część właściwa utworu. Część pierwszą oddziela od drugiel tzw. "loop flag" czyli chorągiewka zapętlenia, a więc miejsce do którego wraca utwór po własnym skończeniu.



Pliki *.asf na płycie są dwa: event_adx.asf i jego angielski odpowiednik.
Po rozpakowaniu zawartości pliku event_adx_e.asf (np. używająć AFS->ADX Unpacker) otrymamy 2044 pliki, który każdy jest efektem dźwiękowym z gry, najczęściej dialogiem. Jak je odsłuchać? Polecam wtyczkę do WinAmpa do obsługi plików adx. Zwróć uwagę na niektóre pliki, które nie były wykorzystane w końcowej wersji gry (np. począwszy od nr 01994 znajdziemy "SEGA" i "SONIC TEAM" mówione przez postaci z gry. Najbardziej lubię kiedy Big mówi^^).





Edycja tekstu, "stringów" w grze.

Tekst zapisany jest w plikach o rozszerzeniu *.bin, choć nie każdy plik o takim rozszerzeniu to tekst. Inne pliki (np. te które zaczynają się na cam) są to współrzędne kamery, które są potrzebne podczas filmików generowanych przez konsolę. Są to też pliki mówiące jak dana postać ma się zachowywać podczas filmiku (np. uśmiech, skok, mówienie itp.). My narazie zajmiemy się edycją tych plików, które zawierają tekst używany podczas gry:



Nazewnictwo plików:



Dialogi w "Adventure mode"
Skrót rejonu (SS-Statnio Square, MR-Mystic Ruins)lub PAST dla dialogów z przeszłości_MES_pierwsza litera postaci_pierwsza litera języka.BIN



Dialogi podczas sekwencji filmowych:
EVXXXX.PRS gdzie XXXX to numer filmiku/wydarzenia.



Inne pliki:
SUMMARY.PRS - podsumowania i napisy końcowe

ADVERTISE.PRS - Tytuły piosenek w Sound Test




Pliki otwierać możemy hexeditorem lub dowolnym edytorem tekstu, ale edytujemy TYLKO HEXEDITOREM, ponieważ nie możemy nadpisać żadnych bite'ów. Podczas edycji stringów napotykamy się na różne znaki.



Pliki PRS trzeba najpierw zdekompresować, potem edycja i z powrotem musimy skompresować.
By to zrobić, użyj tych aplikacji 

Obsługa aplikacji prsdec
Otwieramy wiersz polecenia, przechodzimy do katalogu w którym jest plik *.prs do dekompresacji (i w którym znajduje się aplikacja prsdec). Wydajemy następujące polecenie:

prsdec XXXXXXX.PRS YYYYYYYY.ZZZ

gdzie X to nazwa pliku bazowego, y nazwa pliku wyjściowego, Z rozserzenie pliku wyjściowego.
Większość plików prs to pliki pvm, czyli biblioteki tekstur. Jest to zbiór plików PVR. Do "rozpakowania" biblioteki PVM służy oddzielna aplikacja, pvmupk.

Obsługa aplikacji pvmupk
Otwieramy wiersz polecenia, przechodzimy do katalogu w którym jest plik *.pvm do rozpakowania (i w którym znajduje się aplikacja pvmupk). Wydajemy następujące polecenie:

pvmupk XXXXXXX.PVM

gdzie X to nazwa pliku biblioteki.

Tagi używane podczas edycji tekstów
Oto lista najczęściej używanych tagów używanych w plikach z tekstem gry:






Tag


Co robi

07

Nowy tekst
0A Nowa linia tekstu
00... 09 Nowa linijka tekstu w summary
00.. 81 40 Nowe summary
*** ***
>
Większość hexeditorów zastępuje w ASCII np. 0A, 07 kropkami, więc pamiętajcie, że prawdziwa kropka ma wartość 2E. Uważajcie przy edycji tekstu by nie zjadać tagów nowych linii, ponieważ tekst będzie wtedy nie mieścił się w linijce i w wyniku czego nie zostanie on cały umieszczony/nie będzie cały widoczny.

FF jest używany często do odznaczenia dialogów pomiędzy sobą, wyświetlany jest najczęściej w ASCII jako Y z falą u góry.

Nagrywanie gotowego hacka
Erm, a więc: gdy wszystkie pliczki gotowe (zostały spowrotem skompresowane itp.), zabieramy się do nagrywania gry. Nagramy wersję non-selfboot naszej gry.
Nagrywamy wszystko jak leci, czyli pliki strony internetowej (ja je usuwam - sa zbędne), IP.BIN itd. do katalogu głównego, pliki gry do SONICADV. Label nadajemy Sonic. I teraz bardzo ważne, o czym musicie pamiętać: zawsze musi być Mode 1 i ISO level 2, inaczej gra nie będzie działać. Znaki ISO 9660.

U góry macie screena pokazującego co się dzieje, kiedy popełnicie błąd przy nagrywaniu CeDe.
EOF 

Pliki PVM: Struktura i operowanie na plikach PVM
Jak już napisałem pliki PVM są to biblioteki tekstur. Dzięki programowi pvmupk w który zdążyliście się pewnie zaopatrzyć (plik DC.rar), macie możliwość wypakowania plikó PVR z plików PVM. Tylko jak teraz spakować je z powrotem?
Struktura plików PVM jest banalnie prosta, wystarczy dobra znajomość w posługiwaniu się dowolnym Hexeditorem. Każdy plik *.pvm zaczyna się od PVMH. następnie są wymieniane nazwy plików w kolejności w jakiej występują. Pomiędzy każdym plikiem jest 22 byte'ów przerwy, potem jest znak o różnej wartości (którym nie musicie się przejmować, a następnie kolejne 5 byte'ów przerwy. Każdy plik *.pvr zaczyna się od PVRT. Jak zauważycie po dalszym wglądzie w dowolny plik pvm, tu też występują wyrazy PVRT. Struktura plików pvm jest bardzo prosta: po liście nazw plików znajdują się pokoleji jeden za drugim pliki pvr. Załużmy, że chcemy podmienić trzeci plik (plik który na liście u góry pliku jest trzeci). A więc: przechodzimy do trzeciego wystąpienia PVRT i wszystko od jednego PVRT do następnego PVRT (nie włącznie) zamieniamy plikiem który jest gotowy do podmiany. Viola! To szystko!
Uwaga: Niek
tóre konwertery "file to PVR" dodają różne tagi na początku pliku, Usuńcie je i doprowadźcie plik do poprzedniego rozmiaru np. dodając byte'y na koniec pliku.

 


 

 

Copyright C 2002-2003 M@jk. Wszelkie prawa zastrzeżone. Site design by LaGranda. Best view 1024x768