Self Patching Macro Quest

kegasi

New member
Joined
Dec 9, 2013
Messages
12
Reaction score
0
Points
1
Is there a way that MacroQuest can be updated to self patch its self after a path to the game has been updated.

For Example, if MacroQuest detected that you had a newer version of the game than it was designed for it would read the new version of the game and calculate the new offsets and store those in a file along with the new version number of the game.

When the game is updated it would just look into it's offset config file and know what the new offsets are. Also you wouldn't have to recompile MacroQuest after a patch and download a new file to the user but instead just download the offset file to the users.

You could setup the system so that the first person that ran the software and it found the offsets it would upload the information back to you to be verified and then forwarded out to other users.

This should cut your turn around time way down.
 
That is a awesome idea. I think you would have better luck getting a standing blowjob from a little person with no legs though. I would think if it was possible they would have found a way to save them all that time and needle hunting in a haystack by now.
 
That is literally what is done ((minus the compile)? You have to IDA the offsets and a lot of the stuff is automated. its just there are also new chunks of code that have to be done by hand sometimes.


It has to be compiled because it is written in c/c++. So.. thats a thing.
 
It’s not practical because even though offsets can be pretty much automated there are still a few each patch that are wrong and needs to be manually looked up. We use a IDA plugin called patchday which is available at:
Tutorial: HOWTO: Update The Offsets in eqgame.h on patchday

It does a decent job and it has taken years to get it to a point where it basically gets 99% of them right...

Anyway that’s not exactly why there isn’t a automated process with offsets in a ini file, in fact when mq was in it’s infancy we used to have them in eqgame.ini

The main problem is that MQ2 needs to read data like your HP, Mana and like a million other things into it’s TLO members, and all of that data is read from something in memory called classes and structs.

Those structs are laid out differently each patch. Even if we came up with a perfect 100% sure way of autofinding them, (it’s improbable, I have tools that get close but still manual inspection is needed) we still would have to compile a new version of MQ2 that included them, moving all that info to a ini would basically break every single piece of MQ2 and then all current plugins would have to change as well etc, etc. it’s just not practical.

So no, this will never ever never happen at least not while I’m the lead dev.

Patches used to take days or even week(s), I’m pretty confident whatever time it takes now can’t be improved on any further, we are basically down to a point where I sit and wait for servers to come back up so I can test it because I’m already done patching it...
 
Last edited:
  • Like
Reactions: Coranda
Thanks

Thanks for helping me understand the patching process.

It may be possible for this to be updated in the future when AI
gets to the point that it knows how to look for the information
it needs and then recompiles the program and upload it for member
patches.

When AI reaches human level intelligence it will be able to perform almost
any mental task that a human does. And every 2 years after that the AI
will double in intelligence.

Since AI has shown that it can perform many of the tasks such as looking at cancer slides and identifying cancer much better than a radiologist and drive cars then it should be able to do this.
 
I think you are over estimating what "AI" is good at.

The way "AI" works is by having a "black box" with thousands of different weighted connections that get "trained" from some known good set. After training you give it some new data of the same type and it can make predictions.

Depending on how close the new data is to the old data the prediction can be quite good. If you introduce something new that is outside of what it was trained on you can get some really wacky stuff.

A great example I read about was object identification. The "AI" was trained to identify a couch, a chair, a table, a can of soda, etc. Then they took someone in a gorilla suit and walked across the scene it through everything off and it was no longer able to match things in the scene it was getting correct before.

The other issue with "AI" is the training sets are usually hundreds or thousands or hundred of thousand known test cases.

Having a self patching MQ just doesn't fit this type of task very well.
 
Last edited: