View previous topic :: View next topic |
Author |
Message |
iPromise Grandmaster Cheater
Reputation: -1
Joined: 27 Jun 2009 Posts: 529 Location: Canada
|
Posted: Sat May 29, 2010 7:56 pm Post subject: Cheat Engine and scan buffer |
|
|
How does Cheat Engine have its lighting speed scans in half a second ? I am using VirtualQuery to speed my scans, and everything else that was suggested, BUT still can't get enough a little bit closer to the results of Cheat Engines scans? What does the scan buffer have to do with the scan, speed it up right? What functions does the scan buffer use? guys please, help.
|
|
Back to top |
|
 |
AtheistCrusader Grandmaster Cheater
Reputation: 6
Joined: 23 Sep 2006 Posts: 681
|
Posted: Sat May 29, 2010 7:57 pm Post subject: |
|
|
How bout paying a visit to the SVN cause you know.. Cheat Engine IS open source...
|
|
Back to top |
|
 |
Dark Byte Site Admin
Reputation: 470
Joined: 09 May 2003 Posts: 25781 Location: The netherlands
|
Posted: Sat May 29, 2010 8:03 pm Post subject: |
|
|
scanbuffer is a multipurpose variable that dictates how much memory is allocated for several buffers and diskwrite sizes
this can affect speed due to cpu cache sizes and disk cache/etc...
as for a speed improvement tip: Don't display the found results to the gui during the scan. Save the results to memory (in a pre-allocated buffer that when it's full writes to the disk, preferably async)
then when the scan is done just show the first few results while the buffer is still being written to disk
And try increasing the priority of the scanthread
just NEVER EVER use a normal listview or other component that you ADD addresses to. It's best to just render it manually yourself
actually, don't do ANY gui update during the scan except perhaps a separate thread that polls some global variables every half second to update the gui
and yes, http://ce.colddot.nl/svn/Cheat%20Engine/memscan.pas
and
http://ce.colddot.nl/wiki/memscan (it's one of the rare places in ce that I actually documented a little)
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
Back to top |
|
 |
iPromise Grandmaster Cheater
Reputation: -1
Joined: 27 Jun 2009 Posts: 529 Location: Canada
|
Posted: Sat May 29, 2010 8:30 pm Post subject: |
|
|
I'm writing my results to a file in the beginning, then after the scan add the results to my listbox. As for dont ever use a "NEVER EVER use a normal listview or other component that you ADD addresses to", you mean I should make my own component? Or just customize / render with the settings of the component?
I read your wiki up and it cleared a lot of things, thanks.
|
|
Back to top |
|
 |
Slugsnack Grandmaster Cheater Supreme
Reputation: 71
Joined: 24 Jan 2007 Posts: 1857
|
Posted: Sat May 29, 2010 9:06 pm Post subject: |
|
|
Don't write them to a file to begin with. That's stupid. Disk access speed is slower even than memory. As db suggested write to a mem block. Only when that is full do you write to disk. What he means by asynchronous is functions which return immediately when writing to disk instead of waiting till the write operation completes. What I would actually recommend is 2 memory buffers. When one fills up, asynchronously write it to disk and put further results to the other buffer and alternate.
No doubt you are still not doing virtualquery correctly anyway.. What he means by the listview is to display dynamically which can be done with custom drawing to override the system's default way of displaying entries. You only fetch the items that are currently in view. Then when someone scrolls you fetch the new items only then. This can be done with owner-draw.
|
|
Back to top |
|
 |
|