| Home | Forums | What's new | Resources | |
| 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. | |||
| 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 | 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 | |||
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 | |||
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 | |||
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 | |||
Ended up following your Ghidra tutorial.......... absolute game changer!! | ||||
| SegaXfans | Apr 15, 2025 | ||
| Any news about translation ? | |||
| Malenko | Dec 26, 2025 | |||
Someone else was asking about this game and I checked my notes and you were right, your values were correct, I fat fingered my sheet. I also made an "ASCII compliant" font sheet (JIJI.BIN) and added lower case, attached. it does not like the ! and displays it as a ( EDIT: attached the updated glyph table JIJI.BIN now looks like this: | ||||
| Knight0fDragon | Dec 26, 2025 | ||
| so the routine is a bit weird, but VWF is doable 060230d6 is where the width is pulled in. this grabs a word from 002d682c that is the size. Then there is a check at 060230de to see if the size is 12, and if it is, do the correct routine what you can do is patch at 060230e4 to change r1 to the desired widthyou can change 060230da to be extu.w r1,r0, giving you 060230dc to be a free word (which I change to e108). #slooks like this is a global width for the text. This still needs to be traced to see where it actually applies. 060232e2 reads a long from 060ffab8 into r13 and adds it to R1.This is probably where you want to do the VFW, with R13 being width << 16 r11 is the position of the character, r7 is the line numberr8 is the character address that will be read (read as word) so 060232e2 needs to be replaced, basically a new sub that you pass in R8, read as word, figure out the width of that read, perform read <<= 16, return as r13 06023376 is a free word; at 0602324c, do a mov #e8,r2 and change 0602324e to be extu.b r2,r2 instead. This frees up 0602336e, which we can fill with 1b9c. We have 06023334 point to do a word read at 0602336e, and we now have a long freed up at 06023374 to slap an address into | |||