|
Davidge Novice
Joined: 14 Apr 2004 Posts: 33 Location: Colorado
|
Posted: Thu Jul 21, 2005 12:09 am
ACxserv.exe and ToD: Analysis and hope |
Well - I've been tackling this all night and part of today, here is a short summary:
Loc addresses are *likely* going to be alright. My snooping in the AC clients memory space suggests that I *may* have found a couple of very likely candidates for the memory locations, and they *appear* to be in the same block format as the old client versions. The only doubt I have is I cannot a) confirm that the offsets are even close to what they were before and b) cannot get acxserv.exe to hook into the new AC Client.
The problem is that acxserv.exe can no longer recognize the AC Client version and thus fails to get the process/task number.
I snooped into the acxserv memory space, (apologies Zugg) and used the built-in debug log and what I think I am seeing is that it's looking for a version in the old versioning format, which was v1.0.69.0, ( vN.X.YY.Z ) while the NEW version format is 00.00.11.2545 ( NN.XX.YY.ZZZZ ). It also appears to be searching for a process name called simply client.exe, and the new ToD client is now ACClient.exe, but that might not matter - since it does appear to find acclient.exe, and it also "sees" the new version (and lists it correctly in the debug window) but apparently does not recognize it as a *valid* version due to the change in the field. It begins the infinite loop at that point trying over and over to get the version and nevers gets past that to begin the function where it identifies the local process number of acclient.
Zugg, is there anyway we could at least get a fix for the acclient version check, name and process number functions? I would be more than willing to help test it privately and confirm that the Loc memory location blocks work before you update the public release. (And testing software is something I am very, very good at doing professionally.)
I am 90% certain that with a version info and client name field fix I can find and post working config info for everyone.
P-p-p-please? I only ask cause I love this program. :) |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Thu Jul 21, 2005 1:07 am |
I'll try to get a chance to look at this. I haven't recompiled ACXServ since the hard disk crash and reinstall of all my dev tools last February, so I can't guarentee anything though.
|
|
|
|
Alderonny Newbie
Joined: 31 May 2005 Posts: 2
|
Posted: Fri Jul 22, 2005 5:12 am |
@e Crosses fingers
|
|
|
|
Davidge Novice
Joined: 14 Apr 2004 Posts: 33 Location: Colorado
|
Posted: Fri Jul 22, 2005 7:53 am |
Thanks Zugg!
Let me know if/when I can help. ;) |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Thu Sep 01, 2005 4:35 pm |
I'm planning to recompile all of the Zugg Software products in the next week in order to replace the eLicense copy protection with a new system that is much looser and less intrusive.
While I don't have any copy of Throne of Destiny to play with directly, this will be a chance for me to make simple changes to try and improve compatibility with the new expansion.
Davidge has done a great job posting some specific information on what might need to be changed in AC Explorer and the ACXServer. Now that the expansion has been out longer, hopefully people have learned more about what has been changed in this expansion (especially the Decal people).
If you can post as much information as possible on exactly what was changed in the expansion, and what other people with similar programs have done to fix it, then I'll be able to encorporate this information into the new version of AC Explorer. |
|
|
|
Davidge Novice
Joined: 14 Apr 2004 Posts: 33 Location: Colorado
|
Posted: Thu Sep 01, 2005 7:12 pm |
Looks like offsets are no longer needed.
Current memlocs for the position of a character are posted here: http://www.thelostcorpses.com/derethexplorer/dservmemlocs.php
This month it's 7C5A8C . . .
Client process name is now ACClient.exe - NOT client.exe.
I do not know the format of that memloc, but it appears to contain both the loc and heading. I know previously you tracked two memloc's - one for each. I will see if I can dig that up. |
|
|
|
Surge Newbie
Joined: 14 Sep 2005 Posts: 2
|
Posted: Thu Sep 15, 2005 9:53 pm |
I found a heading memloc, but it doesn't appear to be in a format expected by ACXServer:
007C9188
The values at this location match the output of @loc when you stand still and change heading, but they're not in (Degrees * 10) as the ACXServer technical doc states.
The values are based on a COS value of the position, going from 1(N: 0 degrees) to 0 (S: 180 degrees) to -.99999(359.999).
So the value in degrees is:
Heading(Degrees) = ACOS(Value @ memloc)*PI/90 (there's a factor of 2 in the conversion as well, so it's not a straight conversion from radians).
I don't know if there's likely to be another memloc that expresses the heading in a format that can be directly read by ACXServer, but Davidge's position memloc (EDIT: new is 007C9184 via the link he posted) works for the XY coords, at least, making the live tracking useful again (though the arrow always points up for heading) |
|
|
|
|
|