(11-12-2022, 12:25 PM)Berylskid Wrote: How to enable CE (Cheat Engine) to handle 32-bit pointers in your virtual EE memory:
- Download latest emurpm.lua and emurpm.frm from CE's GitHub repository.
- Put them into your CE's autorun folder.
- Boot CE and open PCSX2's process from process list.
- Open "Emulator Memory" > "Set Base Address" from CE's toolbar.
- Enter [eemem] into the top left text box.
- Enter 0x02000000 into "Size of Memory".
- Click "(Re)Set address" (or press Enter key).
- Open your "Cheat Table Lua Script". (shortcut: Ctrl + Alt + L)
- 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!