Translation List of English fantranslations and translation ports

masagrator

The patches guy
OP
Developer
Joined
Oct 14, 2018
Messages
6,472
Trophies
3
XP
12,457
Country
Poland
@joex11 So I have looked at Tomu, Yomoru for a brief moment. I was hoping they are using CMojiFont library like in some of other games published by NIS (it has a flag that allows setting variable width glyphs), but not this time.

Function responsible for rendering text in executable is at 0x25400. At X0 it provides pointer to struct that stores info about how text should be rendered, at X1 text to render in UTF-32.
X0+1428 stores float for how big space should be between lines. By default it's 20.
X0+1424 stores float about additional space between characters. By default it's set to -4 (so actually it makes them closer than they would be by default).

They are updated each frame by values stored at MAIN+0xA5A0 and 0xA5A4

Code:
.text:000000710000A5A0                 MOV             X8, #0xC0800000
.text:000000710000A5A4                 MOVK            X8, #0x41A0,LSL#48

0x41A00000 = 20
0xC0800000 = -4

So for example this is how it looks by default
2024060812063400.jpg
And this is how it looks with 10 and -8
2024060812161300.jpg

So I'm giving you here IPS patches.

YoruTomoruTextPatch.zip - already set it to 10 and -8,
YoruTomoruTextPatch2.zip - only space between lines is changed to 10

But you can adjust it to your needs with hex editor.
In IPS file stored in YoruTomoruTextPatch.zip at offset 0xA you have 8 bytes of instructions. You can use sites like https://armconverter.com/ to decode/encode instructions and https://gregstoll.com/~gregstoll/floattohex/ to convert floats to hex so you know what you should put instead of original number.

I guess -8 won't help because of how latin glyphs are not monospace, so some characters are using whole available space while other don't, which will result in overlap. So if I would be you I would either:
- try to replace glyphs rendered with some monospace font and make them slightly smaller than in original font, this way you could fit more characters in one line.
- In executable hook 0x25400 function and implement custom table for how wide is each ASCII character. But I guess this would be too much for you.
 

Attachments

  • YoruTomoruTextPatch.zip
    1,021 bytes · Views: 18
  • YoruTomoruTextPatch2.zip
    1,017 bytes · Views: 20
Last edited by masagrator,
  • Like
Reactions: PrincessLisette

joex11

Well-Known Member
Member
Joined
Dec 2, 2013
Messages
193
Trophies
1
Age
31
XP
269
Country
San Marino
@joex11 So I have looked at Tomu, Yomoru for a brief moment. I was hoping they are using CMojiFont library like in some of other games published by NIS (it has a flag that allows setting variable width glyphs), but not this time.

Function responsible for rendering text in executable is at 0x25400. At X0 it provides pointer to struct that stores info about how text should be rendered, at X1 text to render in UTF-32.
X0+1428 stores float for how big space should be between lines. By default it's 20.
X0+1424 stores float about additional space between characters. By default it's set to -4 (so actually it makes them closer than they would be by default).

They are updated each frame by values stored at MAIN+0xA5A0 and 0xA5A4

Code:
.text:000000710000A5A0                 MOV             X8, #0xC0800000
.text:000000710000A5A4                 MOVK            X8, #0x41A0,LSL#48

0x41A00000 = 20
0xC0800000 = -4

So for example this is how it looks by default
View attachment 441109
And this is how it looks with 10 and -8
View attachment 441110

So I'm giving you here IPS patches.

YoruTomoruTextPatch.zip - already set it to 10 and -8,
YoruTomoruTextPatch2.zip - only space between lines is changed to 10

But you can adjust it to your needs with hex editor.
In IPS file stored in YoruTomoruTextPatch.zip at offset 0xA you have 8 bytes of instructions. You can use sites like https://armconverter.com/ to decode/encode instructions and https://gregstoll.com/~gregstoll/floattohex/ to convert floats to hex so you know what you should put instead of original number.

I guess -8 won't help because of how latin glyphs are not monospace, so some characters are using whole available space while other don't, which will result in overlap. So if I would be you I would either:
- try to replace glyphs rendered with some monospace font and make them slightly smaller than in original font, this way you could fit more characters in one line.
- In executable hook 0x25400 function and implement custom table for how wide is each ASCII character. But I guess this would be too much for you.
Thanks a lot for these patches.
It looks a lot better with them too.
And yeah it didn't change the amount of characters rendered per line. That remains as the only issue to fix.
I did check the font file (font.bntx) but afaik it's image rendered (dds?) and even if I manage to replace it with a smaller font it won't be read correctly by the game...
Post automatically merged:

English text with the patch masagrator made:
Captura de tela 2024-06-07 134346.png


Without patch:

