leaty / tuxtrain

An easy-to-use generic trainer for Linux, written in Rust.
MIT License
50 stars 3 forks source link

Elden Ring Trainer Not Finding Patterns #1

Closed Larsenist closed 2 years ago

Larsenist commented 2 years ago

Running tuxtrain after launching Elden Ring or as a daemon prior, either as my user or root results in:

==> Elden Ring Trainer 0.0.2 FPS Unlock

leaty commented 2 years ago

Could be a different or an updated version, is this on steam?

In any case, remove the region lines e.g. region = [5383384927, 5383384935] from each feature and run it again (as root). This should both find and apply the features correctly as long as the pattern locations were simply moved in your version, it will also output the correct regions for your version.

Basically the memory regions (where it looks for the patterns) are fully tightened in the trainer to be as fast as possible, by removing them it will search through the whole process memory instead, this can be a bit slow but can be remedied by inputting the correct regions. There is also a faster way than searching the whole process memory mentioned in the top of eldenring.toml if you're curious.

Let me know how it goes, also let me know which version this is to see if I can reproduce it and if it's worth updating it in the repo. Thanks for the issue!

Larsenist commented 2 years ago

It worked! My game is smooth with no bars on either side! Here's my values, in case they're useful to other machines; ==> Elden Ring Trainer 0.0.2 FPS Unlock

tuxtrain --version tuxtrain 0.0.3

leaty commented 2 years ago

Awesome! Have fun playing the game as it should've been from the get-go.

You can now use the values after "Consider tightening region" to replace the region lines you removed, if you want it to apply faster next time.

I think I'll add a switch to ignore preset regions to force-read the full process memory, so that one doesn't have to remove the region lines manually.

Larsenist commented 2 years ago

I was surprised that it didn't take long at all to pull the regions. I didn't even notice the difference in load time. I am using NVMe gen4 and DDR4-3600 though I did enter the new regions and it was still working

leaty commented 2 years ago

Well, it is rust and the actual memory read and pattern search in tuxtrain is pretty optimized. But really the speed without a set region varies depending on the location as the memory is read from start to end.

If the pattern is located at the end, of say a process that's using 2 GB of memory, then it would have to read through 2 GB of data (although in 1024 byte chunks), which can be slow, while if it's at the beginning it might be instant.

Also if it's a slow HDD or a fast NVMe doesn't matter as it's reading directly from RAM.