[Feature Request]: Debugger - Search by previous value without initial value #12276
Labels
Enhancement / Feature Request
FR: Low Complexity
Good for a first time contribution!
FR: Medium Priority
The request can bring some quality of life to the average emulator user.
Description
I would like to request a “Comparative Filtering” option in the PCSX2 memory search tool using just the previous value, without having to input an initial value, similar to how BizHawk handles its RAM search. Specifically, this feature would allow us to continuously compare each address’s current value to its previous value and then filter by conditions such as “Equal,” “Not Equal,” “Less Than,” “Greater Than,” etc. The workflow would look like this:
1- Initial Search – You start by doing an initial scan with an unknown value.
2- Refine by Comparison – For each subsequent scan, compare the newly read values to their “previous” values from the last search.
3- Filter – Choose “Equal,” “Not Equal,” “Less Than,” “Greater Than,” etc., so the results get narrowed down to only those addresses that match your chosen condition.
This step-by-step approach makes iteratively hunting down unknown values much easier, this is how bizhawk works but Cheat Engine has a similar functionality.
Reason
This comparative filtering is essential for searches where the exact memory value is unknown, but we do know it should either increase, decrease, or remain unchanged from one search to the next. This may not sound important at first, but it opens a lot of doors for debugging games. It significantly simplifies and speeds up the process of finding variables such as health, timers, or counters, which often change predictably over time or in response to certain in-game actions. Without this feature, we have to rely on external tools like Cheat Engine for this type of incremental memory address discovery.
Examples
BizHawk RAM Search – As shown in the attached screenshot, BizHawk allows you to continuously refine the list of found addresses by selecting comparison operators (“Equal,” “Not Equal,” “Less Than,” “Greater Than,” etc.) for each new pass, always comparing the current value to the previously recorded one. This iterative approach is particularly effective for pinpointing unknown or dynamic values.
Cheat Engine – It also supports iterative scans using “Increased,” “Decreased,” “Changed,” or “Unchanged” to refine results when the actual numeric value is not known.
The idea is to make it easier to find memory addresses when we don't know what value they have.
The text was updated successfully, but these errors were encountered: