[Release] Clash Resource Unpacker v0.73

Dyskusje o modyfikacji do Clash

Moderator: Boghute Ara

Awatar użytkownika
Griz
Posty: 38
Rejestracja: niedziela 31 lip 2016, 19:03

Re: [Release] Clash Resource Unpacker v0.18

Post autor: Griz » wtorek 04 lip 2017, 19:54

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.

Konin3D
Posty: 24
Rejestracja: sobota 24 cze 2017, 18:34
Lokalizacja: Konin
Kontakt:

Re: [Release] Clash Resource Unpacker v0.18

Post autor: Konin3D » wtorek 04 lip 2017, 20:15

Dzięki. Zadziałało. I czekam na kolejną wersję programu z niecierpliwością.

Awatar użytkownika
Griz
Posty: 38
Rejestracja: niedziela 31 lip 2016, 19:03

Re: [Release] Clash Resource Unpacker v0.18

Post autor: Griz » wtorek 04 lip 2017, 22:43

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

Dreno
Posty: 59
Rejestracja: wtorek 26 sty 2016, 16:23

Re: [Release] Clash Resource Unpacker v0.18

Post autor: Dreno » środa 05 lip 2017, 01:10

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 ;)

Awatar użytkownika
Boghute Ara
Administrator
Posty: 153
Rejestracja: piątek 18 gru 2015, 21:02
Lokalizacja: Toruń
Kontakt:

Re: [Release] Clash Resource Unpacker v0.18

Post autor: Boghute Ara » czwartek 06 lip 2017, 18:56

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? ;)
Biada Ci!!! Odkopałeś szczątki pradawnego władcy tych ziem (Boghute Ara, lub kogoś z jego rodziny). Czeka Cię teraz surowa kara, gdyż otwierając wieko jamy uwolniłeś klątwę. :twisted:

Awatar użytkownika
Griz
Posty: 38
Rejestracja: niedziela 31 lip 2016, 19:03

Re: [Release] Clash Resource Unpacker v0.18

Post autor: Griz » piątek 07 lip 2017, 13:48

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

Awatar użytkownika
Griz
Posty: 38
Rejestracja: niedziela 31 lip 2016, 19:03

Re: [Release] Clash Resource Unpacker v0.25

Post autor: Griz » piątek 07 lip 2017, 16:35

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.

Awatar użytkownika
Venno
Posty: 18
Rejestracja: czwartek 05 sty 2017, 18:07

Re: [Release] Clash Resource Unpacker v0.25

Post autor: Venno » sobota 08 lip 2017, 00:17

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ę.
Pracuję nad rozwojem projektu Clash Redux - napisanej od zera, nowej wersji Clash'a.
Kanał na YouTube, na którym umieszczam materiały związane z projektem:
https://www.youtube.com/channel/UC8519X ... BzjySXJakw
Projekt aktualnie wstrzymany.

Awatar użytkownika
Griz
Posty: 38
Rejestracja: niedziela 31 lip 2016, 19:03

Re: [Release] Clash Resource Unpacker v0.25

Post autor: Griz » sobota 08 lip 2017, 01:59

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 :).

Konin3D
Posty: 24
Rejestracja: sobota 24 cze 2017, 18:34
Lokalizacja: Konin
Kontakt:

Re: [Release] Clash Resource Unpacker v0.25

Post autor: Konin3D » sobota 08 lip 2017, 16:39

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)

ODPOWIEDZ