Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


Cheat Engine and scan buffer

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General programming
View previous topic :: View next topic  
Author Message
iPromise
Grandmaster Cheater
Reputation: -1

Joined: 27 Jun 2009
Posts: 529
Location: Canada

PostPosted: Sat May 29, 2010 7:56 pm    Post subject: Cheat Engine and scan buffer Reply with quote

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
View user's profile Send private message MSN Messenger
AtheistCrusader
Grandmaster Cheater
Reputation: 6

Joined: 23 Sep 2006
Posts: 681

PostPosted: Sat May 29, 2010 7:57 pm    Post subject: Reply with quote

How bout paying a visit to the SVN cause you know.. Cheat Engine IS open source...
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 470

Joined: 09 May 2003
Posts: 25781
Location: The netherlands

PostPosted: Sat May 29, 2010 8:03 pm    Post subject: Reply with quote

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
View user's profile Send private message MSN Messenger
iPromise
Grandmaster Cheater
Reputation: -1

Joined: 27 Jun 2009
Posts: 529
Location: Canada

PostPosted: Sat May 29, 2010 8:30 pm    Post subject: Reply with quote

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
View user's profile Send private message MSN Messenger
Slugsnack
Grandmaster Cheater Supreme
Reputation: 71

Joined: 24 Jan 2007
Posts: 1857

PostPosted: Sat May 29, 2010 9:06 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General programming All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites