 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
pacoca_1 How do I cheat?
Reputation: 0
Joined: 20 Oct 2023 Posts: 2
|
Posted: Fri Oct 20, 2023 11:18 pm Post subject: Can someone help me with pointers on PCSX2? |
|
|
First things first, I know nothing when it comes to Cheat Engine. Until yesterday I only knew how to search in 4 bytes and change value.
That being said, I was messing arround with some PCSX2 codes to Digimon World 4, and decided to try and mess arround with Cheat Engine to see if I could find some more options to edit the game, seeing as the PCSX2 codes are quite limited.
So, I started messing with some things, watched some videos, read some tutorial, and eventually hit a massive brickwall: pointers.
I was able to find the address and change value for the current hp of the digimon and for the hp that is shown on the hud. I was playing with Agumon, which has a total hp of 180, if I freeze the current hp value as is, or set to something higher, every time I take damage the hp that is shown on the hud flickers back and forth between the set value and the value minus the damage taken. If I freeze both the current hp and hp hud value, the numbers will stay unchanged in the hud.
The problem begins when I tried to find/set pointers. It's really annoying to scan for values and addresess every time you open the game, so I watched and read some things to try and figure out a way to skip this step of the proccess, thats when I found out about pointers and how they work. So, I tried the "generate pointer map" method, found the hp address, created the pointer map, closed and opened the game, found the hp address again, created anothe pointer map, and used the pointer scan function, using the two map achives and adresses from before, but the pointer scan came back blank. I tried doing this method again, redoing the same steps a bunch of times, but every time the scan came back blank.
So I gave up and decided to try another method, adding the pointer manually. For this method I found the hp address, then I right-clicked that address and used the "find out what write/access this address", and here I hit another massive brickwall. With the debug window open, I took some damage to change the hp value and got some results back. The problem is, most of the things I watched/read, the result is always something like pointer of value "x" with offset "y", like [rsi + 18], and from this point the tutorials would say to repeat the process to get the base value of the .exe of the game. But the results i get from the "find out what..." function are completely different, and I don't know where to go from here.
[img]Captura de Tela (9).png[/img]
The thing tha confuses me the most is the [rbp+rcx+00], I just don't know what to do with this. The address for the hp that I am using is 142FD95011C. The extra window tells me tha the probable value for the pointer is 142FD0D0000, which is the same value as the rbp. The value of the rcx is 0088011C, which I suppose is the offset that I need. So what the tutorial that i saw tell me to do now is scan for a new address using the probable value of the pointer. So I do a scan in hex 8 bytes with the rbp number 142FD0D0000, and got what seems to be the address for the base value of the game/emulator.
[img]Captura de Tela (11).png[/img]
So, in the address list it appears like "address 7FF749D68D90 type 8 bytes value 00000142FD0D0000", and when I double-click the address it shows on the window that the address is "pcsx2-qt.exe"+31A8D90=142FD0D0000. I have no idea what any of this means. Not knowing what to do now, I tried to create a pointer with the addresses and values i had. So i clicked the "add address manually" button and checked the pointer box. On the pointer box I put "pcsx2-qt.exe"+31A8D90, on the offset box I put 0088011C, and when I clicked OK it created a working pointer, which made me really happy.
[img]Captura de Tela (12).png[/img]
But when I close and open the game/emulator, it changes the rbp and the rcx, which breaks the pointer. The base address stays the same. I tried creating new pointers, adding offsets, starting the whole table from scratch multiple times, but nothing seems to work. I really don't know what to do.
Well, that's it. I'm sorry if there are some misspelling/grammar errors, english is not my first language. If someone read all this, thank you, really.
If anyone has an ideai that could help, it would be much appreciated.
p.s.: This is the first time I'm posting in a forum, so I'm not quite sure how to put prints in the posts. So if there are no imgs here, I'm sorry.
| Description: |
|
| Filesize: |
306.55 KB |
| Viewed: |
5508 Time(s) |

|
| Description: |
|
| Filesize: |
387.08 KB |
| Viewed: |
5508 Time(s) |

|
| Description: |
|
| Filesize: |
292.19 KB |
| Viewed: |
5508 Time(s) |

|
|
|
| Back to top |
|
 |
ParkourPenguin I post too much
Reputation: 152
Joined: 06 Jul 2014 Posts: 4707
|
Posted: Sat Oct 21, 2023 12:04 am Post subject: |
|
|
Related topic:
https://forum.cheatengine.org/viewtopic.php?t=621553
The PS2 has 32 MB of RAM, so the max offset would be 33554431. That max offset is a little ridiculous, so keep the max level low- i.e. 2 or 3.
This may not even work depending on whether or not the game uses pointers and how well the emulator emulates the original architecture. e.g. big endian pointers to randomly allocated memory in an emulated architecture mean nothing to the x64 architecture CE sees.
In spite of having little knowledge or experience, you did pretty much everything correctly in those images.
The pointer value 142FD0D0000 changing is expected. The offset 88011C changing is not.
My first guess would be what I alluded to previously: that value isn't static in the emulated architecture. There's probably some other value that acts as an offset of sorts within the emulated architecture that indirectly points to the value you want to find.
Based on "Captura de Tela (11).png", it seems like the emulator doesn't do anything too weird like big endian values. Instead of the static address, try the address in roughly the same memory region as the value: i.e. 142F88F5C90. Keep going until you find a static address that works.
This video on step 8 might help. It shows both the pointer scanner and manual methods for multilevel pointers:
https://www.youtube.com/watch?v=3dyIrcx8Z8g
Again, you could try the pointer scanner, but with such a high max offset, I don't know how practical that would be.
If nothing works (not even the pointer scanner), this is probably beyond your ability.
_________________
I don't know where I'm going, but I'll figure it out when I get there. |
|
| Back to top |
|
 |
pacoca_1 How do I cheat?
Reputation: 0
Joined: 20 Oct 2023 Posts: 2
|
Posted: Sat Oct 21, 2023 9:08 am Post subject: |
|
|
Thank you for taking the time to read and answer my post. I'm sorry for the delay in my answer, I went to sleep right after I made the post.
I think I understand what you're saying, but anyway, I will take some time and read/watch the links you posted to see if I can at least try to understand what's happening with this emulator/game.
I will try the "generate pointer map" method again today, and take prints of the steps to post here later, just to have everything properly documented.
Also, I forgot to say this on my last post, but I found another topic here about Digimon World 4 on PCSX2, it's this one:
https: // forum . cheatengine . org / viewtopic.php?p=5685203
I had to break down the url because the forum said I couldn't post urls yet.
The person who posted was having trouble finding the address/value for the exp. The person that helped the poster was able to find a bunch of offsets for the health address, and posted a list with everything properly named. The problem is I don't have any idea on how to use these addresses.
Thanks again for taking the time to read and answer my posts.
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|