Translation Rom hackers/Editors needed for luminous arc 3 translation

Status
Not open for further replies.

The Minecrafter

Well-Known Member
OP
Member
Joined
Dec 13, 2011
Messages
195
Trophies
1
XP
1,665
Country
United States
At this point, I'm of the mindset of "translate first, figure out how to import later." I think I have enough skills to import theme back in, though I would want assistance when it came to that.

If anyone wants me to set up a discord server, let me know, and I'll create one for the purposes of organizing translation efforts.
 

LuminousCat

Active Member
Newcomer
Joined
Mar 12, 2019
Messages
32
Trophies
0
Website
www.youtube.com
XP
1,748
Country
Poland
At this point, I'm of the mindset of "translate first, figure out how to import later." I think I have enough skills to import theme back in, though I would want assistance when it came to that.
Yes, I've read in this thread before that this is your approach, but I think it might be incorrect for the reasons I mentioned:
  1. After finishing and polishing the translation it might turn out that it's to big to fit in the dialogue boxes and it has to be completely edited again. If that's the case, then it would be better to make the translation as short as possible from the start. Here are the quotes from the original translation thread that make me think so:
    Yukiwa-kun said:
    Pointer can be used to modify space but the total must still be same. Let's say that you have 5 spaces in first box and 5 in the second. You can change first to 4 and second to six but you can't increase the total to 11.
    From checking the file of LA2 english version and japanese version, ATLUS didn't increase the text spaces either. Also, they DID shorten BGMs. eg. The Dark Wing, Hugging to Freeze -> Embracing Darkness
  2. If we overcome this problem, then it will surely help in promoting the project (for example in form of youtube videos) and make more people contribute / root for it.

If anyone wants me to set up a discord server, let me know, and I'll create one for the purposes of organizing translation efforts.
Please do so. It might be a little empty at first, but I promise I'll be the most active member ; )


Meanwhile, you can watch new videos with my best-effort translation... ; )
Chapter 10 part 1:

Chapter 10 part 2:

Sion Bath Event 1:

Glen Intermission 4:

Sarah Intermission 2:

Dino Intermission 1:

Elisa Intermission 1:

Side Quest 2 (Rose Guardian):

Chapter 11 part 1:

Chapter 11 part 2:

Eruru Bath Event 2:

Faculty Room Event 1 (Myuu):

Yuu Intermission 2:

Sion Intermission 2:

Heine Intermission 3A:

Heine Intermission 3:

Librarian Gill Intermission 2:

Chapter 12 part 1:

Chapter 12 part 2:

Ashley Bath Event 2:
 
Last edited by LuminousCat,

LuminousCat

Active Member
Newcomer
Joined
Mar 12, 2019
Messages
32
Trophies
0
Website
www.youtube.com
XP
1,748
Country
Poland
cDnKEZq.png


Can anyone help with extracting the images from rom files in a graphical form? I tried to do it with Tinke, but I can't get the parameters right to be able to see them. Getting this font file would be especially useful:
UDKdKz1.png


It's a similar issue like in this thread: https://gbatemp.net/threads/editing-sprites-in-nds-rom-with-bin-files.558987/
 

plasturion

temporary hermit
Member
Joined
Aug 17, 2012
Messages
1,219
Trophies
2
Location
Tree
XP
3,514
Country
Poland
In Tinke you can get the font with these parameters, also to extract half of the font data please set height parameter to 57216 (because all data is 915456 * 2 / 16 (filesize * pixelperbyte/ pixelsperrow))
I had limits to extract all the data, so i'm not sure if importing will be problem here, maybe you can use Tile Molester instead (2 columns, 4bpp reversed) and apply changes partialy.
font.png
 
Last edited by plasturion,

plasturion

temporary hermit
Member
Joined
Aug 17, 2012
Messages
1,219
Trophies
2
Location
Tree
XP
3,514
Country
Poland
Well, It is possible too. However most of them are LZE compressed. here's compressors pack as
you probably know them. So .plb is the uncompressed file we open first in tinke as a palette.
Then we extract corresponding compressed files .imb and .scb., decompress them and replace in
Tinke again.
So we can open now:
-.imb as a tile,
-.scb as a map
...and I guess from now you can reverse all the process again.
However extracting map image, editing and importing again will make .imb much larger and
therefore it may be serious problem for hardware memory. So if you can find a way to import .scb
image where .imb size will not incrase, then you are at home. Otherway I suggest edit only .imb
(tileset), or maybe there are better tools for tiles and map files.(in example grit)

About parameters, it's really just try to guess matter. if palette is 16 colors then we suppose to set 4bpp, if 256 then 8bpp, next is horizontal or linear parameter, only two ways(experimetnal), and next you set width depending on type of image it may be any multiplicity of number 8. In the map file i set offset(the begining of image) to 16 and now it shows Image correctly. (start from low to high vaules, so after second try you can get complete image)
tile.jpg
16offset.png
 
Last edited by plasturion,
  • Like
Reactions: LuminousCat

DrYoshi

Well-Known Member
Newcomer
Joined
May 1, 2019
Messages
82
Trophies
0
Age
27
XP
477
Country
United States
Hopefully this isn't too off topic but any plans in the far future to attempt to translate luminous arc infinity for the ps vita after this project is done? Also Best of Luck to you Guys.
 

LuminousCat

Active Member
Newcomer
Joined
Mar 12, 2019
Messages
32
Trophies
0
Website
www.youtube.com
XP
1,748
Country
Poland
@plasturion Thank you again! I'm completely new to rom modding, so your descriptions help a lot.

@DrYoshi I don't know about others, but I was thinking about it and I'm not very convinced, because: 1. finishing my LA3 translation will probably take me at least a year more, considering the amount of free time I have and that I write down and try to learn every new romaji word I encounter. 2. Infinity was not developed by Imageepoch, but by a different studio, so it seems more like a non-canonical spinoff to me and reviews I've heard/read are pretty bad, compared to the rest of the series.


Anyway, for the last couple days I was focusing on ways to put the translated script back into the game and to my surprise I was able to get better results than I initially expected (considering how noobish I am).
I cross-analyzed partially translated rom by Yuukiwa-kun and Luminous Arc 2 and it seems that LA2 uses pretty straightforward method - every latin letter is represented by a standalone address referencing the font file. For example:
88 C0 -> A
88 C1 -> B
88 C2 -> C
It seems pretty logical, but the game mechanic had to be modified for it to work that way and if you use font file from LA2 in LA3, you encounter a problem of a single letter taking double space (which is visible on the picture I posted above) and possibly taking too much space in the rom in the end. That's why LA3 mechanic (and the script layout) would have to be modified in similar way as in LA2, but that's impossible with my "skills".
Yuukiwa-kun in his partially modified rom used another approach, which was redrawing fonts and using character pairs, for example:
88 8C -> Le
88 8D -> vi
88 8E -> Gl
88 8F -> en
This allows to save space, but requires putting all combinations of small/big letters, punctuation marks and maybe more (possibly numbers) in the font file. Since there are 26 letters in the English alphabet, the number of lowercase character pairs would be 26*26= 676.
When you add uppercase, space and ,.?! you end up with 57 signs -> 57*57= 3249 combinations.
It seems to me that Yuukiwa-kun was redrawing those pairs he needed manually without any order. He ended up with around 1000 character pairs in the last publicly available rom, which is insanely many, but still not enough. Maybe that's one of the reasons he eventually gave up with translation.
Anyway, to follow his approach in orderly manner, someone would have to write a script which would generate an image file with all possible two-signs combinations, looking like this:
unknown.png

Then, another program would be required to encode English translated script into addresses of those character pairs and possibly keep the length of script file the same (by adding some white space padding). It would also have to modify the pointers at the beggining of each script file so that they point at the new starts/ends of translated-encoded messages.
It's all doable, but to me seems like a major pain in the ass and I don't know what other issues might arise after achieving it. That's why I will give up on this for now and rather continue with my translation. I can provide anyone who would want to deal with this with all the details I currently know.
 
  • Like
Reactions: plasturion

plasturion

