Playstation pointers, an equivalent on Saturn ?

vbt

Staff member
From romhacking :


[FINDING TEXT POINTERS


For Japanese games it is important that Windows has the ability to display Japanese characters. ?????? should read in Japanese. If it looks like garbage, Japanese must be enabled under Regional and Language Settings in the Control Panel.


Pointers may be found in a file with the main text data. For Gundam GCentury, this is in the main PS-EXE file, SLPS_007.85. Open the file using MadEdit. Make sure the encoding, under the View menu, is set to SHIFT-JIS or another japanese encoding. Then browse the file for Japanese. SD Gundam GCentury has mobile suit names on line 000B23CO. Click on the first character and then look up to see the exact address. ?????? is on line 000B23CO, and is under column 4. Add these numbers together to achieve 000B23C4.

...

POINTER CALCULATION PROCEDURE


1. Find address in game file: 000B23C4

2. Find address in memory: 000B23C4

3. Find difference: C1BC4-B23C4=F800

4. Add difference to game file: B23C4+F800=C1BC4

5. Remove leading digit: 1BC4

6. Reverse last two bytes: C41B

7. C41B is the pointer address.


I don't plan to translate any game but is there something similar on Saturn ?
 
It varies from game to game. When I was working on Sentimental Graffiti, all the text was stored in a custom script format. The various script files were bundled together in a big package format documented on my site. In this care, the only math involved was multiplying the offset by the sector size to get which sector each file began at. They aligned each file within the package to begin at a new sector by padding with null characters. This, in turn, saved some load time.


So in the case of Sentimental Graffiti, it was a non-issue because the text was not in the EXE, but in a separate file which would be parsed and loaded to RAM.


Now, if your text was in the EXE itself, it would probably still depend on the size of pointers involved. If the pointers are 16-bit, they likely point within the actual area where the pointers themselves are stored. If you are moving up to 24-bit or 32-bit pointers, then yes, they may point to a direct RAM address. You may want to simply dump the RAM from Yabause, search for the sting, then figure out what math changes your pointer from what it is to where it actually goes.


These are all things you would handle when you write a text inserter/extractor anyway ...
 
Back
Top