SZYBKI KURS KOMPRESOWANIA GIER
by mahometo
Witam!
Napisałem ten kurs w odpowiedzi na wiadomości które
otrzymuje na chomiku typu: „jak ty to robisz?”, „musisz być geniuszem informatycznym”
itp. Z góry muszę stwierdzić, iż kompresowanie gierek „moim sposobem” raczej nie ma
wiele wspólnego z wyższą wiedzą informatyczną. Każdy może się w to pobawić. Ten
szybki kurs odpowie na pytanie „Jak?”.
WinRar
# dzielenie na party, hasło, archiwum SFX #
Dzielenie na party:
Zaznaczamy pliki do spakowania, klikamy prawym przyciskiem myszy, wybieramy opcje Dodaj do
archiwum… , wyświetla nam się takie okienko:
Jeżeli chcemy podzielić tylko na party bez stosowania kompresji – zmieniamy Metodę kompresji z
normalna na bez kompresji. Następnie wpisujemy rozmiar woluminów czyli jaką wagę ma mieć
poszczególny part. Oczywiście po rozwinięciu opcji rozmiaru woluminów mamy do wyboru np.:
- CD700: dzieli plik na części po 700MB,
- DVD+R: dzieli plik na części po 4481MB
Jeżeli wybierzesz opcję wpisania „po swojemu” możesz skorzystać z kalkulatora internetowego (link
poniżej), który przeliczy ci np. 1GB na bajty lub tak jak ja to robie po prostu wpisać na końcu literkę M
(w megabajtach). I tak np. dla naszego 1GB wpisuje 1100M i wychodzi mi 1,02GB.
http://wieszjak.pl/przeliczniki/31,przelicznik-jednostek-ilosci-danych.html
Ustawianie hasła archiwum
Wystarczy przełączyć z zakładki Ogólne na Zaawansowane i wybrać opcję Wprowadź hasło…
Możemy wybrać dodatkowo opcję Zaszyfruj nazwy plików w celu ukrycia zawartości archiwum.
Archiwum SFX
Jest to prosty plik instalacyjny w pliku *.exe, samorozpakowujące się archiwum:
Stworzenie archiwum SFX jest banalnie proste wystarczy zaznaczyć w zakładce Ogólne Utwórz
archiwum SFX. Możemy również pobawić się z ustawianiem hasła, kompresji (jak powyżej),
edytowaniem domyślnego tekstu w oknie, nagłówka czy tworzeniem ikon na pulpicie czy w Menu
Start itp. itd. Wszystko jest tutaj: Zaawansowane -> Opcje SFX… W ten sposób możemy stworzyć
własny instalator.
WinUHA
Polecam oczywiście ripowanie gier tą metodą, ponieważ WinUHA posiada dużo większe możliwości
kompresji plików, krótko mówiąc -lepiej pakuje od WinRara czy 7zipa. Instalkę można pobrać z
mojego chomika (mahometo). Krótko mówiąc programem tym wystarczy jedynie spakować pliki,
rozpakowaniem zajmie się plik wsadowy setup.bat.
Po zainstalowaniu tegoż programu, zaznaczamy pliki do kompresji tak jak w przypadku WinRara,
naciskamy prawy przycisk myszy i wybieramy opcję WinUHA: Add To Archive …
Oczywiście możemy również stworzyć SFX’a, ale skupimy się raczej na zabawie z plikiem wsadowym.
UWAGA! W naszym przypadku należy zmienić rozszerzenie naszej paczki z *.uha na *.arc
Słownik kompresji ustawiamy jak na foto 1024KB, a kompresję wg naszego „widzi mi się”, jeżeli
chcemy mocno spakować pliki to ustawiamy jak na foto ALZ-3. Można oczywiście jak w przypadku
WinRara ustawić bez kompresji. Jedyną wadą WinUHA jest to, że maksymalna waga pojedynczej
paczki to 2GB.
Zapisujemy plik *.arc pod dowolną nazwą, ja wpisuje tam najczęściej data.arc, data2.arc itd.
Oczywiście można tam wpisać co tylko dusza zapragnie. Nie istotne jest w ile plików *.arc spakujemy
grę, istotne jest żeby spakować wszystkie pliki – czyli waga, lokalizacje folderów itd. muszą się
zgadzać.
Do rozpakowania takiej paczki będzie nam potrzebny plik uha.dll, który znajdziecie na moim chomiku
oraz plik instalacyjny w tym przypadku plik wsadowy. Domyślnie zawsze nazywam go setup.bat, żeby
każdy wiedział do czego on służy. Teraz pytanie jak stworzyć taki instalator?
Piszemy go w notatniku. Nie jest to czasochłonne zajęcie, ponieważ skrypt ma banalnie prostą
budowę. Poniżej podam listę najpotrzebniejszych komend pliku wsadowego i krótko opisze ich
działanie.
UWAGA! Należy pamiętać o zmianie rozszerzenia pliku na *.bat. „setup.txt” nie ruszy. Zapewniam. Po
napisaniu naszego batch’a w notatniku, klikamy Plik -> Zapisz jako… i tam wpisujemy nazwę pliku z
rozszerzeniem *.bat. Kodowanie powinno być ustawione na ANSI.
KOMENDY PLIKU WSADOWEGO
Komendy przedstawię na przykładzie gotowego pliku setup.bat
@echo off _______________________ wpisujemy zawsze na początku, wyłącza wyświetlanie ścieżki
cls ________________________________________________________ czyści nasze okienko z tekstu
color 4E __________________________ zmienia kolor okienka i tła, można zmienić np. na 1A, 0B itd.
Title Astral Masters RIP ____________________________ zmienia tytuł okna na GTA 2 by mahometo
echo. __________________________________________________________ wyświetla pustą linijkę
echo Instalacja gry Astral Masters _________________ wyświetla napis Instalacja gry Astral Masters
echo. __________________________________________________________ wyświetla pustą linijkę
pause __ skrypt zatrzymuje się i w okienku wyświetla się napis naciśnij jakiś klawisz aby kontynuować
cls ________________________________________________________ czyści nasze okienko z tekstu
echo. __________________________________________________________ wyświetla pustą linijkę
echo Instalacja gry w toku (1/2)... ____________________ wyświetla napis Instalacja gry w toku (1/2)
echo. __________________________________________________________ wyświetla pustą linijkę
uha.dll x -y data.arc >nul ________________________________________ wypakowuje plik data.arc
del data.arc _______________________________________________________ usuwa plik data.arc
cls ________________________________________________________ czyści nasze okienko z tekstu
echo. __________________________________________________________ wyświetla pustą linijkę
echo Instalacja gry w toku (2/2)... ____________________ wyświetla napis Instalacja gry w toku (2/2)
echo. __________________________________________________________ wyświetla pustą linijkę
uha.dll x -y data2.arc >nul ______________________________________ wypakowuje plik data2.arc
del data2.arc ______________________________________________________ usuwa plik data2.arc
cls ________________________________________________________ czyści nasze okienko z tekstu
echo. __________________________________________________________ wyświetla pustą linijkę
echo Instalacja zakonczona ____________________________ wyświetla napis Instalacja zakonczona
echo. __________________________________________________________ wyświetla pustą linijkę
pause __ skrypt zatrzymuje się i w okienku wyświetla się napis naciśnij jakiś klawisz aby kontynuować
call "ikona.exe" _______________odpala plik ikona.exe tworzący skrót na pulpicie i/lub w menu start
del ikona.exe ______________________________________________________ usuwa plik ikona.exe
call "mahometo.url" ____________________________________________ odpala plik mahometo.url
del uha.dll __________________________________________________________ usuwa plik uha.dll
del setup.bat ______________________________________________________ usuwa plik setup.bat
Na powyższym przykładzie widać jak nasz program instalacyjny wykonuje polecenia linijka po linijce.
Najważniejsze komendy są zaznaczone powyżej pogrubioną czcionką. Głównym zadaniem naszego
pliku wsadowego jest rozpakowanie plików *.arc. Oprócz kwestii wypakowania naszych plików data,
ważne jest też aby po wypakowaniu zostały usunięte (po co mają zaśmiecać nam dysk). Możemy też
stworzyć skrypt zawierający tylko te 4 wiersze. Gra też się wypakuje i będzie działać. Mimo to
uważam, że najlepsza zabawa jest z „efektami wizualnymi” naszego czarnego okienka.
Call, czyli wywoływanie plików przez plik wsadowy
Komenda call jest też bardzo przydatna – np. gdy gra wymaga zainstalowania np. DirectX. Wpisujemy
odpowiednią linijkę do skryptu i nasz instalator wywołuje dany plik z instalką DirectX (np. call
directx.exe). Po zamknięciu okna wywołanego instalatora czy pliku nasz instalator kontynuuje pracę.
W tym przypadku też możemy w następnej linijce wpisać komendę del.
W przypadku naszego skryptu komenda call wywołuje plik mahometo.url czyli skrót internetowy oraz
plik ikona.exe.
Skrypt SFX do tworzenia skrótu na pulpicie i/lub w menu start
Jak sprawić aby po wypakowaniu naszej gry na pulpicie i/lub w menu start pojawiły się ikonki?
Będzie nam do tego potrzebny WinRar.
Wystarczy zaznaczyć jakiś dowolny plik (najlepiej o małej wadzę) np. ja stworzyłem nowy plik
tekstowy i zmieniłem jego nazwę na mahometo. Następnie kliknąć prawym przyciskiem myszy i
odpalić Dodaj do archiwum … , zaznaczyć Utwórz archiwum SFX, następnie przejść z zakładki Ogólne
na Komentarz. W okienku komentarza wpisujemy coś takiego:
Silent=1
Overwrite=1
Shortcut=D, "nazwa pliku źródłowego.exe", "", "", "nazwa ikony"
Shortcut=P, nazwa pliku źródłowego.exe, nazwa folderu w menu start, , nazwa ikony w menu start,
Silent=1
operacja jest wykonywana bez otwierania żadnych okien
Overwrite=1
automatycznie zastępuje pliki bez zadawania pytań
Shortcut=D
ikona na pulpit
Shortcut=P
ikona do menu start
Oczywiście jeżeli nie chcemy robić ikony w menu start nie wpisujemy linijki Shortcut=P.
Przypominam raz jeszcze o pliku uha.dll, który musi się znajdować w katalogu z setup.bat.
Oczywiście do tych moich wypocin dołączę takiego przykładowego ripa wykorzystującego powyższy
skrypt, aby każdy mógł zobaczyć „jak to działa”. W tym przypadku: Astral Masters RIP.rar
Zalecam „pobawienie się” naszym plikiem wsadowym. Aby go edytować wystarczy kliknąć prawym
przyciskiem myszy a potem Edytuj.
REJESTR
# regedit, setup.reg #
Oczywiście powyższy skrypt nie sprawdzi się w grach, które nie ruszą bez uprzedniego
zaktualizowania rejestru. Niektóre gry po zainstalowaniu, skopiowaniu na pendrive’a i przerzuceniu
na inny komputer wywalają komunikaty typu gra została nieprawidłowo zainstalowana itd. Ogólnie
nie działają. Dlaczego?
Otóż oryginalne programy instalacyjne, zapisują informację w rejestrze bez których gra się nie
uruchomi. Ogólnie mówiąc każda gra jest inna. Niektóre gry same aktualizują rejestr po ich
odpaleniu, a u niektórych nawet należy wklepać do rejestru ich lokalizację. Możemy w takim
przypadku zmusić gościa żeby wrzucił grę do odpowiedniego katalogu, tak aby jego lokalizacja była
identyczna jak w rejestrze lub wpisać odpowiednią linijkę do skryptu.
Naszym zadaniem jest wyeksportowanie tych informacji do pliku *.reg.
Wykonujemy następujące czynności: START Uruchom… regedit
Otworzyło nam się okienko edytora rejestru. Rozwijamy zawartość klucza HKEY_LOCAL_MACHINE
następnie SOFTWARE. Teraz mamy przed oczami nic innego jak listę oprogramowania
zainstalowanego na naszym komputerze. Szukamy naszej gry. Podam przykładowo dla Diablo II: Lord
of Destruction (ciekawostka: do tej gry zupełnie nie potrzebne jest babranie się w rejestrze):
Znalazłem katalog Blizzard Entertainment. Klikam na niego prawym przyciskiem myszy, wybieram
Eksportuj i zapisuje klucz w pliku setup.reg. Teraz zostaje tylko do naszego skryptu setup.bat dopisać
komendę call setup.reg, aby nasz instalator odpalił plik.
W przypadku gier, które nie uruchomią się jeżeli lokalizacja w rejestrze nie będzie się zgadzać z tą
rzeczywistą podam linijkę skryptu:
reg add "HKLM\SOFTWARE\Blizzard Entertainment\Diablo II " /v InstallPath /t reg_sz /d "%cd%" /f
Zmienna „cd” zawiera ścieżkę do miejsca, w którym znajduje się nasz plik wsadowy setup.bat.
UWAGA! Nie każda gra ma lokalizacje zapisaną w InstallPath!
Aby to sprawdzić należy po wyeksportowaniu pliku setup.reg otworzyć go notatnikiem i krótko
mówiąc sprawdzić jak oznaczona jest lokalizacja gry.
Następnie żeby gra śmigała po rozpakowaniu, wystarczy zrobić tak:
1. Edytować nasz plik setup.reg
A) Sprawdzić jak oznaczona jest lokalizacja gry (w naszym przypadku to: InstallPath)
B) Wykasować linijkę z tą lokalizacją
"SmallInstall"=dword:00000000
"InstallPath"="D:\\Diablo II" wykasować tą linijkę
"Program"="D:\\Diablo II\\Diablo II.exe"
C) Zapisać plik setup.reg
2. Edytować plik setup.bat i dopisać:
call "setup.reg"
reg add "HKLM\SOFTWARE\Blizzard Entertainment\Diablo II " /v InstallPath /t reg_sz /d
"%cd%" /f
Komendą call wywołujemy plik setup.reg:
Klikamy Tak, rejestr zostaje zaktualizowany informacjami o danej grze, a następna komenda
uzupełnia brakującą linijkę, wpisując lokalizację w której znajduje się nasz instalator setup.bat.
Tyle wiedzy wam zupełnie wystarczy. Życzę wysokich kompresji!
mahometo