Strona 1 z 1

Star General - tekst zaszyty w pliku exe

: 7 wrz 2023, o 14:49
autor: MartiusR
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.

Re: Star General - tekst zaszyty w pliku exe

: 7 wrz 2023, o 18:56
autor: goliat
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ć.

Re: Star General - tekst zaszyty w pliku exe

: 10 wrz 2023, o 21:38
autor: MartiusR
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).

Re: Star General - tekst zaszyty w pliku exe

: 18 wrz 2023, o 09:00
autor: MartiusR
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.

Re: Star General - tekst zaszyty w pliku exe

: 18 wrz 2023, o 18:51
autor: goliat
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.