PCSX2 1.7+ Cheat Engine Script Compatibility
#21
(11-12-2022, 12:25 PM)Berylskid Wrote: How to enable CE (Cheat Engine) to handle 32-bit pointers in your virtual EE memory:
  1. Download latest emurpm.lua and emurpm.frm from CE's GitHub repository.
  2. Put them into your CE's autorun folder.
  3. Boot CE and open PCSX2's process from process list.
  4. Open "Emulator Memory" > "Set Base Address" from CE's toolbar.
  5. Enter [eemem] into the top left text box.
  6. Enter 0x02000000 into "Size of Memory".
  7. Click "(Re)Set address" (or press Enter key).
  8. Open your "Cheat Table Lua Script". (shortcut: Ctrl + Alt + L)
  9. Enter following lua script and execute it.
    Code:
    setPointerSize(4)
    setAssemberMode(0)

Trouble shootings:
  • If (7.) returns an error, you may be using a 32-bit version of CE. Try to use the 64-bit version of CE.
  • For PCSX2 1.6, the text to be entered in (5.) must be changed to [pcsx2.eemem].
  • Absolute addresses for older PCSX2 (greater than 20000000) must be converted. See below guide.
    • Press "Ctrl + A"
    • Press "Ctrl + X"
    • Press "Ctrl + V"
    • Enter "-20000000" into the "Adjust address by:"
    • Press Enter key

Let me know if you have any other issues.
Have a good day.

Me and the Sly Cooper modding community have been trying to get this method working to no avail.  After setting everything up like above, searching anything in Cheat Engine either gives zero results instantly or gives a lot of results with the value "???".  We've tried everything we can think of but it just doesn't work.  Any idea what could be going on?
Reply

Sponsored links

#22
(11-16-2022, 12:19 AM)goody_fyre11 Wrote: After setting everything up like above, searching anything in Cheat Engine either gives zero results instantly or gives a lot of results with the value "???".  We've tried everything we can think of but it just doesn't work.  Any idea what could be going on?

Sorry to hear that... At the moment, I've not seen that kind of issue, but I have an idea.

Go to "Scan Settings" in CE setting window and check those following items:
  • "MEM_MAPPED": If it's unchecked, emurpm will fail determining [eemem].
  • "MEM_PRIVATE": If it's unchecked, the search will be disabled.
Then reboot CE.
Reply
#23
The entire community has had these settings enabled by default since forever, we did this back when Cheat Engine wasn't compatible with RPCS3. emurpm does properly identify [eemem] but still does this regardless. Talented Sly modders have investigated and have not found the cause. I should also mention that Step 9 doesn't work at all, Cheat Engine gives an "undefined LUA error" when trying to run it. Yes, we are using the 64-bit version of Cheat Engine.

Here's a question - are you using the wx builds of 1.7 or the qt builds? We're using qt, so perhaps the incompatibility is there?
Reply
#24
(11-18-2022, 09:46 AM)goody_fyre11 Wrote: The entire community has had these settings enabled by default since forever, we did this back when Cheat Engine wasn't compatible with RPCS3.  emurpm does properly identify [eemem] but still does this regardless.  Talented Sly modders have investigated and have not found the cause.  I should also mention that Step 9 doesn't work at all, Cheat Engine gives an "undefined LUA error" when trying to run it.  Yes, we are using the 64-bit version of Cheat Engine.

Here's a question - are you using the wx builds of 1.7 or the qt builds?  We're using qt, so perhaps the incompatibility is there?
I'm using 1.7 qt too (AVX2 Qt)

Arrgh, I'm so sorry for my fault... I found I did a typo in that lua script (missing "l" for "setAssemblerMode")
Here's proper script:
Code:
setPointerSize(4)
setAssemblerMode(0)
Reply
#25
Unfortunately this still doesn't work, I no longer get the undefined LUA error, but search results are still garbled, incomplete messes with most results being a value of "???". Screenshot:

https://imgur.com/a/ESZhSny

Something else I should add is that putting [eemem] into pointers also does nothing with this tutorial, always giving a new address of "????????".

Could you screen record yourself doing this with the latest version of PCSX2 1.7 and Cheat Engine? I have a feeling this is something stupidly simple. I suspect that "Size of Memory" is the issue, and the latest version of emurpm.lua and emurpm.frm don't accept 0x02000000 as an input value.
Reply
#26
It has been figured out! A talented Sly modder figured out that the emurpm.lua and emurpm.frm files had lots of typos and incorrect lines, fixing them completely resolved the issue, here's a fixed copy of those you won't find anywhere else:

https://drive.google.com/file/d/10x7XA3F...share_link

These are open-source Cheat Engine files before anyone questions why I'd dare put a download link in these forums, these just have typos and mistakes fixed.
Reply
#27
(11-19-2022, 03:28 AM)goody_fyre11 Wrote: It has been figured out!  A talented Sly modder figured out that the emurpm.lua and emurpm.frm files had lots of typos and incorrect lines, fixing them completely resolved the issue, here's a fixed copy of those you won't find anywhere else:
https://drive.google.com/file/d/10x7XA3F...share_link
These are open-source Cheat Engine files before anyone questions why I'd dare put a download link in these forums, these just have typos and mistakes fixed.

