News:

11 March 2016 - Forum Rules

Main Menu

Help! Can't seem to find the pointer

Started by Romsstar, February 14, 2011, 01:15:19 PM

Previous topic - Next topic

Romsstar

Ok I tried to follow this guide http://www.romhacking.net/docs/%5B372%5DPlaystation.txt
to find the pointers in "Digimon World" PSX
Since all the Dialogue of the characters is stored in /SCN/DG(2).SCN I used a line there and noted the adress down. (Table File created before)

Now I navigated in the game to that particular scene, tried to save the memory and then opened the dumped binary in MadEdit to look for the the text.
I found it and noted down the memory adress.
Then I did as in the guide and subtracted the adresses, added again the game adress, left two bytes left and reversed the order.
Got a presumable pointer but when I tried to search for it, it was nowhere to be found.

I checked also that the text is saved in VRAM. The current and the next line are both saved in VRAM.

Is this helping at all?

Sorry I'm a noob when it comes down to things like this...

Could you tell me what I was doing wrong or what I'm supposed to do to figure out the pointers?

esperknight

This really should prob go with your other post but the easiest way to figure this out is depending on your emulator (I can't think of which ones do what off hand) you want to set a breakpoint on the write address in memory and then get to that piece of dialogue (set your breakpoint right before it or you may get a lot of useless hits).  Make sure when it breaks to check the register and make sure it matches up with the bytes that should be written there (your text).

From it should show where it's getting read from in memory or it could be read straight from the CD (should use a certain memory address to get it I believe... it's been a while :) ).  If it's a certain address, go to that address in memory and see if you can figure out the beginning of the line.  Then set a breakpoint on the beginning of it and restart getting to the dialogue.  Now when it breaks you should be close to see how either A) it loads the offset (memory address) it reads from or b) if it's hard coded.

If it's loaded into a register to address it try to scroll up the dissassembler window to see where the register gets written from.  And then basically do the same process of tracking down the memory reads till you get what you want (if it's not hard coded of course).

Course you could trace it then look for your RAM address in the trace and then work backwards using the file and the techniques above rather then the game itself.  I tend to prefer this as I can make notes in the dissassembly as I go along but up to you.