Strona 2 z 5

Re: [Release] Clash Resource Unpacker v0.18

: wtorek 04 lip 2017, 19:54
autor: Griz
Konin3D pisze:
Griz pisze:Czy jest to może msvcp140.dll?
Tej biblioteki. Ale boję się z neta ściągać, bo niedawno jak jednej potrzebowałem, to musiałem system czyścić.
To prawda, że bibliotek lepiej w ciemno nie ściągać z internetu.

msvcp140.dll znajduje się w oficjalnej paczce Microsoftu, i jest wymagana do uruchamiania nowszych gier oraz programów stworzonych z wykorzystaniem programu Visual Studio 2015. Jest ona dostępna TUTAJ.

Re: [Release] Clash Resource Unpacker v0.18

: wtorek 04 lip 2017, 20:15
autor: Konin3D
Dzięki. Zadziałało. I czekam na kolejną wersję programu z niecierpliwością.

Re: [Release] Clash Resource Unpacker v0.18

: wtorek 04 lip 2017, 22:43
autor: Griz
Konin3D pisze:Dzięki. Zadziałało. I czekam na kolejną wersję programu z niecierpliwością.
Cieszę się, że pomogło :).

Poniżej podgląd tego, co kolejna wersja będzie wypakowywać. Czy potraficie odgadnąć jaka to jednostka?
Obrazek

Re: [Release] Clash Resource Unpacker v0.18

: środa 05 lip 2017, 01:10
autor: Dreno
Hm, zgaduję, że budowniczego! (hej, słabo wyszła Ci ta cenzura - spójrz na belkę notatnika :twisted: )
Ogólnie szacunek, bo robisz cudowną robotę. Podziwiam i czekam na kolejne aktualizacje ;)

Re: [Release] Clash Resource Unpacker v0.18

: czwartek 06 lip 2017, 18:56
autor: Boghute Ara
Griz pisze:Poniżej podgląd tego, co kolejna wersja będzie wypakowywać. Czy potraficie odgadnąć jaka to jednostka?
Wow, nie wiem jak Ty to robisz, ale jestem pełen podziwu. :shock: Mam nadzieję, że kolejna wersja Unpackera będzie rozpakowywać grafiki jednostek do postaci plików graficznych, a nie cyfr szesnastkowych? ;)

Re: [Release] Clash Resource Unpacker v0.18

: piątek 07 lip 2017, 13:48
autor: Griz
Dreno pisze:Hm, zgaduję, że budowniczego! (hej, słabo wyszła Ci ta cenzura - spójrz na belkę notatnika :twisted: )
Ups :D .

W trakcie testów wypakowywania grafik mapy trafił się taki oto smaczek:
Obrazek

Re: [Release] Clash Resource Unpacker v0.25

: piątek 07 lip 2017, 16:35
autor: Griz
Update do wersji 0.25. Można już wypakowywać grafiki jednostek oraz mapy :) . W formacie s32 jest zastosowany jeden trick, którego jeszcze w tej wersji nie rozgryzłem, dlatego na niektórych grafikach mogą pojawić się artefakty.

Re: [Release] Clash Resource Unpacker v0.25

: sobota 08 lip 2017, 00:17
autor: Venno
Tym programem ratujesz życie :D bez unpackera uzyskanie grafik byłoby bardzo żmudne i czasochłonne.

Zdradzisz kilka tajemnic, bo coraz bardziej mnie to zastanawia. Czy pliki .res, .s32 są w pewien sposób zaszyfrowane czy po prostu można odczytywać z nich grafiki bit po bicie? Jeżeli tak to czym się różnią pliki jednostek od np plików tilesetów. Czy może to wszystko jest zapakowane w jakąś paczkę :D Sam chwilę przeglądałem strukturę tych plików ale poddałem się.

Re: [Release] Clash Resource Unpacker v0.25

