CameronRedmore / memory-deck

A Decky Loader plugin that allows scanning and editing of memory values.
GNU General Public License v3.0
37 stars 11 forks source link

Change multiple addresses at once #15

Closed 0xAF closed 1 year ago

0xAF commented 1 year ago

I'm trying to cheat Unepic. I have 3 addresses, which I try to manipulate. I think the game has some defense mechanism and if one address is changed, the player dies instantly. (I'm hoping it's not a checksum somewhere)

Suggestion: Make it possible to change the addresses in the plugin UI, but do not apply them. Add an "Apply" button, which will (preferably)

  1. freeze the app
  2. apply the changes to all addresses
  3. unfreeze the app (or in some other means, apply the change to all addresses at once)

Thanks for the great work on the plugin!

HeyItsWaters commented 1 year ago

@0xAF This is an interesting feature request, thanks for submitting it!

I'm a little hesitant to implement such a feature as-is, due to the specificity of the issue you are facing (not sure of the benefits vs effort it would take to add it).

There's actually a way to apply the memory modification to all search results through the command line version of the plugin. Based on your GitHub profile, I think you should be capable of trying this before we go any further.

Try SSH'ing into your SteamDeck while playing your game, and do this:

cd ~/homebrew/plugins/memory-deck/
python3 main.py
<enter the process ID of the game in question, press enter>
<enter the value you are wanting to modify, press enter>
<keep searching for the value until you have a small set of results, I recommend doing something in the game to modify the value you are searching for to make it easier to find>

<once you only have the values you want to change, run the following>
setNewValue 12345

You can run exit to exit, or reset to reset the plugin CLI. Let me know how this goes for you, I eagerly await your reply!

Thanks!

HeyItsWaters commented 1 year ago

@0xAF Actually, re-reading the code, it looks like it was actually changing all the search results at once anyways, which is kind of funny.

I'm updating the code to only change individual addresses instead, which might actually be a fix for your specific issue.

0xAF commented 1 year ago

@HeyItsWaters Thanks for the suggestions. After some researching about the game, it seems it has a defense mechanism, which is not that simple. I gave up cheating and I will play it as it is. ;)

Thanks for the hint for the console version of the plugin. It would be good to mention it in the readme somewhere (I guess), so the advanced users could do some more stuff with the plugin.

I'm too busy to do some gaming and some testing right now, but I will checkout the console version of the plugin and I will come back with more suggestions or some PR (eventually).

I believe you're right about the effort vs benefit. So I would suggest to close this issue, unless you believe it should be discussed further.

Thanks for the great job on the plugin again. Cheers!

HeyItsWaters commented 1 year ago

Sounds good, I'll go ahead and close this one but we can re-open if needed.

Yeah I have issue #9 to actually document more stuff.