Genso Suikoden Translation help?

Hi guys

I try to translation Genso Suikoden but in screenshot 2 I put OK instead of Yes because I can only add two letters, Any help will appreciated.

A.png


B.png
 
The general process (maybe not always) is:

1.) Determine if the text is in VDP1 or VDP2 Ram. (For yabause use the viewer, for mednafen dump the ram and view in something like crystal tile 2).
2.) Determine a write trigger address for use in an emulator.
For vdp1: dump the command list and determine where the command to draw the text is located.
For vdp2: You probably want the address of the pattern table location that corresponds to the ‘O’ in OK
3.) Set up the appropriate write trigger just before your menu is displayed. If you are lucky it wont be periodically triggering due to other events going on in the preceding screen. Then reenter your menu, and the trigger should activate.
4.) The sh2 function you are in should probably be either at the same level or one or two down from the one responsible for printing the text. Start reverse engineering dynamically here. Alternatively save the state and load it up in ghidra and try there.
5.) Eventually youll find something that gets passed in the address of your text and a length to print. Adjust the length appropriately. Youll need to modify the asm instruction or a constant thats buried somewhere. Also make sure that increasing the source length of your text does not have unintended consequences (pointer tables, overrunning ram etc)
 
All the menu prompts and character names seem to be the "0" file ; for example Barbados is at 0x5FAC8
1727565310750.png


There are at least 2 glyph indexes , I've attached the index I worked out and if you add 7 to the offset of it you'll get the glyph index values for the 0 file.
1727565367447.png


It also has my rough ideas of what the control codes are. Ironically(?) I cant find the menus translated by @SegaXfans above. Probably need to search with the +7 offset values in the 0 file, or some other offset I haven't figured out yet
 

Attachments

Last edited:
Hi,

Small contribution. I explored this game a few years ago (2014) and started a (now dead) thread on romhacking.
If this can help for correction/comparison of malenko's table, here is the character tables I deduced in the past.
It may be incomplete.

That being said, if I recall well, I stopped there because I could not figure out where this damn text was hiding in the files...
It is probably compressed, but I may be wrong. It appears uncompressed in RAM, but similar byte patterns were not in datafiles.
I tried to get a localization in the files by tracing instructions... but failed, I probably lack some knowledge to do this properly (and tools evolved since 2014).

Good luck, and don't hesite to call me for help if you pass this threshold, I am a fan of this game series.
 

Attachments

Last edited:
Post the link to the HRDN post? I don't see an attachment on your post.

The first line of dialog in the game (when you talk to Theo) is at 0x16EDA0 in MURA_A1.bin ,
the string is:
DF 81 48 51 55 E8 10 05 00 0E 4C 6D 56 44 48 51 58 47 70 5E 4B E8 04 08 0E 01 E4 01

(I know this thanks to @Knight0fDragon ). This is the line I changed to 012345 as a bit of a proof of concept.
 
No worries, your values don't seem to match what I tested against using the first string in the dialog box, game must do some wacky stuff. 10 years is a long enough break, get crackin on this game and we'll do what we can to help 😉
 
If I remember well, I deduced those values as follows. I went to player name entry screen. I did memory dumps after adding each character. I analyzed differences. I found those values and replacing them by hand in memory was indeed updating the text with what I wanted.
 
If I remember well, I deduced those values as follows. I went to player name entry screen. I did memory dumps after adding each character. I analyzed differences. I found those values and replacing them by hand in memory was indeed updating the text with what I wanted.
I went to the first line in dialog and ran through all the values, so its likely its just using a different table. At a glace it looks like our glyphs are in the same order for the ones that are there. I might look at the name entry screen to square this away a little more for whomever decides to translate this game.
 
Another shout out to @Knight0fDragon ; he showed me that some files are "uncompressed" and have padded 2 byte values, like the start game screen. The menus are in NAME.BIN
1728092704439.png


1728092925273.png


Someone should reaaaalllly pick up this game (not it!)
 
I changed the Hiragana for English to EN and also changed accept to OK.
1728131038319.png


I think it makes it more obvious where the English letters are
1728131099663.png


"YES" has 2 spaces and "NO" has 3, so lets translate them backwards...
1728135882336.png


and then flip the pointer tables around:
1728151988040.png
 
Thanks Malenko for your work on this. I already know I have bit off more than I can chew but I have now successfully translated all characters with a picture. Basically everyone found in the 0 file.

My next step is to translate them on the stone tablet.

Happy to share the updated files, with anyone wanting to collaborate on this project.

Looking for some help in identifying pointers in other areas. I to have translated the NEW GAME and CONTINUE options but I have been unable to replicate your YES and NO. I can't find the pointer for these. Probably because I'm looking for something similar to the table found in the 0 file.

Any help or guidance on this please?

N.B attached a little video of the early work done. Think I'd only translated 7/8 characters by that point.
 

Attachments

  • Yaba Sanshiro 2 v1.9.3 2024-10-25 22-48-40.mp4
    47.5 MB
The Yes/No is in name.bin set breaks in the debugger if you want to try and avoid using something like ghidra.

Good luck!
 
The Yes/No is in name.bin set breaks in the debugger if you want to try and avoid using something like ghidra.

Good luck!
Excuse my absolute ignorance..... what do you mean by set breaks in the debugger? I was able to find the yes/no area in the name.bin (finally got byte search to run) but not the table to change them around to allow for the word yes as opposed to using OK since it is only two letters.

Again I appreciate the help.
 
Back
Top