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.
Star General - tekst zaszyty w pliku exe
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ę.
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ę.
Star General - tekst zaszyty w pliku exe
- Załączniki
-
- paczka.zip
- (458.49 KiB) Pobrany 63 razy
Re: Star General - tekst zaszyty w pliku exe
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ć.
Możesz spróbować programu dnspy, ale jest on przeznaczony dla programistów, więc jakoś pojęcie o programowaniu trzeba mieć.
Re: Star General - tekst zaszyty w pliku exe
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).
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).
Re: Star General - tekst zaszyty w pliku exe
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.
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.
Re: Star General - tekst zaszyty w pliku exe
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.
Re: Star General - tekst zaszyty w pliku exe
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.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.
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ć.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości