Jump to content

[TUTORIAL] Pliki dbx pakowanie i rozpakowywanie


Recommended Posts

Coraz więcej rosyjskich modów pojawia się w formie spakowanej do plików dbx czyli takich jak oryginalne pliki stalkera.Rozwiązanie to ma swoje wady i zalety.Zaletą na pewno jest większa stabilność gry i szybkość ładowania.Gra alfabetycznie ładuje wszystkie kolejne pliki gamedata.db do pamięci wirtualnej i tam tworzy wirtualną gamedatę.Jeśli mamy moda w formacie dbx to w pamięci wirtualnej jest on o wiele szybciej synchronizowany z podstawką niż tak jak było do tej pory najpierw czysty stalker i doczytywana gamedata z dysku.Wadą jest żmudne pakowanie i rozpakowywanie i właśnie tego trzeba będzie się nauczyć.Do spakowywania i rozpakowywania plików dbx będzie nam potrzebny program converter który możemy ściągnąć stąd : converter dbx.rar

A także pliki rozruchowe packer i unpacker które będziemy musieli sobie napisać sami do każdej operacji osobno

Przykładowy plik packera wygląda tak

chcp 1251
converter -pack gamedata -2947ww -out gamedata.dbx
chcp 866
pause
gdzie x w gamedata.dbx jest kolejną literą alfabetu,na przykład jeśli chcemy uzyskać plik gamedata.dbh to x= h

kopiujemy to sobie do notatnika , zapisujemy z dowolną rozpoznawalną nazwą i teraz zmieniamy rozszerzenie pliku tekstowego z packerem z txt na cmd.Domyślnie w Windowsach rozszerzenia znanych plików takie jak txt są ukryte, więc trzeba będzie sobie włączyć w opcjach folderów "pokaż rozszerzenia znanych plików" U mnie na Windows 7 jest to w organizuj / opcje folderów i wyszukiwania / widok / pokaż rozszerzenia znanych plików.Po zmianie rozszerzenia mamy gotowy plik packera

Przykładowy plik unpackera wygląda tak

chcp 1251
converter -unpack -2947ww gamedata.dbx
chcp 866
pause
gdzie x w gamedata.dbx jest kolejną literą alfabetu,na przykład jeśli chcemy rozpakować plik gamedata.dbh to x= h

postępujemy dokładnie tak samo jak z packerem , kopiujemy , zapisujemy,zmieniamy rozszerzenie na cmd

No to teraz poćwiczmy.Rozpakujemy sobie pliki oryginalnego stalkera

A więc tam gdzie mamy dużo miejsca na dysku tworzymy sobie nowy folder i kopiujemy do niego wszystkie pliki dbx z katalogu gry a więc gamedata.db0,db1,db2,db3,db4,db5,db6,db7,db8,db9,dba,dbb,dbp .Do tego folderu przenosimy też plik convertera i teraz trzeba sobie przygotować plik unpackera.Jeśli chcemy rozpakować całość do jednej gamedaty to ten plik powinien wyglądać tak

chcp 1251
converter -unpack -2947ww gamedata.db0
converter -unpack -2947ww gamedata.db1
converter -unpack -2947ww gamedata.db2
converter -unpack -2947ww gamedata.db3
converter -unpack -2947ww gamedata.db4
converter -unpack -2947ww gamedata.db5
converter -unpack -2947ww gamedata.db6
converter -unpack -2947ww gamedata.db7
converter -unpack -2947ww gamedata.db8
converter -unpack -2947ww gamedata.db9
converter -unpack -2947ww gamedata.dba
converter -unpack -2947ww gamedata.dbb
converter -unpack -2947ww gamedata.dbp
chcp 866
pause 

Zapisujemy plik tekstowy z dowolną nazwą , zmieniamy rozszerzenie z txt na cmd i gotowy plik unpackera wrzucamy do naszego folderu z plikami dbx i converterem.Teraz klikamy na niego dwa razy i po paru minutach mamy rozpakowaną gamedatę stalkera

No tak powie ktoś tylko po co mi to , to może dobre dla modderów albo innych fanatyków a ja chcę tylko pograć.Słusznie , więc teraz spróbujemy wrzucić do czystego stalkera malutką modyfikację którą sam na tę okoliczność stworzyłem.

Ściągamy sobie stąd: Weight Mod SoC 1.004.rar małego modzika na zwiększenie udźwigu w Cieniu Czarnobyla.Mamy gotową gamedatę którą normalnie skopiowaliśmy do folderu gry i po modyfikacji pliku fsgame cieszylibyśmy się grą.My to zrobimy po nowemu.Czyli tak

Kopiujemy gamedatę modzika do nowego folderu , przenosimy tam też plik convertera i teraz czas na plik packera.Szykujemy sobie w notatniku taki wpis

chcp 1251
converter -pack gamedata -2947ww -out gamedata.dbe
chcp 866
pause

Zapisujemy,zmieniamy rozszerzenie na cmd ,kopiujemy do katalogu z modem i converterem.Zwróćmy uwagę na końcówkę literową z którą chcemy uzyskać naszą spakowaną gamedatę dbe.Mimo że pliki stalkera kończą się na dbb , no cóż taką zasadę przyjął Trurl3 a że on będzie zapewne głównym dostarczycielem takich plików nie będziemy mieszać.Klikamy dwa razy na pliku packera i za moment mamy gotowy plik gamedata.dbe który wrzucamy do katalogu gry.Rozwiązanie jest bardzo wygodne dla użytkowników którzy instalują kilka małych modów.Nie od dziś wiadomo że te drobiazgi lubią się ze sobą gryźć, więc jeśli każdy dodatek spakujemy do osobnej gamedaty.dbx bardzo łatwo znajdziemy przyczynę wylotów po prostu usuwając kolejne pliki z katalogu gry.

No to teraz pójdziemy na całość i spakujemy sobie Soljankę

Szykujemy sobie folder nazwijmy go Soljanka by z racji większej liczby eksperymentów nie myliło nam się która gamedata do czego.W folderze tym tworzymy sobie normalną gamedatę soljanki taką jak zawsze.A więc soljanka 19.04 +dopełnienie+patch +spolszczenie i dodatki które chcemy mieć.Wszystko wg instrukcji instalacji.Tak przygotowaną gamedatę trzeba teraz podzielić na konkretne pliki dbx które chcemy uzyskać.Z racji tego że bezpieczna wielkość pliku dbx waha się gdzieś w granicach 1.5gb a gamedata soljanki ma 6.5 gb podzielimy ją na pięć części.Tworzymy w folderze soljanka 5 nowych folderów i by się nie mieszało dajemy im nazwy zgodnie z wzorcem ustalonym przez Trurl3 dbe,dbf,dbg,dbh,dbi.W każdym z tych folderów tworzymy katalog gamedata.Teraz przenosimy po kolei pliki gamedaty soljanki do poszczególnych folderów pilnując wielkości folderu.U mnie wygląda to tak

Folder dbe/gamedata

Foldery:anims, config , część folderu levels od atp­_for_test22 do jupiter_underground i cała drobnica która jest w gamedacie soljanki poza folderami - pojemność 1.41gb

Folder dbf/gamedata/levels

Cała reszta folderu levels od 101_escape do zaton - pojemność 1.58gb

Folder dbg/gamedata

Foldery meshes, scripts , shaders , sounds,spawns - pojemność 1.01 gb

Folder dbh/gamedata/textures

Część folderu textures od podfolderu 1 po lights - pojemność 1.33gb

Folder dbi/gamedata/textures

Reszta folderu textures od podfolderu map po textures.ltx bak - pojemność 1.15gb

Jeśli dzielimy folder levels lub textures na dwie gamedaty to w każdej z nich musimy utworzyć folder levels czy też textures i dopiero do niego kopiować konkretne pliki

Więc mamy wszystko podzielone teraz czas to spakować.Można to zrobić na dwa sposoby.Albo pakujemy każdy plik osobno i wtedy postępujemy dokładnie w sposób podany przy pakowaniu moda na udźwig , tyle że trzeba to będzie powtarzać pięć razy, albo spakujemy to wszystko za jednym razem.W tym wypadku plik packera będzie wyglądał trochę inaczej a konkretnie tak:

chcp 1251
converter -pack dbegamedata -2947ww -out gamedata.dbe
converter -pack dbfgamedata -2947ww -out gamedata.dbf
converter -pack dbggamedata -2947ww -out gamedata.dbg
converter -pack dbhgamedata -2947ww -out gamedata.dbh
converter -pack dbigamedata -2947ww -out gamedata.dbi
chcp 866
pause 

Jeżeli ktoś swoje foldery z gamedatami do spakowania nazwał inaczej , na przykład nowy folder1 , nowy folder2 itd to plik packera powinien wyglądać tak

chcp 1251
converter -pack nowy folder1gamedata -2947ww -out gamedata.dbe
converter -pack nowy folder2gamedata -2947ww -out gamedata.dbf
converter -pack nowy folder3gamedata -2947ww -out gamedata.dbg
converter -pack nowy folder4gamedata -2947ww -out gamedata.dbh
converter -pack nowy folder5gamedata -2947ww -out gamedata.dbi
chcp 866
pause 

Tak czy siak zapisujemy nasz plik tekstowy, zmieniamy rozszerzenie na cmd i kopiujemy do folderu soljanka gdzie mamy nasze przygotowane podfoldery z gamedatami do spakowania.Jeszcze plik convertera, klikamy dwa razy na packerze i po kilku minutach mamy gotową Soljankę w plikach dbx .Przenosimy gotowe pliki do folderu z grą i cieszymy się jak szybko się ładuje

No dobrze ktoś powie , fajnie że spakowana soljanka chodzi szybciej i stabilniej ale ciągle są nowe wersje spolszczenia , hudy, poprawki ,poprawki poprawek, patche, polskie akcenty i inne drobiazgi które każdy chciałby mieć i tak będę za każdym razem to rozpakowywał i spakowywał ?

Nie wcale tak nie trzeba robić.Każda poprawka jest dostarczana w postaci gamedaty którą wystarczy spakować do pliku dbx z kolejną literką na końcu.Więć skoro soljanka skończyła nam się na pliku gamedata.dbi to po prostu kolejną poprawkę pakujemy jako gamedata.dbj, kolejną gamedata.dbk itd. Itp. Gotowy plik wrzucamy do katalogu gry i po wszystkim.

Uff nie wiem czy ktoś coś z tego zrozumiał Dołączona grafika W każdym razie u mnie to działa.Wielkie podziękowania dla Trurl3 za cierpliwe wytłumaczenie mi tych wszystkich tajników

  • Cool 1
  • Positive 3
Link to comment
Share on other sites

No Solianka spakowana. Teraz jestem prOfi :) Ale martwi mnie, że szczerze mówiąc nie widzę specjalnie różnicy. Wczytuje się tyle samo a i sam gameplay zdaje się działać podobnie. Może coś pokićkałem ? W katalogu gry w fsgame.ltx pozmieniałem gamedaty na false i na wszelki wypadek zmieniłem nazwę katalogu gamedata z niespakowaną solianką na jakiś tam inny blablabla. No i wrzuciłem spakowaną w db. Wszystko chodzi. Tyle że tak samo jak przed pakowaniem Hmmm... :D

Link to comment
Share on other sites

Modyfikacja pliku fsgame nic nie zmienia jeśli tylko nie masz folderu gamedata , a nie masz :) Podczas uruchamiania gry z pulpitu faktycznie nie widać różnicy , natomiast wczytywanie zapisu w czasie gry przynajmniej u mnie jest zdecydowanie szybsze.Jak grałem na zwykłej gamedacie wczytanie quicksave trwało jakieś 1.5 minuty a na spakowanej wersji 45 sekund z zegarkiem w ręku.

Link to comment
Share on other sites

  • 9 months later...

Pomysł z pakowaniem modów jest świetny i właściwie nie ogranicza mozliwości wprowadzania zmian, o ile jest właściwie pwrowadzony w zycie.

Ja spakowałem Solinke w wersji podstawowej z patchami (3 pliki .dbx), nastepnie spakowałem Dopełnienie (kolejny .dbx), polonizację (w pliku gamedata.dbp), doadtki do Soljanki (ew. inny hud, udźwig itp) a także moda DMX i polonizację do moda DMX, Aktualnie mam przygotowanego 'gotowca' z podstawką SoC PL v1.004, na którego moge sobie wrzucic co chcę.

Podstawową zasadą przy stosowaniu plików spakowanych jest właściwa kolejnośc plików.

Podczas uruchamiania gra tworzy w pamięci wirtualny dysk a na nim wirtualny katalog /gamedata, który napełnia w miare odczytywania plików .dbx.

Zawartośc plików .dbx nadpisuje już istniejącą zawartośc wirtualnego /gamedata, jesli jakiieś pliki się powtarzają. (W ten sposób pliki polonizacji nadpisuja pliki oryginalnego moda).

Pliki .dbx są czytane w porządku ALFABETYCZNYM. Dlatego po ostatnim pliku podstawki (gamedata.dbc) trzeba ustawic plik z Soljanka a nie plik np. z poloonizacją Solianki, bo w takim przypadku polonizacja zostanie nadpisana przez oryginalną awartość moda.

Sprawę uaktualniania polonizacji (np. dla DMX-a, gdzie ciągle pojawiaja sie nowe wersje) załatwiam w prosty sposób: w katalogu gry mam katalog zawierający polonizację np. DMX-PL , program converter.exe oraz odpowiedni plik sterujący o nazwie np. dmx-pl.cmd zawierający polecenia pakowania zawartości katalogu z polonizacja do pliku gamedata.dbp (tradycyjnie dla polonizacji uzywam rozszerzenia .dbp). W razie pojawienia sie nowej wersji polonizacji, kopiuję ją do katalogu DMX-PL i uruchamiam dmx-pl.cmd. Po chwili mam nowy plik gamedata.dbp i od tej chwili przy każdym uruchomieniu zostanie wczytana nowa polonizacja.

Ważna wskazówka. przy wczytywaniu plików spakowanych gra spodziewa sie znaleźć w takiej paczce katalog /gamedata z pewną zawartością, która zostanie dodana do wirtualnego kalogu /gamedata tworzonego w pamięci. Z pewnych przyczyn wielkośc plików spakowanych .dbx nie powinna znacznie przekraczać 2 GB, dlatego przy pakowaniu moda nalezy jego katalog /gamedata podzielić na odpowiednią ilość plików .dbx.

Podczas pakowania nie zachodzi kompresja , a tylko i wyłacznie zebranie plików w jedna paczkę. Ta informacja pozwoli wam odpowiednio podzielić katalog /gmedata moda.

Robimy to tak:

Tworzymy kilka Katalogów o kolejnych numerach. W każdym z tych katalogów tworzymy podkatalog /gamedata. Teraz z /gamedata moda kopiujemy (a jeszcze lepiej przenosimy, żęby uniknąc potem pomyłek, co już zostało wykorzystane) DOWOLNĄ część zawartośći ZACHOWUJĄC oryginalne ściezki podkatalogu /gamedata do Katalogu1 zwracając uwagę, żeby nie przekroczyc zbytnio 2GB . Nastepnie powtarzamy operację z Katalogiem 2 i ew 3 aż do wykorzystania zawartości /gamedata oryginalnego moda. Jeśli zdarzy się sytuacja, że któryś z podkatalogów moda przekracza rozmiar dopuszczalny (np. może sie to zdarzyć z podkatalogiem tekstur) , dzielimy go na dwie części z zachowaniem układu podkatalogów (np. w Katalogu 2 mamy /gamedata/ textures i kopiujemy tu tekstury do wielkości 2 GB a w Katalogu 3 mamy znowy /gamedata/texxtures i tutaj pozostałe tekstury, które nie zmieściły sie w porzednim pliku. Najwazniejsze jest umieć sobie wyobrazić, że potem zawartość Katalogów 1,2,3... będzie scalona w jeden wirtualny /gamedata i każdy plik musi trafic do odpowiedniego podkatalogu - musi byc zachowana ścieżka dostepu każdego pliku.

Teraz tworzymy plik sterujący .cmd gdzie w kolejnych liniach umieszczamy polecenia spakowania podkatalogów /gamedata z kolejnych Katalogów 1, 2,3, ...do kolejnych plików spakowanych gamedata.dbx...

Na koniec ciekawostka:

Jesli komuś brakuje liter do rozszerzeń plików spakowanych przypominam, że pliki .dbx sa wczytywane alfabetycznie a w dodatku ich rozszerzenia NIE MUSZĄ byc wyłacznie 3-literowe...

Wtedy kolejnośc wczytywania plików może byc nap. taka:

gamedata.dbd

gamedata.dbe

gamedata.dbe1

gamedata.dbe2

gamedata.dbee

gamedata.dbg

gamedata.dbg1

gamedata.dbggg

gamedata.dbp

Wszystkie te pliki zostana rozpoznane przez grę i zostana wczytane wpodanej kolejnoąci :)

Link to comment
Share on other sites

Poprawki by Scigacz1975:

Małe uzupełnienie - nie stosujemy rozszerzenia gamedata.dbf - system odczytuje je jako arkusz kalkulacyjny i mogą wystąpić problemy - po gamedata.dbe dajemy gamedata. dbg (o tym że nie stosujemy polskich liter np. ł czy ń chyba nie trzeba wspominać)

Link to comment
Share on other sites

W sumie to gra nie robi żadnych problemów z plikiem "dbf" Wiem bo grałem spakowaną soljanką, i to nie ja jeden. Poza tym swego czasu odpalałem spakowanego LWR który też zawierał plik gamedata.dbf, i też nie było kłopotów. Ale oczywiście nazewnictwo jest dowolne, byle by zachować kolejność alfabetyczną, czy też numeryczną.

Link to comment
Share on other sites

  • 4 weeks later...

Hmmmm - spakowałem sobie w ten sposób całego moda OL+AMK - Winter i mam dziwnego buga. Mianowicie - spakowany mod chodzi bardzo fajnie - natomiast po wypakowaniu gra się wykrzacza przy próbie uruchomienia bez loga, tzn bez fatall error. Rzecz się dzieje w momencie kiedy przesuwam do innego folderu pliki dbx a w to miejsce wrzucam klasyczną gamedatę. W logu jest tylko coś o xrcore.dll. Najciekawsze jest to że jak przywracam pliki dbx (oczywiście usuwając katalog gamedata) to wszystko jest ok. O co chodzi? Ktoś się z tym spotkał? Aha - po schowaniu plików dbx i wrzuceniu gamedaty z innym modem wszystko działa normalnie :(

Link to comment
Share on other sites

A usuwając z katalogu Stalkera spakowane pliki nie usuwasz sobie też przypadkiem pliku gamedata.dbp ? czyli pliku z polonizacją ? Coś chodzi mi po głowie,że xrcore.dll ma coś wspólnego z wersją językową, lub ze stosowanym drm-em w konkretnej wersji językowej.

Link to comment
Share on other sites

W gamedata.dbp nie możesz nic pakować bo ten plik jest już wykorzystywany w oryginalnej grze. Możesz spakować w dowolny plik gamedata.dbe, dbf, dbg itp, byle by to była kolejna literka po plikach oryginalnych. Poza tym wszystko zależy od wielkości moda którego chcesz spakować. Bezpieczna wielkość pliku dbx jest od 1.5 do 2 gb. Jeśli twoja modyfikacja ma więcej niz 2 gb to trzeba ją podzielić na odpowiednią ilość plików dbx. Najlepiej napisz co chcesz spakować, tak będzie o wiele prościej :sad:

Link to comment
Share on other sites

plik .dbp rozpakowałem i spakowałem w .dbe - oczywiście zachowałem sobie .dbp. Ale w tym wypadku obojętne czy było .dbp czy .dbe wywalało. Zastanawiam się czy nie była to wina Commodo Firewall - ma jakąś śmieszną opcję rozpoznawania plików. Będę wiedział niedługo bo właśnie zrobiłem formata i wrzucam wszystko od nowa - stary system miał już 2 lata i należało się A wracając do .dbp - jak wrzuciłem inny mod (gamedatę w katalogu) z plikiem zmienionym na .dbe to normalnie hula więc problem tkwi gdzieś indziej.

Link to comment
Share on other sites

W sumie faktycznie w tym pliku gamedata.dbp są tylko polskie pliki dźwiękowe. To nie będzie to. Ale xrcore.dll to plik z katalogu bin. Więc to może mieć coś wspólnego z patchami. A nie kombinowałeś po drodze z dowgradem z 1.006 na 1.004 i podmianą katalogów bin? Może tu tkwi błąd.

Link to comment
Share on other sites

Na NS z DMX to trzeba by ze 6 plików dbx zrobić. W sumie nie wiem czy ma to sens jak tam i tak trzeba ciągle coś dopisywać, spawnować, dodawać fixy. Nie mając opanowanego pakowania możesz mieć jeszcze więcej problemów. W pierwszym poście jest dokładna instrukcja spakowania NS z dopą. Postępujesz dokładnie tak samo tylko że szykujesz sobie gamedatę z DMX. no i pewnie jeden plik dbx więcej.

Link to comment
Share on other sites

A nie kombinowałeś po drodze z dowgradem z 1.006 na 1.004 i podmianą katalogów bin? Może tu tkwi błąd.

Robiłem downgrade, ale wrzuciłem o do osobnego katalogu (mam 2 biny - 1 dla 1.0006 drugi 1.0004) - poza tym ten drugi mod który działał normalnie też jest na 10006, a nawet gdyby to powinno być coś w logu np. - zły spawn. To jest właśnie najdziwniejsze że praktycznie nie mam loga ;)

