Zhoul Master Cheater Reputation: 1
Joined: 19 Sep 2005 Posts: 394
|
Posted: Wed Dec 28, 2005 10:29 pm Post subject: Faster Float Scanning - 2 suggestions to speed it up a lil' |
|
|
I've noticed that scanning for floats can take a great deal of time, over searching for 4 byte values, etc. The two main reasons I believe this to be are:
1. CE doesn't have an option to 'block out' non-real numbers. Usually, my list is 90%+ non-real numbers, and less then 10% of those are real numbers.
2. When searching for a float, (i think) CE converts all read data from memory, into a float, then does the compare.
------------------------------------------------------------------------------------
Suggestion 1:
------------------------------------------------------------------------------------
No game that I've had the honor of hacking up has ever used non-real float's. A non-real float = something like 0.111111111e-50 (anything with E notation).
Give the user an option (check-box?) when scanning for floats or doubles, to 'ignore non-real numbers'. I believe this will speed up float scanning a *great* deal. More-so in the area of how many results are returned.
------------------------------------------------------------------------------------
Community Request 1:
Is there anyone that loves messing with the CE source, available to test this, or other theories out?
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
Suggestion 2:
------------------------------------------------------------------------------------
Possibly another check-mark box? -
When searching for a float, convert the user input into a 4 byte value, then search for the first two bytes. If match - then convert the 4 byte read value into a float and do the compare.
For instance:
1.00000000000000 = 0x3F800000
1.00781238079071 = 0x3F80FFFF
1.125 = 0x3F900000
1.250 = 0x3FA00000
1.375 = 0x3FB00000
1.500 = 0x3FC00000
So if searching for 1 - CE would search for 0x3F80. Once found, CE would then convert the read in memory data to a float, then do the actual compare (which it currently does). I believe this will greatly speed up not only a normal float scan, but more-so the 'value between' float scan.
------------------------------------------------------------------------------------
Community Request 2:
Is there anyone that loves messing with the CE source, available to test this, or other theories out?
------------------------------------------------------------------------------------
|
|