: sobota 08 lip 2017, 01:59
autor: Griz
Venno pisze:Tym programem ratujesz życie :D bez unpackera uzyskanie grafik byłoby bardzo żmudne i czasochłonne.
Wątpie aby fanowski remake w ogóle powstał gdybyśmy nie mieli sposobu odzyskania grafik. Nawet gdyby znalazł się śmiałek na odtworzenie wszystkich grafik od zera, to już nie byłoby to samo ;) .
Venno pisze:Zdradzisz kilka tajemnic, bo coraz bardziej mnie to zastanawia. Czy pliki .res, .s32 są w pewien sposób zaszyfrowane czy po prostu można odczytywać z nich grafiki bit po bicie? Jeżeli tak to czym się różnią pliki jednostek od np plików tilesetów. Czy może to wszystko jest zapakowane w jakąś paczkę :D Sam chwilę przeglądałem strukturę tych plików ale poddałem się.
Zarówno pliki .res jak i .s32 nie są zaszyfrowane. Res prawdopodobnie jest formatu IBM - large logical record file, natomiast format .s32 wygląda na autorski, jako że nie zawiera stosownego nagłówka, oraz nie udało się mi odnaleźć podobnych formatów z tamtych czasów.

W jaki sposób unpacker wypakowuje dane z pliku res?
1. Szuka wystąpienia specyficznych słów kluczowych w pliku. Dla NORMAL.RES jest to tekst ".s32", dla MAXIMUM.res są to dane nagłówkowe pliku pcx, natomiast dla MUSIC.RES zawiera ręcznie wpisane adresy początku i końca utworów.

Format S32
A2. Dla S32: po znalezieniu słowa kluczowego .s32 wczytujemy blok pamięci z miejsca gdzie je znaleźliśmy. Jest to struktura przechowująca : nazwę pliku w postaci tablicy 14 elementów char, offset danych, wielkość danych. Niech kolejno będą to zmienne A dla nazwy, B dla offsetu oraz C dla wielkości.

A3. Wczytujemy blok o wielkości C z miejsca B w tym samym pliku. Format s32 rozpoczyna się nagłówkiem 0x00 10 00 00. Potem posiada 1000 bajtów zawierające offsety kolejnych rysunków. Pierwszy rysunek zaczyna się zawsze na 1001 bajcie. Wielkości rysunków znamy dzięki ich offsetom. Wystarczy sprawdzić gdzie znajduje się kolejny rysunek w stosunku do obecnego aby poznać jego rozmiar.

A4. Każdy rysunek, nazwijmy go formatem o32 (s32 - set32, o32 - obraz32) zawiera kolejno następujące dane: szerokość, wysokość, sposób rysowania, funkcje specjalne, dane rysunku. Obrazy używają kompresji w postaci przeskakiwania mało istotnych pikseli (Komendy 0x80), jak i wykorzystywania pikseli z innych obrazów, czego jeszcze nie rozgryzłem (komendy 0x 00 XX YY ZZ 00). Komendy < 0x80 to ilość pikseli następujących po tej komendzie. Każdy piksel obrazka to indeks o wartości w przedziale od 0 do 255. Indeks ten wskazuje na kolor jaki jest załadowany w aktualnej palecie VGA DOSa. Pojedyńczy kolor ma 18 bitów, każde 6 bitów przeznaczonych jest kolejno na kolor czerwony, zielony oraz niebieski.

A5. Dokonujemy konwersji RGB 18 bit -> BMP RGBA 32 bit i zapisujemy wynik do pliku.

Format wav
B2. MUSIC.RES zawiera kilka wav połączonych w jeden wielki plik. Wystarczy podzielić go na części i zapisać jako osobne pliki.

Format pcx
C2. pliki PCX wypakujemy zgodnie ze standardem PCX. Dokładne informacje na jego temat znaleźć można tutaj : http://www.shikadi.net/moddingwiki/PCX_Format

Mam nadzieję, że nie zanudziłem zbytnio :).

Re: [Release] Clash Resource Unpacker v0.25

: sobota 08 lip 2017, 16:39
autor: Konin3D
Griz pisze:W formacie s32 jest zastosowany jeden trick, którego jeszcze w tej wersji nie rozgryzłem, dlatego na niektórych grafikach mogą pojawić się artefakty.
Może to głupie, co napisze, ale... Skoro te pliki graficzne to poszczególne klatki animacji, to może artefakty są spowodowane danymi, które dotyczą tychże animacji, np. informacja o przesunięciu obrazka? Tak tylko sobie dedukuję, że może to nie są dane graficzne.

Ewentualnie informacje np. o końcu obrazka, ale nie o końcu informacji o nim. (np. pliki midi posiadają bajt kończący dla każdego komunikatu - bajt zerowy)