I cannot remember the last time I made a tutorial...... This function will find a pointer and offset by loading whatever value you put into address 0x088007F8.

When you find an address that you think it's DMA, you can use the code instead of the hassle of using a program and making two ram dumps. This code will loop through the ram and look at each address to see if it is a pointer; til it finds an address with an offset less than 0x10000. (which I think most DMA's offset is a 16 bytes) Then it prints out the pointer and offset. Make sure you put the fake address of the DMA that you found in the value area of address 0x088007F8.

I'll be happy to answer any questions. (Did not realize how small the images were) This is very useful for coders on ps2 that's trying to find the dynamic address. This can be ported on to ps2 or to any game if you know MIPS. I coded this for the psp.

The label "::Offset_Byte_Check::" checks to see if the pointer you found has a digit ending either 0x0, 0x4, 0x8, or 0xc. Just to make sure it's a valid pointer. (My last code found pointers for example: 0x8d02381, 0x0890653, or 0x09f065d9 etc... odd numbers) That's why I added the checksum to keep going through the ram til it finds a valid pointer ending with an even number.

How to make a Function in Assembly to Find Dynamic Memory AddressHow to make a Function in Assembly to Find Dynamic Memory AddressHow to make a Function in Assembly to Find Dynamic Memory Address