Re: Beta Technical Demonstration - Translation without Hexing the EXE
My game is a different version than bobsobol's.
Mine is 1988 and his is 1977. Everything works fine here, but the skills desc not.
Re: Beta Technical Demonstration - Translation without Hexing the EXE
Take bobsobol 009.lng and translate it (without touching addresses in front of translation), start PTInternational.exe, magic happen no crash :)
You probably made some mistake in your game.exe version/address in .lng file but I can't tell, I never sow yours (the one you uploaded was "clean", I think).
Re: Beta Technical Demonstration - Translation without Hexing the EXE
I already said, bobsobol's game is crashing here too!
Without any lng file.
Re: Beta Technical Demonstration - Translation without Hexing the EXE
I just tried on Win XP, with same result everything is working for me.
Try putting bobsobol files into clean KPT client folder.
If you have different OS than can try it too?
If that will not help than can you start giving offsets from PTInternational.exe, because its too confusing and I am not sure about what .exe you are talking about.
I recreated your error and error you are having occurring because memory is patched in wrong place, in other words your .lng file have bad address and data that was patched is moved to EAX.
I know you are not a noob but people making mistakes or "magic happen" like error I found in PTInternational.exe.
So I will ask again if you can you check this:
Install fresh KPT,
put files that bobsobol uploaded inside that folder,
do not change 009.lng,
run PTInternational.exe
PS. remember to rename IntStr[Release].dll to IntStr.dll
Re: Beta Technical Demonstration - Translation without Hexing the EXE
well, I'll do it. Thanks vormav.
---------- Post added at 06:58 PM ---------- Previous post was at 06:44 PM ----------
I didnt find any PTInternational.exe, only ButcheredIntlClassDescFixvA.exe.
Re: Beta Technical Demonstration - Translation without Hexing the EXE
First of all, thank you for the positive report Vormav. I'm glad the current system seems to work as well for you as it does for me.
The confusion here is that Lelejau and I are trying a two pronged attack at the issue he is having. Neither are proving succesful at the moment. But we are trying either to get his 1988 client to work, or my Butchered 1977 client to work... right now both are crashing on his PC, OS, and configuration.
Quote:
Originally Posted by
lelejau
ok. Now, I tryed with your game. When I try to use the dl to patch the strings the game closes before I have a chance to type username and password.
Yes, username and password both pass through the APIs which are patched, so if the dlls are conflicting with your system then even they may be compromised. And I think that's what it's down to... a conflict between my present DLLs and your PC setup, as we should now have covered everything related to the game, with the possible exception of the assets. (meshes, animations, sounds and textures)
Quote:
Originally Posted by
lelejau
The error is here:
004567E3 |. 8B83 9C020000 MOV EAX,DWORD PTR DS:[EBX+29C]
(In your exe.)
Access Violation when reading.
DS:[0000029C]=???
EAX=0
Well, it's quite correct, 29C is still part of BIOS memory which is protected by the 386+ "Protected Mode" Windows runs the CPU in... it's the space the BIOS takes up that stops you using up-to the 4Gig limit of the 32-bit address space in the machine, unless you enable PAE (Paged Addressing Extensions) to page the BIOS out... and support them in your application. (OT, sorry) But that is why that address will always be invalid. So if EBX+29C = 29C then when the instruction at 0x004567E3 is called EBX = 0, and it should not; EVER!
This is not a routine I have ever modified, nor is it ever directly called from any routine I have ever modified... so something my DLLs are passing back must be incorrect on your system, leading to problems further down the line. I would like to know what the last line the "Logging" version outputs is before that error occurs.
Quote:
Originally Posted by
lelejau
There isnt another way to patch the skills description?
I'm sure there are other ways of implementing the changes to the executable than the method I chose... you could move the code to a new section, I could implement it in International.DLL which would fix International.DLL firmly to MY client only. You could "break out" each of the REP MOVS instructions to a completely custom routine which scanned for strings. I don't think any of those things is going to improve your situation.
However, simply re-writing IntStr.dll in C++, might... equally, if it was C++ switching between VC6 and VC9 may create or remove this problem... that's not really a solution, because it doesn't explain what the problem is.
What the problem is, is clearly something to do with how memory is allocated on your PC (which could be msvcrt, kernel32, advapi etc. and their interaction with GCC or specifically the freeBASIC runtime, or neither) and how the original APIs return information. (which is entirely down to Kernel32 and User32 and ADVAPI)
In any event, I don't know what OS Vormav is running, but I would guess it isn't XP, and am thinking I have an incompatibility with XP.
--- EDIT ---
Just read the last two posts... so it's not XP! :o I'm very confused now. XD
And, yea, I've been working on Butchered for months now... I never just "search and replace", never Hex, never Binary copy and paste code, (only data) and don't remember doing anything around there, unless it originally pointed to some XTrap code and I made a typo. That's about the only way I could think that it might have gotten there.
I've used addresses that I know won't get patched before too, and not had a problem. (it just wastes time)
It would be great to see the .lng line you used to re-create the issue Vormav... that way, I may be able to filter out, and warn about such "invalid" configurations. I had already considered creating memory "zones", so I could bypass logging anything too dynamic to be worth bothering with. But a lot of that's pretty specific to 1 game.exe on 1 OS, and I'm not sure that many devs / translators would know how to "zone" their own memory maps. XD
---/EDIT ---
Re: Beta Technical Demonstration - Translation without Hexing the EXE
OK, reinstalled everything and bobs game is normal.
**Without any Skill patch!**
I`ll try to patch the skill desc right now.
---------- Post added at 07:09 PM ---------- Previous post was at 07:06 PM ----------
Nope, it didn't work.
I'm still having crash, in a fresh KPT full client install.
His game crashs even if I patch the skill desc or not...
Re: Beta Technical Demonstration - Translation without Hexing the EXE
Win 7 and XP here, and for some reason I don't have bug that lelejau is talking about.
To recreate his error just put:
Code:
6136992 = "Vel. da Arma:/n"
inside 009.lng (use your game.exe 1977)
game will crash in 004567E3 as lelejau saying.
Re: Beta Technical Demonstration - Translation without Hexing the EXE
vormav, I using bobsobols files inside a fresh kpt install.
I`m still getting erros.
Re: Beta Technical Demonstration - Translation without Hexing the EXE
I know, I am just telling bobsobol how to recreate your error because Its hard to fix something if you don't get that error too. Can you try different OS? Or ask some friend if he can run this for you, he don't need server.
Re: Beta Technical Demonstration - Translation without Hexing the EXE
I think its needed, because the game crashs after I choose a character and starts to load.
And no, I dont have another OS...
But it would be nice to fix it in XP, because not everyone has upgraded from XP.
Re: Beta Technical Demonstration - Translation without Hexing the EXE
Well its working on my XP so if this:
Multiupload.com - upload your files to multiple file hosting sites!
(copy those .dll into PT folder)
will not work than do
FORMAT C:
:)
Re: Beta Technical Demonstration - Translation without Hexing the EXE
@Vormav: Thanks. Yea... I'm thinking of digging out an old XP PC to try, but concerned because I "retired" it because it had become too "unstable" even when I install clean XP on to it. (bluescreen after a matter of 20min - 3hrs) Which suggests the chipset on the motherboard is failing / overheating.
I don't know anybody locally who is using any OS older than Vista, and I'd normally turn to a VM, but we all know PT client doesn't run under any VM software. :(: (unless you count WOW6432 XD)
@lelejau: did you miss the "PTInternational.exe" update with all the latest DLL builds and HanDes all together so there is no difference in any of our executable dependencies?
>Download from here< if you did.
Re: Beta Technical Demonstration - Translation without Hexing the EXE
with skill description fixed?
---------- Post added at 07:46 PM ---------- Previous post was at 07:44 PM ----------
Yes!!!!
No crashs!!!
---------- Post added at 07:48 PM ---------- Previous post was at 07:46 PM ----------
I saw the lng file is very updated.
Can you tell us what you didnt translated so I can continue your work?
Re: Beta Technical Demonstration - Translation without Hexing the EXE
Oh, well with Vormavs help I've managed to recreate your error. So I will try to find a way to ensure that nothing so serious can be caused with the .lng file alone, if at all possible.
It is interesting, you still have "/n" which should now be "\r". (more standard escape notation, and the form that PT uses internally) I hope it isn't simply that which is causing the problem.
What I've been doing (aside from Skill descriptions, which I stepped up specifically because you asked me to) was going through all the strings dumped with the "ExtractStrings.exe" tool I created, and matching them to the versions in an EPT client. You will probably notice that (after the specific initial testing and proving points) the addresses just follow on consecutively, all pulled directly from .rdata section. The .data section seems to be less similar between different language builds, so it's a good thing that there aren't a lot of strings in it. XD