I finally got around to testing out your files and trying this method. It works like a charm. Thank you so much.
Reply
#28
(11-12-2022, 12:25 PM)Berylskid Wrote: How to enable CE (Cheat Engine) to handle 32-bit pointers in your virtual EE memory:
  1. Download latest emurpm.lua and emurpm.frm from CE's GitHub repository.
  2. Put them into your CE's autorun folder.
  3. Boot CE and open PCSX2's process from process list.
  4. Open "Emulator Memory" > "Set Base Address" from CE's toolbar.
  5. Enter [eemem] into the top left text box.
  6. Enter 0x02000000 into "Size of Memory".
  7. Click "(Re)Set address" (or press Enter key).
  8. Open your "Cheat Table Lua Script". (shortcut: Ctrl + Alt + L)
  9. Enter following lua script and execute it.
    Code:
    setPointerSize(4)
    setAssemblerMode(0)

Trouble shootings:
  • If (7.) returns an error, you may be using a 32-bit version of CE. Try to use the 64-bit version of CE.
  • For PCSX2 1.6, the text to be entered in (5.) must be changed to [pcsx2.eemem].
  • Absolute addresses for older PCSX2 (greater than 20000000) must be converted. See below guide.
    • Press "Ctrl + A"
    • Press "Ctrl + X"
    • Press "Ctrl + V"
    • Enter "-20000000" into the "Adjust address by:"
    • Press Enter key

Let me know if you have any other issues.
Have a good day.

I finally got around to testing out the newest Nightly builds of PCSX2 (QT and widget) and I followed this method to convert my old .CT tables to the newer version.

This works like a charm! Thanks to @goody_fyre11 for his fabulous link with corrected versions of emurpm.lua and emurpm.frm which apparently fixed the issue and allowed this method to work.

So now, after the "Adjust address by" -20000000 conversion process, my PCSX2 codes now start with 0xxxxxxx to work on the newer builds through this method instead of 2xxxxxxx like before.

Just a couple notes and questions about this. To be clear, this process needs to be done every time we start Cheat Engine in order to get this to work? (So Emulator Memory > Set Base Address > [eemem] > Size of memory > Re-Set address each time we start Cheat Engine) I just want to make sure that there's no way to set cheat engine up somehow to have all this occur automatically every time we start up cheat engine. I'm guessing there isn't, but I just wanted to make sure.

Is there a way to at least have [eemem] and the size "0x02000000" come up automatically as defaults so we don't have to copy and paste that in there each time? Is there some way to change this default information for the Set Base Address window somewhere in cheat engine settings?

Another thing I noticed is that steps 8 and 9 don't seem to be required for me to get this to work. So it does not appear that I have to go into Ctrl + Alt + L and put in 

"setPointerSize(4)
setAssemblerMode(0)"

to get this to work. I did that the first time, in following your instructions, but I've found that all I need to do it seems is follow steps 1-7 each time I start up and once I hit "(Re)Set address" with my imported, adjusted .CT tables with PCSX2 running the codes work.

So I just wanted to let you know that I don't think steps 8 and 9 are needed, at least not for me. If those steps are required for some people, then I don't know why.

Thank you both for figuring all this out to make it easy to convert old PCSX2 .CT tables to work with the newest versions of PCSX2 in a simple and straight forward manner. Without having to use autohotkey or any of that jazz. It's absolutely fantastic that now I can finally use the newest PCSX2s with my old codes through this method!
Reply
#29
I have no idea what this part is for:

"setPointerSize(4)
setAssemblerMode(0)"

It's not required. The fixed version has [eemem] and 0x020000000 preset as that's the 1.7 settings. Also it might be possible to make it automatically apply these settings, but some people might not use Cheat Engine for PCSX2 exclusively.
Reply
#30
(12-18-2022, 12:03 AM)goody_fyre11 Wrote: I have no idea what this part is for:

"setPointerSize(4)
setAssemblerMode(0)"

It's not required.  The fixed version has [eemem] and 0x020000000 preset as that's the 1.7 settings.  Also it might be possible to make it automatically apply these settings, but some people might not use Cheat Engine for PCSX2 exclusively.

What do you mean the fixed one? Are there updated versions of emurpm.lua and emurpm.frm since the one you posted? I don't know how to make [eemem] and 0x020000000 as a preset. For me it's still something different by default and I have to change it to [eemem] and 0x020000000 each time.

If you know how to make it automatically apply these settings every time you start CE, that would be helpful, for me at least, as I use a "portable" version of Cheat Engine 7.2. (directly from the official CE website, able to run in a self contained folder, without the need to run setup/install) I found a portable version of CE 7.4 as well on the official site but that one is password protected and I don't know the password. Since I'm running a "portable" version, I could set this local CE 7.2 version to work with PCSX2 1.7+ and have everything load properly, then install the normal Cheat Engine or another portable version for everything else.

Also maybe there's a way (through a local "portable" CE folder) to make it so we wouldn't need to convert all our PCSX2 1.6 codes from 2xxxxxxx to 0xxxxxxx. I mean we already got it to 0xxxxxxx, shouldn't there be a way now to make a dedicated cheat engine for PCSX2 1.7, to load everything at start and read all the 2xxxxxxx code sproperly without the need to convert them to 0xxxxxxx?
Reply




Users browsing this thread: 3 Guest(s)