temporary hermit
Member
Joined
Aug 17, 2012
Messages
1,219
Trophies
2
Location
Tree
XP
3,514
Country
Poland
I appretiate the idea for text packing (to display two times more letters in single line) but isn't better just display text in 8x16 instead of 16x16, less work involved and i guess doable. How about current work of Minecrafter, maybe he did it already?
 

DrYoshi

Well-Known Member
Newcomer
Joined
May 1, 2019
Messages
82
Trophies
0
Age
27
XP
477
Country
United States
@plasturion Thank you again! I'm completely new to rom modding, so your descriptions help a lot.

@DrYoshi I don't know about others, but I was thinking about it and I'm not very convinced, because: 1. finishing my LA3 translation will probably take me at least a year more, considering the amount of free time I have and that I write down and try to learn every new romaji word I encounter. 2. Infinity was not developed by Imageepoch, but by a different studio, so it seems more like a non-canonical spinoff to me and reviews I've heard/read are pretty bad, compared to the rest of the series.


Anyway, for the last couple days I was focusing on ways to put the translated script back into the game and to my surprise I was able to get better results than I initially expected (considering how noobish I am).
I cross-analyzed partially translated rom by Yuukiwa-kun and Luminous Arc 2 and it seems that LA2 uses pretty straightforward method - every latin letter is represented by a standalone address referencing the font file. For example:
88 C0 -> A
88 C1 -> B
88 C2 -> C
It seems pretty logical, but the game mechanic had to be modified for it to work that way and if you use font file from LA2 in LA3, you encounter a problem of a single letter taking double space (which is visible on the picture I posted above) and possibly taking too much space in the rom in the end. That's why LA3 mechanic (and the script layout) would have to be modified in similar way as in LA2, but that's impossible with my "skills".
Yuukiwa-kun in his partially modified rom used another approach, which was redrawing fonts and using character pairs, for example:
88 8C -> Le
88 8D -> vi
88 8E -> Gl
88 8F -> en
This allows to save space, but requires putting all combinations of small/big letters, punctuation marks and maybe more (possibly numbers) in the font file. Since there are 26 letters in the English alphabet, the number of lowercase character pairs would be 26*26= 676.
When you add uppercase, space and ,.?! you end up with 57 signs -> 57*57= 3249 combinations.
It seems to me that Yuukiwa-kun was redrawing those pairs he needed manually without any order. He ended up with around 1000 character pairs in the last publicly available rom, which is insanely many, but still not enough. Maybe that's one of the reasons he eventually gave up with translation.
Anyway, to follow his approach in orderly manner, someone would have to write a script which would generate an image file with all possible two-signs combinations, looking like this:
unknown.png

Then, another program would be required to encode English translated script into addresses of those character pairs and possibly keep the length of script file the same (by adding some white space padding). It would also have to modify the pointers at the beggining of each script file so that they point at the new starts/ends of translated-encoded messages.
It's all doable, but to me seems like a major pain in the ass and I don't know what other issues might arise after achieving it. That's why I will give up on this for now and rather continue with my translation. I can provide anyone who would want to deal with this with all the details I currently know.
It''s perfectly OK. I wish you great luck and all the best on your projects.
 

AlbertMorden

New Member
Newbie
Joined
Feb 11, 2020
Messages
2
Trophies
0
Age
28
XP
56
Country
United States
I've never participated in something like this before. Am I good to just keep editing the google doc with translation suggestions, or is there something more impactful/useful I should do on discord or something?
 

plasturion

temporary hermit
Member
Joined
Aug 17, 2012
Messages
1,219
Trophies
2
Location
Tree
XP
3,514
Country
Poland
textbox.png

I made some simple analyse in script files, it seem that text can be stored in single byte, the four * characters are random ascii characters that replaced two Shift-JIS. Maybe there's chartable in game that allow to map ascii characters. Some of them are used as a control codes so im not sure. And it's constatnt 10 pixels font display, It's good if someone could manage do display 6 or 5 pixels wide.
Talking about option with generating 2-character pairs... quite challanging problem to me, just for now i made a simple program that allow me to extract font to the array 16x16 display and identy font item, so i can operate here easier, control changes and pack data back. But maybe someone feel more confident and do it faster than me so I can leave this work to someone else.
Code:
----- 688 -----
        
        
        
  ##    
 #  #   
    #   
  ###   
 #  #   
 #  #   
  ###   
        
        
        
        
        
        