Link to comment
Share on other sites

Spróbujmy to wszystko poukładać. OL+AMK twojej produkcji jest pod patcha 1.005/1.006, czyli nie dokonujesz żadnych downgradów, a pakujesz moda do plików dbx , podmieniasz plik user.ltx i wszystko działa. Teraz rozpakowywujesz OL+AMK do normalnej gamedaty , usuwasz pliki dbx i gra się wykrzacza z komunikatem " coś z xrcore.dll " Instalujesz innego moda w formie gamedata i wszystko gra. Teraz pytanie. Pod jakiego patcha jest ten inny mod i jeśli pod 1.004 to czy dokonywałeś wtedy downgradu , a co za tym idzie podmiany katalogu bin z plikiem xrcore.dll. Czy podmieniałeś też plik user.ltx? i czy modyfikowałeś plik fsgame.ltx ? I z innej beczki. Przystępując do pakowania OL+AMK do plików dbx miałeś przygotowaną normalną gamedatę do gry. Spróbuj ją odpalić. To znaczy, skoro ta sama gamedata moda działa, po spakowaniu działa, a po rozpakowaniu nie działa, to będzie wiadomo , że proces rozpakowywania uszkadza coś w plikach moda i powoduje błąd. No a wtedy to nie wiem co zrobić :sad: Oprócz oczywiście olania sprawy i przygotowania sobie nowej gamedaty z archiwów na dysku. Ja akurat mam tego jakieś 70gb związanego ze stalkerem więc już dawno bym odpuścił :sad:

Link to comment
Share on other sites

1 - mam wersję 1.0006 2 - OL+AMK jest na 1.0006 3 - mod który zadziałał jest na 1.0006 4 - w momencie wypakowania spakowanego OL+AMK do zwykłej gamedaty wszystko było ustawione pod 1.0006 5 - dziwny nic nie mówiący log? 6 - raczej mnie ciekawi o co chodzi niż wkurza bo nie lubię jak coś mi nie działa (a raczej nie wiedzieć dlaczego nie działa) Chciałbym to rozgryźć na wypadek gdyby sytuacja się powtórzyła u kogoś innego

Link to comment
Share on other sites

Zrobiłem teraz szybki eksperyment. Spakowałem moda Powinność Filozofia Wojny, odpaliłem, zrobiłem zapis, wyszedłem z gry, rozpakowałem, odpaliłem na czystej gamedacie. Zero problemu. Fakt, że mam patcha 1.004. Na razie nie mogę wgrać wyższego. Może to po prostu przypadek. Coś nie zaskoczyło jak należy i tyle.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.