HomeForumsWhat's newResources 
 
 
Genso Suikoden Translation help?
SegaXfans - Sep 27, 2020
 SegaXfans Sep 27, 2020
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.




 Mr Conan Sep 28, 2020
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)

 Malenko Sep 28, 2024
All the menu prompts and character names seem to be the "0" file ; for example Barbados is at 0x5FAC8


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.


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

 benclaff Sep 29, 2024
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.

 Malenko Sep 29, 2024
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.

 benclaff Sep 29, 2024
@Malenko... . Oldest romhacking posts in the "personnal projects" section are from 2017.
So I suppose it got deleted (my files have a timestamp from 2014).

 Malenko Sep 29, 2024
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

 benclaff Oct 1, 2024
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.

 Malenko Oct 1, 2024

benclaff said:

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.

 Malenko Oct 4, 2024
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




Someone should reaaaalllly pick up this game (not it!)

 vbt Oct 5, 2024

Malenko said:

nice progress !

 Malenko Oct 5, 2024
I changed the Hiragana for English to EN and also changed accept to OK.


I think it makes it more obvious where the English letters are


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


and then flip the pointer tables around:

 Knight0fDragon Oct 7, 2024

Malenko said:

Ideally, we would want to default to English, just need to find the variable that determines the state for the characters.

 GunSlinginNinja Oct 29, 2024
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.

 Malenko Oct 29, 2024
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!

 GunSlinginNinja Oct 30, 2024

Malenko said:

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.

 GunSlinginNinja Oct 30, 2024

Malenko said:

Ended up following your Ghidra tutorial.......... absolute game changer!!

 SegaXfans Apr 15, 2025
Any news about translation ?