|
Post by sushi on Feb 3, 2013 12:53:29 GMT -5
If you record in a table all addresses for all text strings, the text string, for both files. Then it will be easy for someone to write a script to replace all text strings - that can easily be adjusted for future versions of uim. It just needs some ground work... Ok I'll try to do that first, locate each text string. As soon as I've succeed to find the texts strings I post an example on the forum to verify if it matches what you suggests. Thanks Edit : Which HEX editor must I use, that fucking "Free Hex Editor" seems not so free as it claimes... Just opened it and it already asked me for upgrading to the commercial version vith a free trial Edit 2 : Just downloaded HxD hope this will be a good one for me. Thx Ouch
|
|
|
Post by sushi on Feb 3, 2013 15:55:37 GMT -5
How to open 2 HxD at the same time ?
Oups ! Sorry I've got the answer ;D...
|
|
|
Post by sushi on Feb 3, 2013 17:17:01 GMT -5
I'm translating.... Big big job indeed ! I've decided that it wouldn't make sens to modify the locations names and the AI pilotes names like "Downton Trader" which give his personality to the game. All the HUD is translated so i'll try to launch the game... Maybe some errors cause I've modified a bit the position of some texts I belive. Maybe I'll do better next EDIT : Ah ah ah ah "HardwarW a cessé de fonctionner" (HardwarW has crashed) Back to the begining without changing the string...
|
|
|
Post by sushi on Feb 4, 2013 4:34:41 GMT -5
Ok, I'm now able to change the texts and make Hardwar to Start ! But, Sometime, even if I'm careful with the string length, - there are dots after the word - or the word is cut - or two words are following each other. - or syntax symbols appear here is a print screen ! There is plenty of room quite everywhere in the text zones, how to allocate more for my translation is there a way to do it ? On the Eng version, the text begins at 000D89C0 On the Fr version, the text is not located the same place and there are parts on many locations... It is useful to translate anyway. The strings do not match. Maybe I can add lines ? @+
|
|
quark
New Member
Posts: 48
|
Post by quark on Feb 4, 2013 16:29:16 GMT -5
If I had to take a guess I'd wager some of your strings aren't terminated with a 00 (hex) properly. I reckon the game expects the strings to have their own terminators.
|
|
|
Post by ouch on Feb 4, 2013 22:26:00 GMT -5
Yep if you don't terminate your strings with 00 then the game doesn't know where the string ends. This can create crashes and memory leaks if you don't do it.
|
|
|
Post by sushi on Feb 5, 2013 4:51:23 GMT -5
Ok I understand. I'll try once againe as soon as I ve a little time for it. Do you know if it is possible to add any lines to keep each string to the right location but having more room to translate I d'on't know exactly how the Hex works... Exemple : 000D89C0 1 more line 000D89C1 or something else 000D89D0 So the string begining to D89D0 is not delocated.
|
|
|
Post by riedquat on Feb 5, 2013 10:25:13 GMT -5
Good work sushi, you also achieved to get Duncan interested! Now stop slacking and get back to work! If you are successful I could try to do the same in Spanish! About immersion, I sincerely prefer to play games in its original language, I lose immersion with games translated into Spanish or into English if originally it is in another language, but of course I see the advantage of games being in other languages. Pilot, Arvic was the name!
|
|
|
Post by duncan on Feb 5, 2013 14:11:43 GMT -5
Do you know if it is possible to add any lines to keep each string to the right location but having more room to translate I d'on't know exactly how the Hex works... Exemple : 000D89C0 1 more line 000D89C1 or something else 000D89D0 So the string begining to D89D0 is not delocated. Hexadecimal is counting to 16 instead of ten (decimal). For the numbers 10-16 the letters A-F are used. To distinguish hexadecimal numbers from decimal you would put 0x in front of it. So the hexadecimal address that you mention: 000D89C0 = D89C0 = 0xD89C0 = 887248 in decimal 000D89C1 = D89C1 = 0xD89C1 = 887249 in decimal 0xD89C1 is not a new line, but the next byte. So in your hexeditor you see something like this: 000D89C0 00 00 00 00 00 00 00 00 00 where each byte is represented by 00 the first 00 after 000D89C0 is the 887248 th byte in the file the second 00 after 000D89C0 is the 887249 th byte in the file, its address is 000D89C1 Hope that makes sense somehow. Throughout the exe there are references to byte addresses, as soon as you insert or delete some bytes, all those references point to the wrong place (if the address is after that insertion/deletion) So what may be possible to just add new text strings to the end of the file and update the existing references to the addresses of the added text strings by a 'find+replace' method. There maybe some file size probem that needs solving. I don't know I have never tried anything like this. Oh and there is the hardwar enhanced way of doing things, which I also do not understand.
|
|
|
Post by sushi on Feb 5, 2013 14:23:41 GMT -5
Everything perfectly clear ... I suppose that readdressing all the references is an impossible task... For me at least I now understand the enormous work that making UIM06 represent !
|
|
|
Post by Pilot on Feb 6, 2013 2:44:48 GMT -5
Like I pointed out, the F2.1 is 1.45MBs and UIM6 is 1.07MBs. duncan how would one go about alternating a addresses run location? Would it be possible (theory), to make a text hooker (memory hack, like a cheat engine script?) to replace text in game. By hooking certain addresses to trigger the replacement text? I actually think I have seen this method ONCE before, however I also don't remember how well it actually worked. As for hex editor I use, and recommend, CFF ExplorerThough if you would like an in game memory editor I recommend Cheat Engine.
|
|
|
Post by duncan on Feb 6, 2013 3:04:10 GMT -5
Yep if you don't terminate your strings with 00 then the game doesn't know where the string ends. This can create crashes and memory leaks if you don't do it. I just noticed some strings, but not all, are alse terminated by a 0x2E and then 0x00.
|
|
|
Post by duncan on Feb 6, 2013 3:08:17 GMT -5
Would it be possible (theory), to make a text hooker (memory hack, like a cheat engine script?) to replace text in game. By hooking certain addresses to trigger the replacement text? I actually think I have seen this method ONCE before, however I also don't remember how well it actually worked. I guess yes - but you still need to know where in memory the text sits (memory address) and what you want to replace it with. And it seems you are still limited with available characters. So very similar situation as messing with the exe.
|
|
|
Post by duncan on Feb 6, 2013 4:14:52 GMT -5
I will see if I can find some time to write a simple python script in the next days that will replace some text strings.
If you can post here the addresses to the HUD texts in the UIM06 hardwarw.exe file, that would be helpful.
|
|
|
Post by sushi on Feb 6, 2013 7:34:29 GMT -5
Does a print screen could be ok or how must I give you those addresses, what is important to take or leave ? The HUD begins apparently at 000D89C0 "No weapon" 000D89D0 "DAMAGED" 000D89E0 to 000D89F0 "Malfunction" 000D89F0 to 000D8A00 "Recharging" Is it what you need ?
|
|