Closed hguy closed 1 year ago
@EtienneLamoureux it looks like the old TQ game has a built in mecanism that detect when an item has been added or removed from the player.chr
and make the altered save unplayable (tested on steam). I tried to understand and trick the system but in vain for now.
Putting back the item at the exact same place make the save work again.
So it's not about file format integrity.
It's not a comparison with last backup file either because tweaking the backup file doesn't break the save.
It looks more like a checksum check where the hash is... somewhere.
The solutions are one of these
Read Only
for TQVault (there is a variant of this idea in issue #268 for vault).IGamePathService.GetCharacterList()
until we have a solution (read only or other).For now i'm excluding the feature (option 2), just to be non blocking on the PR.
Considering the facts, i don't think TQVaultAE ever worked with Titan Quest Original.
Maybe @ejfudd have some insight about this?
@hguy That does sound familiar. I checked my file decoding notes and I did not see anything there about a checksum. I do have the original TQVault 2.1 code somewhere and it should be in there. I will dig it up and take a look.
Edit: With the original Titan Quest, we used a utility called TQVaultMon which would monitor the Titan Quest process and disable the anti-cheat for modifying your character.
@hguy That does sound familiar. I checked my file decoding notes and I did not see anything there about a checksum. I do have the original TQVault 2.1 code somewhere and it should be in there. I will dig it up and take a look.
I confirm that if checksum it is, it's not stored inside the Player.chr after 30 min doing binary compare on this file, i didn't detect any differences except the items. TQVault fully support the TQ Original file format.
Edit: With the original Titan Quest, we used a utility called TQVaultMon which would monitor the Titan Quest process and disable the anti-cheat for modifying your character.
@ejfudd It looks like i just hit the wall of this anti-cheat. I can't find anything about this "TQVaultMon". Do you have any copy, any code somewhere, any link ?
@hguy I was able to find the source for TQVault 2.3.1.4. I have extracted the TQVaultMon project and attached it.
To be honest, TQVaultMon is a relic from before I took over TQVault. The code just does an in-memory patch of the Titan Quest exe file to bypass the anti-cheat. The actual patches were provided by Soulsekkor of TQDefiler fame.
@ejfudd Thanks! my investigation lead me to soulseeker/TQDefiler work on this to. I just decompile the tool to have a look. Looks like his patch work for v1.2-v1.3, but steam current version is labeled "v1.3.sd" and defiler doesn't support it. I have to look at this a little bit closer when i have time.
@ejfudd @EtienneLamoureux well i did compromise. https://github.com/hguy/TQVaultAE/blob/disable-stacking/documentation/TQORIGINAL.md
That was probably the quickest and simplest fix.
If the process fix in TQDefiler.NET still works for TQ 1.3, TQVaultMon should also work. I can post a binary from one of the older TQVault versions or you can create one from the project that I attached previously. Of course, that's if you want to pursue it.
That was probably the quickest and simplest fix. If the process fix in TQDefiler.NET still works for TQ 1.3, TQVaultMon should also work. I can post a binary from one of the older TQVault versions or you can create one from the project that I attached previously. Of course, that's if you want to pursue it.
That's what i though first, and it certainly must with CD versions until v1.30, but for some reason the Steam version have a memory allocation that TQVaultMon can't handle and TQDefiler does. My prefered solution was to apply patch directly on the TitanQuest.exe, but the Steam binary is also slightly different and i didn't succeed either. I only use steam version and i don't have any iso for older version, so my testing capability is limited.
Hi @EtienneLamoureux, Is there any blocking code in this PR ?
Hi @EtienneLamoureux, Is there any blocking code in this PR ?
No, it should be all good :)
Are all the changes documented above?
Are all the changes documented above?
When documentation was needed, yes!
Fix #278 disable Relic, Charm & Potion stacking
You can configure it from the user settings. Default is uncheck.
Add "Having Relic", "Having Charm" into Highlight
Resolve #442 Display the effects of EE potions
Revamp configuration window
Cloud backup via Git
Documentation here https://github.com/hguy/TQVaultAE/blob/disable-stacking/documentation/GITBACKUP.md
Add support for TQ original character saves
Documentation here https://github.com/hguy/TQVaultAE/blob/disable-stacking/documentation/TQORIGINAL.md
Close #471 - Add Highlight "Set Item" filter
Refresh Advanced Search
This update is closing the gap between the "Highlight" form and the "Search" form.
Added missing filters from "Highlight"
Better Form response to Resize
Query persistance include all filters & UI state
New JSON file for Query saves (
SearchQueries.json
).Updated documentation
New categories
Close #469 - Add a character save management system
New character ComboBox with a tool menu
"Duplicate" feature has been moved here
New "Archived/Unarchived" feature
Archived character have a silver background color when selected
Archive/Unarchive all
New "Tags" feature
Full tag management system here
You can "Mass Archive/Unarchive characters" by tag
New Detailed DropDown to support theses features
Documentation here https://github.com/hguy/TQVaultAE/blob/disable-stacking/documentation/CHARMANAGE.md
Others
/TQVaultData/Config/
directory for config file persistance.SearchQueries.json
TagConfig.json