----- 689 -----
        
 #      
 #      
 ###    
 #  #   
 #  #   
 #  #   
 #  #   
 #  #   
 ###
...and another program that permute all combinations and generate font binary, last step is mapping on Shift-JIS. It can be easy using default standard, every next item of Shift-JIS table is next font item.

Code:
----- 082 -----
         
         
         
 #  #    
 #  #    
 #  #    
 #  #    
  ##     
   #     
  #      
         
         
         
         
         
         
----- 083 -----
         
         
         
 ####    
    #    
   #     
  #      
  #      
 #       
 ####    
         
         
         
         
         
         
----- Pair -----
         
         
         
 #  # ####
 #  #    #
 #  #   #
 #  #  # 
  ##   # 
   #  #  
  #   ####
and finaly after some tries and fails to encode to 4bpp back, I genareted character-pairs font corectly.
fontpairs.png

and this is how it looks, no encoding yet...
fpairs.png

now mapping on Shift-JIS code has to be done, iteration isn't exatly the same, there's some gap's in font file, but that holes has some repetitive pattern.I see that after 623 font item is best place to put character pairs. Same like in english LA2.
 
Last edited by plasturion,

Johnny675

Member
Newcomer
Joined
Sep 10, 2019
Messages
24
Trophies
0
Age
52
XP
122
Country
United States
I hope your able to finish the translation
Thank you for taking the time to do it
So many games never made it out of Japan
But thanks to people like you and people who translate the games everyone can enjoy those great games
 
  • Like
Reactions: LuminousCat

plasturion

temporary hermit
Member
Joined
Aug 17, 2012
Messages
1,219
Trophies
2
Location
Tree
XP
3,514
Country
Poland
Small update, since nobody tried to do it, I made character-pair font encoder,
so now it's possible to place text without any changes in code (pairs of 80 characters + 623 first Shift-JIS characters).
encodedLA3.png
Leffie.png


Also kana characters are still available for testing purpose or you can use additional special signs.
pan.png

So I wrote three processing apps, for dumping, encoding, and creating stringtable binary again, and It looks like that:
screen.png
 
Last edited by plasturion,

Lan0z

Member
Newcomer
Joined
Jul 21, 2020
Messages
5
Trophies
0
Age
31
XP
55
Country
Brazil
Wow! Great news! So that means we can put the text in game and test it!?
If so it will be a great help for the translation!

Oh, just noticed I put the wrong username. Should have been Lon0z. Should ask a supervisor to change it later
 
Last edited by Lan0z,
  • Like
Reactions: plasturion

plasturion

temporary hermit
Member
Joined
Aug 17, 2012
Messages
1,219
Trophies
2
Location
Tree
XP
3,514
Country
Poland
Well my tools works independently to project translation, and is very simple in use, honestly i don't know about current progress and how extracted text is stored. (I heard about xmls, or google docs some time ago but now i just don't follow) Mayby my solution can help to check limitations if there are any, or it might be useful to implement to the official translation project.
 
  • Like
Reactions: LuminousCat

Lan0z

Member
Newcomer
Joined
Jul 21, 2020
Messages
5
Trophies
0
Age
31
XP
55
Country
Brazil
@plasturion Would we be able to put as many line breaks as we want before a box break? (the $p) I believe we will end up needing more of those than the original jp does
We could just change the format of the translated files to match the ones your tool uses. Would be easier and more efficient, I believe
 

plasturion

temporary hermit
Member
Joined
Aug 17, 2012
Messages
1,219
Trophies
2
Location
Tree
XP
3,514
Country
Poland
I didn't touch the code, so font displaying procedure should works as before.
Only one line break ($n) per dialog box.
 
Status
Not open for further replies.

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Psionic Roshambo @ Psionic Roshambo: By the power of Florida Man, I have the power!!! *Lifts up meth pipe* Meth Man!!! lol