Captura de tela 2024-06-04 124415.png
 
  • Like
Reactions: testing123

joex11

Well-Known Member
Member
Joined
Dec 2, 2013
Messages
193
Trophies
1
Age
31
XP
269
Country
San Marino
best of luck with the Yoru, Tomosu patch @joex11! Seeing as NISA likely wont localise it officially at this point, its a perfect chance for fans to step in.
Thank you!
Yeah, I doubt they will bring this one to the west.
Unfortunately I had no luck in getting more characters to show than 113.
And if I move text to another scene it breaks BGs and voices, so...
Even with proper translation I doubt we would manage to make do with 113 characters.
Until I or someone else figures out a way, it's simply not doable.
 

masagrator

The patches guy
OP
Developer
Joined
Oct 14, 2018
Messages
6,472
Trophies
3
XP
12,457
Country
Poland
Until I or someone else figures out a way, it's simply not doable.
I have a question for you: do you plan to MTL whole game or will you actually translate it yourself?

Because this really makes a difference for me, when I will finish other stuff I can look at fixing those issues - but only if you won't use MTL. I am pretty sensitive to MTL, so I will ditch it as soon as I will feel it's not translated by humans.
 

joex11

Well-Known Member
Member
Joined
Dec 2, 2013
Messages
193
Trophies
1
Age
31
XP
269
Country
San Marino
I have a question for you: do you plan to MTL whole game or will you actually translate it yourself?

Because this really makes a difference for me, when I will finish other stuff I can look at fixing those issues - but only if you won't use MTL. I am pretty sensitive to MTL, so I will ditch it as soon as I will feel it's not translated by humans.
I intend to MTL the whole game. I can't translate JP at all...
But if someone else in interested in translating, I'd be super happy to help.
 

Ryab

Well-Known Member
Member
Joined
Aug 9, 2017
Messages
3,373
Trophies
1
XP
4,779
Country
United States
I intend to MTL the whole game. I can't translate JP at all...
But if someone else in interested in translating, I'd be super happy to help.
Just make extra sure to mark it as such. MTL is something people are VERY sensitive to.
 

Miftahul35

New Member
Newbie
Joined
Jan 2, 2024
Messages
2
Trophies
0
Age
22
XP
25
Country
Indonesia
Anyone know tools to translation konosuba kibou no meikyuu game?
Post automatically merged:

Anyone know tools to help translation for konosuba kibou no meikyuu game?

I tried shindatautil but it seems doesnt work
 

masagrator

The patches guy
OP
Developer
Joined
Oct 14, 2018
Messages
6,472
Trophies
3
XP
12,457
Country
Poland
Anyone know tools to translation konosuba kibou no meikyuu game?
Post automatically merged:

Anyone know tools to help translation for konosuba kibou no meikyuu game?

I tried shindatautil but it seems doesnt work
This is an RPG, so tools for VNs won't work.
 

megatyler

New Member
Newbie
Joined
Aug 3, 2024
Messages
3
Trophies
0
Age
27
XP
44
Country
United States
@masagrator I'd like to make a translation of Secret Game Killer Queen. I've already machine translated it and was able to insert the text back in, will be going through by hand to edit it though. Your tools are a huge help but I wanted to ask two things (1) do you have any idea to switch to half width fonts instead of full width? The english text when I use your scripts seems to use the font48.xtx font. and (2) this is more for trying to extend your code to other games with same engine but how did you figure out the command codes? I'd like to use the knowledge to translate other games on the same engine but there seem to be at least some command differences.
 

masagrator

The patches guy
OP
Developer
Joined
Oct 14, 2018
Messages
6,472
Trophies
3
XP
12,457
Country
Poland
Sorry, but since I'm part of translation group that wants to make real translation for Secret Game Killer Queen, I won't be helping in your venture. I can only say that 1/4 of game is fully translated. I have used my knowledge from this game to port translations for Dei Gratia no Rashinban, Saikoro Psycho and Menherafflesia, so you should know from those mods what to expect.

1722751739123.png

And made rule for myself years ago that I'm not helping with introducing new machine translations. Because since I will be investing in this project I will feel responsible for all wrongly translated sentences. Yes, I know Japanese good enough to catch mistakes in simple sentences, which is how I have figured out that translation mods for remake of Menherafflesia and Saikoro Psycho from the same author are machine translations (it was not written anywhere they are, so I have reported them and flagged on vndb, later author admitted that they were in fact MTL).

I can only say that it's impossible to figure out sizes of opcodes in Regista engine without disassembling executable. That's how I have figured out opcodes in all those games.
 
Last edited by masagrator,

megatyler

New Member
Newbie
Joined
Aug 3, 2024
Messages
3
Trophies
0
Age
27
XP
44
Country
United States
Sorry, but since I'm part of translation group that wants to make real translation for Secret Game Killer Queen, I won't be helping in your venture. I can only say that 1/4 of game is fully translated. I have used my knowledge from this game to port translations for Dei Gratia no Rashinban, Saikoro Psycho and Menherafflesia, so you should know from those mods what to expect.


And made rule for myself years ago that I'm not helping with introducing new machine translations. Because since I will be investing in this project I will feel responsible for all wrongly translated sentences. Yes, I know Japanese good enough to catch mistakes in simple sentences, which is how I have figured out that translation mods for remake of Menherafflesia and Saikoro Psycho from the same author are machine translations (it was not written anywhere they are, so I have reported them and flagged on vndb, later author admitted that they were in fact MTL).

I can only say that it's impossible to figure out sizes of opcodes in Regista engine without disassembling executable. That's how I have figured out opcodes in all those games.

Thanks for the answer! I did not realize there was a translation project in the works, that's awesome, let me know if I can do anything to help! In case a script to go from JSON to CSV and reinserting translations from CSV back to the JSON is helpful, I'd be happy to share that script. Machine translation in my case was due to being new to rom hacking (so wouldn't want to ask someone to commit not knowing whether I could handle the technical side) and not knowing Japanese myself. I will probably keep the machine translation to myself then to hold myself over while anticipating the hand translated release.

With regards to other games, I've switched this past week primarily to trying to figure out Myself; Yourself on PS2 which is using the same engine and seems to be fully forgotten. I've noticed for example that it calls 55 (or 45, one of the calls which your code assumes the next call is 01, don't have my computer in front of me to check) but with pretty much any call afterwards. It also calls some cases which SGKQ doesn't. If you could just try to walk me through one of the examples, I can probably pick things up from there. I'll focus on writing tools for other games in the same engine and making it available so they can be properly translated.
 

masagrator

The patches guy
OP
Developer
Joined
Oct 14, 2018
Messages
6,472
Trophies
3
XP
12,457
Country
Poland
In case a script to go from JSON to CSV and reinserting translations from CSV back to the JSON is helpful, I'd be happy to share that script.
We have already tools that automatically synchronize with texts stored in Google Sheets and parse them to scripts and compile in one go ;)

I won't help with assumptions since I know that even commands from the very beginning of array can have different structures between games (like opcode 4 in Saikoro Psycho vs Dei Gratia), so it's not worth explaining anything.

https://github.com/masagrator/Saiko...7b76186c121fd30822/sn/sn_assembler_re.py#L122
https://github.com/masagrator/DeiGr...d8e8d568f85c273be5/sn/sn_assembler_re.py#L149
 

megatyler

New Member
Newbie
Joined
Aug 3, 2024
Messages
3
Trophies
0
Age
27
XP
44
Country
United States
We have already tools that automatically synchronize with texts stored in Google Sheets and parse them to scripts and compile in one go ;)

I won't help with assumptions since I know that even commands from the very beginning of array can have different structures between games (like opcode 4 in Saikoro Psycho vs Dei Gratia), so it's not worth explaining anything.
Makes sense you'd already have something like that, just was throwing it out there just in case it was helpful.

I'm aware there are differences between the games. I'm asking for more details on the process you went through to figuring it out for any one example to aid my learning of the general steps to take, even though I know there will be of course be some differences everytime.

What I'm doing currently is going to PCSX2, finding the address that corresponds to the start of a line in sn.bin, setting a breakpoint for when it reads from that to identify the function. But, going from there, I'm somewhat lost. My idea was if I found the function then I should be able to find something mimicing different cases and function calls for each one, although it's not at all obvious I found anything like that.
 

masagrator

The patches guy
OP
Developer
Joined
Oct 14, 2018
Messages
6,472
Trophies
3
XP
12,457
Country
Poland
I have dropped porting translation of A Clockwork Leyline trilogy after finishing first game (Ushio route was not tested) because it was so boring I couldn't muster energy to continue.

I have uploaded files here in case if I will ever need to work with other VN using HuneX engine since I spend many hours on how to load script and textures without repacking archives. You can find also in Releases files I have managed to play game with. Read Installation point in readme. I am not planning to continue this project or do any fixes.

https://github.com/masagrator/ClockworkLeyline1/
 
  • Like
Reactions: mathew77

Ryab

Well-Known Member
Member
Joined
Aug 9, 2017
Messages
3,373
Trophies
1
XP
4,779
Country
United States
Sorry for the question but what is your method of locating Opcodes on LucaSystem? On PC you can just look through the executable in hex but how do you personally go about it on Switch?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: Probably just two unreleased songs we already heard +1