Star General - tekst zaszyty w pliku exe

Wszelkie kwestie techniczne.
Regulamin forum
1. W miarę możliwości prosimy o załączanie plików przez nasze forum, nie na zewnętrznych serwerach. Pliki nie znikną wtedy po upływie pewnego czasu. 2. Jeśli chcecie uzyskać pomoc przy rozpracowaniu plików (np. z tekstem, czcionką) załączajcie je do postów - nie każdy przecież posiada tłumaczoną przez Was grę.
Awatar użytkownika
MartiusR
Posty: 13
Rejestracja: 18 lis 2020, o 20:15

Star General - tekst zaszyty w pliku exe

Postautor: MartiusR » 7 wrz 2023, o 14:49

Cześć Wszystkim!

Walczę ostatnio z gra Star General (wersja Windowsowa z GOG.com), żeby przetłumaczyć ją na język polski. Niestety, poza plikiem ebattle.txt (teksty odpraw, łatwy do edycji) wygląda na to, ze większość tekstu gry jest zaszyta w pliku exe, a nie tłumaczyłem dotąd żadnej gry przez edycję exe-ka.

Przeczesując internet, natknąłem się na program IDA, ale nie rozumiem do końca, jak powinienem "wyodrębnić" tekst do przetłumaczenia i jak go potem "zamontować" w pliku exe.

Mam obecnie zainstalowaną IDę (wersję freeware) i HxD. Na początku próbowałem wyodrębnić tekst do przetłumaczenia - jeśli dobrze rozumiem, to pierwszym krokiem jest zapisanie takiego "bloku" w formacie .dll. W załączniku jest DLL-ka którą "stworzyłem",, ale nie wiem, czy wyodrębniłem odpowiedni fragment. Wydaje mi sie, ze znajduje sie on w nastepujacych fragmentach:

Poczatek-00559740
Koniec-005614A0
(screenshoty zalaczone)

Czy dobrze rozumuje, ze muszę po prostu za pomocą Hex Editora (np HxD) przerobić ten tekst w wyodrębnionym DLL?

I najtrudniejsza rzecz - jak mogę potem zaimplementować ten DLL, żeby "zastąpił" angielski tekst?

Wiem, ze nie mogę po prostu edytować exe-ka Hex Editorem, bo przy różnicach w długości ciągów, zepsuję EXE.

W jaki sposób powinienem 'wmontować' ten DLL do exe (z pomocą IDY lub innego programu)?

Bedę bardzo wdzięczny za pomoc - swoja droga, spróbowałem na kopii exe-ka przetłumaczyć jedna kwestię w hexEditorze (z "Start Game" na "Zacznij Grę" i o dziwo plik nadal dziala. Zależy mi, żeby dobrnąć do końca, ale potrzebuje "nakierunkowania", przy "zmontowaniu" tego pliku.

Zalaczylem wyodrebniony tekst i plik zrodlowy, w razie potrzeby służę innymi materiałami.
Załączniki
koniec.jpg
poczatek.jpg
paczka.zip
(458.49 KiB) Pobrany 34 razy

goliat
Posty: 117
Rejestracja: 6 cze 2021, o 08:44

Re: Star General - tekst zaszyty w pliku exe

Postautor: goliat » 7 wrz 2023, o 18:56

Jeśli chodzi o program Hex Editor to dla osoby, która nie zna się na programowaniu jest on bardzo niewygodny w obsłudze, w dodatku trzeba się pilnować, żeby nie popsuć pliku. Poza tym możesz napotkać inne problemy, np. w starszych grach jak tekst jest dłuższy niż w wersji angielskiej to może gra po prostu nie widzieć tego tekstu. Wiem o tym z doświadczenia, bo nie mogę przez to dokończyć projektu Prisoner of Ice (a próbował zasięgnąć porady m.in. u goga, grupy CD-Action Retro, czy też obecnych właścicieli marki).

Możesz spróbować programu dnspy, ale jest on przeznaczony dla programistów, więc jakoś pojęcie o programowaniu trzeba mieć.

Awatar użytkownika
MartiusR
Posty: 13
Rejestracja: 18 lis 2020, o 20:15

Re: Star General - tekst zaszyty w pliku exe

Postautor: MartiusR » 10 wrz 2023, o 21:38

Próbowałem trochę poszperać w internecie, chyba udało mi sie rozgryźć pierwszą częśc problemu
https://www.compiware-forum.de/forum/th ... post343041
cytując interesujący mnie fragment (rzecz dotyczy innej gry i innego przekładu, ale ogólnie jest to podobny przypadek):

"Save as bin file like "french.bin"
Now, open the Legacy.exe with CFF Explorer. Go to "Section Headers [x]" => Right Click "Add Section (File Data)" => "french.bin"
The empty Name field can you rename in ".french"
Right Click => "Rebuild PE Header" and save the Legacy.exe
Use now Bintext for the new French string Memory Position and replace it with IDA."

Juz rozumiem, jak trzeba tego "bina" zamontować w plku. Ale niestety Ostatnia częśc (string memory position, replace it) jest dla mnie zagadką.
Próbowałem wczytać się w poprzednie posty, ale większość jest po niemiecku, nawet z pomoca translatora nie wszystko kapuję (a użytkownik, który opisywał proces dla innego użytkownika chyba nie jest już aktywny na tym forum).

Awatar użytkownika
MartiusR
Posty: 13
Rejestracja: 18 lis 2020, o 20:15

Re: Star General - tekst zaszyty w pliku exe

Postautor: MartiusR » 18 wrz 2023, o 09:00

Ok, w końcu udało się rozgryźć ten problem - na niemieckojęzycznym forum, które wcześniej zalinkowałem, pomógł mi użytkownik Zyankali - w dużym skrócie, doradził użycie innego oprogramowania niż IDA (x32dbg) i zalecił uprzednie "potraktowanie" pliku exe z pomocą StripReloca (w celu pozbycia się sekcji .reloc i ułatwienia edycji pliku).

Co najważniejsze, działa - podmieniłem już na próbe kilka zwrotów (również tych, które po polsku są dłuższe) i działa! Niestety, proces jest dość żmudny, ale najważniejsze, że jest funkcjonalny.

goliat
Posty: 117
Rejestracja: 6 cze 2021, o 08:44

Re: Star General - tekst zaszyty w pliku exe

Postautor: goliat » 18 wrz 2023, o 18:51

To masz szczęście z tym projektem, gdyż jest dostępne odpowiednie narzędzie .W przypadku Prisoner of Ice, jak tylko tekst jest dłuższy w polskim przekładzie od angielskiej to gra nie widzi tego tekstu. Może kiedyś takiego się doczekam lub wyjdzie remaster to pomyśle o ponownym tłumaczeniu.

Awatar użytkownika
MartiusR
Posty: 13
Rejestracja: 18 lis 2020, o 20:15

Re: Star General - tekst zaszyty w pliku exe

Postautor: MartiusR » 2 kwie 2024, o 20:47

To masz szczęście z tym projektem, gdyż jest dostępne odpowiednie narzędzie .W przypadku Prisoner of Ice, jak tylko tekst jest dłuższy w polskim przekładzie od angielskiej to gra nie widzi tego tekstu. Może kiedyś takiego się doczekam lub wyjdzie remaster to pomyśle o ponownym tłumaczeniu.
Bardziej niż szczęście pomógł raczej "ośli upór", bo w większości miejsc (tu też) nie udało mi sie uzyskac zadnej informacji, która by trochę mnie popchnęła do przodu. To niemieckojęzyczne forum wskazał mi jeden uzytkownik GOGa z Niemiec.

Inna sprawa, że po rozgryzieniu tego problemu i tak musiałem to odłożyć ad calendas graceas, bo miałem dośc pilnie jedno "zlecenie" do tłumaczenia, ale i tak bardziej robiłem to "dla siebie", żeby się sprawdzić w jakimś trudniejszym technicznie przypadku, więc raczej nikt (poza mną :)) sie nie przejął.

P.S. Oczywiście jeśli się mylę i jest na forum choć jedna osoba, której tłumaczenie SG autentycznie by sie przydało, niech da znać.


Wróć do „Technikalia”



Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość