** Negative numbers can be confusing sometimes. I get that -1 and 255 will give the same results but there are times that it made me baffled. I mean, I attributed positive numbers when gaining/increasing something and negative when losing. (Negatives (-) can be useful though, sometimes, in some games, in tricking merchants.) If I wanted my items to be 130 pieces, for example, I input 130 but, to my surprise, GG automatically changed that to its negative equivalent. This also happens when searching for values, GG is searching for the negative counterpart of the positive number I inputed. Then there are times too that it messed up my filters or refined search if I use (value<0), because the address that I needed that holds the value of 130 (for example) is showing a negative number so it got hidden (filter) or deleted (refine). Can't we just let positive numbers be positive and negatives be negative unless specified by the user?
** In search tab, in "Only within memory range:" option, when you select an entry from the memory ranges list, both "From:" and "To:" are only using the initial value.
It's like this, when I select
Cb: 50375000 - 50F84000
the values of "From": and "To:" will be set to
From: 50375000 (ok)
To: 50375000 (instead of 50F84000). So I have to set it manually.
** The entry from the history only appends (added at the end) the value entry instead of replacing them.
** Custom limit size of history. Since not all users want to keep very long list of history entries.
** Swipe to delete an entry in the history or something similar.
** A "Delete all history entries" function.
** Please add a feature in GG that after the speedhack has been fully loaded, it will automatically select all the green check boxes and deselect the red ones.
** When the search result came up, please add a feature that will let the user know what the current value of results refer to what character/symbol.
Ex. when I search for the string "sand", If possible, I want the results to be like:
[Address] 115 (s)
[Address] 97 (a)
[Address] 110 (n)
[Address] 100 (d)
[Address] 115 (s)
[Address] 97 (a)
- This is so that the users will not be confused as to which character they are changing after the script for string search has ended.
- Another reason is that most of the time, you don't want to modify all values all at once because this practice often caused game/system instability, which is also true for numeric values, so I prefer to changed them one by one or one group of string at a time.
** You may also want to add string value in the current "converter" (it's the drop down arrow in the modify value window, sorry I don't really know what it's called). Currently, we have for dec,hex, reverse hex and XOR.
** An ASCII table for reference. Makes editing easier.
** I'm actually thinking, this could be simplified if you add a feature that will changed how the values of search results can be displayed. I mean right now, search results are shown in decimals but what if we can change that into hex? or string representation? The value of results will not be changed, only in what "form" they are being displayed which can be changed anytime according to the user's needs.
["Search nearby memories" suggestion]
** Just like the string search, I think it's also possible to adapt SBGame Hacker's "search nearby memory" feature to GG using (LUA) script.
I think one way to achieve this is by using 2 different offsets. One of the offset is negative and the other is positive. It will tell GG on how far (above and below) it has to search, for the user's desired value, from the base address.
base address: [42260ae0]
Value to search: 100
Offset 1: -15A ( [42260ae0] - 15a =  )
Offset 2: 15A ( [42260ae0] + 15a = [42260C3A] )
So GG will try to search all the "100"s between the address  and [42260C3A]
** A filter for the resultant address' "live" value. When using offset calculator, GG will display instantaneously the value of resultant address (base address + offset) which is good for quick info lookup but it shows all the values for all datatypes all at once. This made it look confusing and more complicated than it should have.
** Add a "Save" button/feature that quickly adds the resultant address to the saved list without going to the memory editor or leaving the offset calculator. This is great when working with multiple offsets for one base address.
(This is from Inotia 3. The offsets, item ID's, Attributes, etc. used here are real and can be verified by anyone who's interested except for the memory address which changes per device and if you didn't exit the game correctly. Similar pattern can be found in Inotia 4 and many GameVil, Com2Us, and other games.)
Let's say, I found out that the address [50EAFD33] held the value for an item's quantity. Using that as the base address, I can simply add/subtract a certain offset there to get the address for Item ID, Attributes etc. just like the example below:
*[50EAFD33] - 7 = [50EAFD2C] / ItemID
(62080 = Adventurer's Set | 54848 = Consecrated Warrior's Emblem | 51968 = Dice of Chaos)
*[50EAFD33] - 1 = [50EAFD32] / ItemEnhanceLevel
(8432 = +31 / it's F0 in hex, where the F part is the key)
*[50EAFD33] + 2BCD = [50EB2900] / Ether(Option)Value
The beauty of using offsets is that it saves yourself from doing doing a number of searches. Instead, you just have to add/subtract an offset. It's faster, more effective and more accurate since memory address may change but the offsets you need to use remains the same.
** [Minor issue] In the Memory Editor tab, when you select an address, the "Go to" button is still there where in you are already at the address you want to be so this should be removed or replaced by other menu/function.
** [2 issues here] By defeault, the memory address are separated/grouped by DWORD or offset of 4 (Please tell me the right term to use for this cause honestly I don't know)
I mean, it'll be like,
[Issue #1] Since address are grouped into DWORD's, users can't see WORD and BYTE's current values (unless enabled in Value format), so can you have an "auto-collapse" feature of the DWORD address. It'll be like this,
Let's say, after selecting an entry from search results which is [50BAFD37] then I use "Go to" and ...
- [50BAFD34] <D;W;B;>
- [50BAFD35] <B;>
- [50BAFD36] <W;B;>
- [50BAFD37] <D;>
Only the cluster that holds the address [50BAFD37] will collapse, the other will remain as they are.
Or a simpler solution is to enable WORD and BYTE in Value format by default.
[Issue #2] If what appears in the search result is either is a WORD or a BYTE, when you go to that address and try to change them, their current value will be shown as "0" even if that wasn't true as they have real values.
I also noticed that,
- Other data types are ok though and is showing their real values. It's only WORD and BYTE being weird.
- Sometimes WORD and BYTE data are showing their values correctly but it happens more often that they show "0"
- If you enabled WORD and BYTE in Value format, their values are being displayed correctly. "0" value appears only when address are group into DWORD.
** Add a feature in the memory editor will show only the Hex values of the the address but are arranged in rows and columns, instead of list sort order; it's similar to "View Memory" of GameKiller. The advantage of arranging Hex values in rows and columns is that it's easier to study the relationship between them. Also makes working with hex easier. There are games that can be deciphered easier this way such an Inotia and Zenonia series.
** Similar to above, add a feature that shows string values only which are arranged in rows and columns. Easier to work with compared to being shown in list.
** Add "Clear GG settings for this game" feature. Resets memory ranges, speedhack, history and other related settings for that game only. Does not affect stored settings of other games.
No need for us to mention this, but you sir is the best app developer. May you have an enjoyable holidays.