Hacking Legend of Heroes Translation

Status
Not open for further replies.

zero_g_monkey

Well-Known Member
OP
Member
Joined
Aug 9, 2013
Messages
332
Trophies
0
Age
44
XP
321
Country
United States
c_vis008.png

NPJH50311_00004.jpg

NPJH50311_00005.jpg

Here is a sample of the idea I had for the visuals extra. This is just done in the memory viewer in PPSSPP. The final product will be better. Gonna see what I can do with the actual images.

I will definitely get on that link. Doing some behind the scenes work on the site and forum... well fixing to start. Just got started for the day on stuff.
 

zero_g_monkey

Well-Known Member
OP
Member
Joined
Aug 9, 2013
Messages
332
Trophies
0
Age
44
XP
321
Country
United States
Here we go. I am still trying to figure out how to fix the game font. Gonna shot a few ideas out there to see if "maybe" I am looking in the right direction. Here is the things I have been trying. Once again, I still don't understand programming all that well. But I am trying. Really hard to.

Finding the routine for displaying the tiles. I have tried scanning through the GE Debugger to see how they load. I come across the line talking about the Drawtype stuff talking about triangles, squares and various other things. I see addresses for the VADDR. This sometimes is an interesting little cat and mouse game but I am not sure if it leads me anywhere. Now something that I think has proven more effective was when I took the address of the file that contains the character tiles (font file-s) and it looks like it may have shown the location for something interesting. The location for the first texture is 0x08D704E0 and that is part of the pspfont.dat (which has a lot of textures in it lol).


If I set a breakpoint for another area shortly after the game starts (loading messages) for the address 0x08D704E0. This is the first texture of the game. Literally. All you get is black screen if you start the game with it on.

addiu v0,v0,0x1
sw v1,0x0(a3)
sw v1,0x4(a3)
bne t0,v0,pos_08A320A8 : true
addiu a3,a3,0x8


If I set a breakpoint for another area shortly after the game starts (loading messages) for the address 0x08D98620. This is the cycle it goes through in the disassmbler. It doesn't jump from this pattern.

addiu v0,v0,0x1
sw v1,0x0(a3)
sw v1,0x4(a3)
bne t0,v0,pos_08A320A8 : true
addiu a3,a3,0x8

These are 2 different screens of text (and second one won't show if you have system data saved).

Getting past this hurdle is what is holding up progress. We all know how text heavy these games are. I plan on pushing it to the point of almost breaking it. That is why I manually do almost all my insertion to see just how far I can go with stuff. I would love to be able to use every single pixel I can and fill it with information. Also, i, t, m, and w seem to get the short end of the stick when it comes to font creation and look like crap.


I suspect that there may be a couple of font tables around the locations 0x261F10 and 0x2728F0. I suspect they are related to the files sfont.itp and ascii.itp both located in the system folder. This is where the Latin characters are located when using Enlish text. These may be of little benefit without english files in the game since it is Latin characters A B C blah blah blah. I don't know the location yet of what could be the shift-jis table which would be the PSPFONT.DAT file.

Back to the GE Debugger. I grasp the basic concept of when you are sorting through prim thing looking for stuff and some of the things it loads. I just feel like I am lost because I don't know what it is I am really searching for. There is the stuff talking about Drawtype triangle blah blah number number. I easily can spot those and mess the screen up really well messing with some. But is there something more I need to locate to track down how the text is being read into the game. If you wanna help out with this, pictures work best with a reasonable description. Laymans terms are also a good thing. Telling me jmp does float to null is a little over my head. I mean jmp is saying go to this spot. Float is something to do with stuff being loaded I guess and null is end. (Also... take my mock code thing as reference to description. It doesn't mean anything or is intended to be a real code concept.)

-------------------------------------------------------------------------------------------------------------------------------------------------

I had mentioned around a few places that I believe I have found what could have been the locations or something to manipulate window sizes in the game. I am not to sure I found those but I believe they are actually some kind of game reference in the eboot to tell the game which windows can access the others by using the assigned button. I haven't tested that theory much by actually editing anything in the eboot. Just by messing around with the stuff in the hex editor and going to the address that it points to. If anybody wants to see what I am talking about, check address 0x273960 (area) for stuff that looks like 13CHikitugiMenu and so on. There is a bunch of lines similar to this. Something that is interesting about this stuff is the repeat of the address 08852700 (which flipped around would be 00278508). Not sure what the reason for this is since it beyond my tech level. But cool none the less. Some of the names have more addresses than others and they seem to point to each other. Interesting stuff.
 

JamRules

.....
Member
Joined
Jan 9, 2014
Messages
527
Trophies
1
XP
2,204
Country
United States
Seems like the game caches textures, when it meets a new piece of text it creates a new texture for it and stores a link to in case it meets the same text again.
You can test this by entering a string, modifying the texture, changing the string and then swapping back.

Also looks like alphabet characters already use less width than kanji/etc. so it may be possible to observe how that is set and modify it.

Texture function seem to start about ex 089D4AA4, this will get hit after making a change to the text in ram. Not entirely sure how but it should be possible to change the texture creation from here.

0x92BF2E0 - the original new texture is saved to this location in RAM

The function has (at least) two half saves (4 bytes per pixel/2 pixels? Haven't really checked)

-ex 089D5260 - li t0, 0xFFF
-ex 089D5278 - sh t0,0x0(v0)

-ex 089D5090 - lhu v1,0xC(v0)
-ex 089D509C - ori v1,v1,0xFFF
-ex 089D50A0 - sh v1,0x0(v0)

You can set the instruction above to li v1,0xFFF and you'll get no text.
More interesting you can set it to li v1, 0xFFFF and li t0, 0xFFFF and you get pure white for the size of the letter. Maybe there is already some sort of width in place?

npjh50311_00011.jpg


npjh50311_00008.jpg


Different test - colour seems to blended in later, so maybe the spacing could also be blended in?

npjh50311_00009.jpg


ex 089D8E98 - jal z_un_08a31c68 - resaves pixel data to final location 0x20 bytes at a time using mem copy

Obviously more investigation is needed to trace
-where the current char is loaded
-where the data for that char is loaded from the font sheet
-how alphabet chars are treated different as they seem to use half the space
-where the x offset is when adding the letter to the texture
-if there are other saves to the texture
 
  • Like
Reactions: GHANMI

Blazer

Well-Known Member
Member
Joined
Aug 10, 2008
Messages
281
Trophies
0
XP
470
Country
United States
Your work is looking awesome. I'd chuck money at this project if it'd help, lol. Keep at it. Seeing you guys looking so awesome is also good motivation for the translation project I'm working on, haha.
 

zero_g_monkey

Well-Known Member
OP
Member
Joined
Aug 9, 2013
Messages
332
Trophies
0
Age
44
XP
321
Country
United States
-JamRules
I don't know how in the world I missed your post Jam. That is some definitely interesting stuff. I think somehow I came across a few of those addresses before but for the life of me, I know I couldn't replicate it. Would having something that loads only the english characters help? I do know that when the japanese is involved, it loads from multiple locations since that file is a huge font file, but when you are using english only, it loads from the same location. I can provide a patch with some translated stuff, like maybe a patch for the eboot that has the initial loading screens in english (the ones you have above). Let me know what you think on that. The english font stuff I believe is all 8w 16h (with a pixel or 2 left blank in that size between lines). The color codes are in the text directly. They look something like #1C, #5C (and otehr variations) and #0C (stops the color). The #1C would come right before the text and the #0C is when you want to return to the white color text (default color).


-Blazer
Thanks for the support. Hoping to update some shots sometime soon. Just been pulling my hair out trying to figure out the best font for readability to do some images and then editing those images. I'm hoping when I get a chance to test the files, they will turn out nice... betting they won't though. When you get down to using font that are 8 and 9 pixels, they tend to be very hard to read or look like complete garbage. But in order to get all the information I need on them, that is what I am being left with. Was doing some editing the other day until I got stuck with a file not wanting to convert with the tools. It was a long day so I switched gears to working on Ys vs Sora no Kiseki. Making nice progress on that one since I am not giving it the presidential treatment I am this game.
 

Blazer

Well-Known Member
Member
Joined
Aug 10, 2008
Messages
281
Trophies
0
XP
470
Country
United States
Yeah, it sucks that as hackers, we sometimes struggle between just getting things translated and done and making it look good... sure, the most important part is that it's in English, but like you said, if the font is too small or if there are other issues, we sometimes either have to spend a lot of time making it work (whereas official localizations probably wouldn't have such a hard time, lol) or we just cut corners when it can't be helped (like there's just too much text in too little a space or something...).

well that's how I feel anyway, maybe your situation isn't the exact same. anyway you are doing great work and I am also interesting in Ys vs. Sora no Kiseki: in fact, I'm holding off on these games in anticipation for your translation patch, though no rush or anything, I can probably wait a good 20 months, lol. After that, then I'd have to contemplate just importing it until it's done due to my impatience XD
 

zero_g_monkey

Well-Known Member
OP
Member
Joined
Aug 9, 2013
Messages
332
Trophies
0
Age
44
XP
321
Country
United States
I need a little feedback. Keep in mind. This is an enhanced version of this image and by means the finished product. It will not turn out this pretty since it is actually half the resolution really. BUT... here is my question. Does all the information in the boxes make sense? Unfortunately, I didn't want to have to go the route of using abbreviations for stuff... but it turns out that I have to. No way to get a readable font used here without sacrificing something. Thankfully, I don't feel so bad since another company who works on the LoH games did the same thing (I kind of ripped theirs off a little here). So yeah.. does it all make sense?


Spell Template NO BOTTOMS NEW VERSION.png
 

Blazer

Well-Known Member
Member
Joined
Aug 10, 2008
Messages
281
Trophies
0
XP
470
Country
United States
Can't figure out "Rec" and the (St) after "Line"; the rest makes sense to me without thinking too hard. If only you could throw a note in-game about the abbreviations...
 

flame1234

Well-Known Member
Member
Joined
May 17, 2009
Messages
734
Trophies
0
XP
957
Country
United States
Heal? But it's an extra letter and might be too many?
(Ln) for "line attack"? You're covered because natural logarithm must be lowercase ln. :)

EDIT: All lines are straight, so all you need is the word line.
 

Guren no heya kara

Well-Known Member
Newcomer
Joined
Jul 8, 2014
Messages
53
Trophies
0
XP
127
Country
Italy
Maybe they intended straight as a vertical line going from your character towards the enemy, and not a horizontal line going from left to right.
I don't know, I've never played the game.
 

flame1234

Well-Known Member
Member
Joined
May 17, 2009
Messages
734
Trophies
0
XP
957
Country
United States
This is the "Chrono Trigger line attack" (have you played Chrono Trigger)?
Your characters and enemies stand and move on a square grid. Each ability has a targeting range and an effect range. For all orbal arts (subject of above image), the targeting range is infinity, i.e., any enemy can be targeted. "Line" attacks don't have an effect radius like most arts with area affect. Instead, there is a line. It can be pointed in any direction and has a certain width. Any enemies touching the line are targeted.

A good example of a line attack is Tio's Ether Buster (S-Craft). However, it is unusual because the line is so wide. I'll try to post a screenshot later. I didn't find any by googling.

What they mean by line is the math definition of a line (look on Wikipedia if you like)...which is what people who are not artists understand to be a line :)
 

Guren no heya kara

Well-Known Member
Newcomer
Joined
Jul 8, 2014
Messages
53
Trophies
0
XP
127
Country
Italy
M-my eyes...for a moment...
Then they get used to it, but maybe...the white is too white?
Or the black surrounding the letters is too thin? Uhm...
Maybe in game it will be perfectly legible.
 

zero_g_monkey

Well-Known Member
OP
Member
Joined
Aug 9, 2013
Messages
332
Trophies
0
Age
44
XP
321
Country
United States
I'm having trouble creating a color scheme here. Being color blind doesn't help the matter either :P. So here is my PSD file of what I am working on. I am gonna see if somebody can do something that works better than what I have going on. I ask that you do not change the font size or move anything like that around. Just adjust the colors. Most stuff should be labeled pretty good in the layers. This is for Photoshop CS6 or newer. I don't know if it will work on version prior to that since I no longer have any.

-Guren
Yeah, that black is pretty brutal. I just wish I had room to use a font size bigger than 10 for the information stuff. I butchered those translations to get them to even fit and if any of them are longer... Oh boy!
 

Attachments

  • Spell Template NO BOTTOMS NEW VERSION.zip
    363.4 KB · Views: 174

zero_g_monkey

Well-Known Member
OP
Member
Joined
Aug 9, 2013
Messages
332
Trophies
0
Age
44
XP
321
Country
United States
Hm... That could also work. Good idea.

Now back to the grindstone. Got some serious testing I am doing today. Started using a different hex editor with wild card hex support and may have run down those elusive pointers I have searched for. Just got to make a list of all the stuff to keep track of all of it that has been edited... also need to free the space up for things that don't have any room.
 

zero_g_monkey

Well-Known Member
OP
Member
Joined
Aug 9, 2013
Messages
332
Trophies
0
Age
44
XP
321
Country
United States
It looks like the test was a success. Found another OP code style pointer setup. Hoping it is the only other style... This is just a sample test of only changing the point where it loads the text. But a huge breakthrough for my work because it helps me with the HUGE amount of lines of dialog in the eboot that I was unable to move but needed to.

ORIGINAL

Original Version.jpg


MODIFIED VERSION

New OP Code Version.jpg
 

zero_g_monkey

Well-Known Member
OP
Member
Joined
Aug 9, 2013
Messages
332
Trophies
0
Age
44
XP
321
Country
United States
So I haven't really been updating status as of much lately with this project. I noticed some of the translation stuff has slowed down. The translators may have suspected I had given up or something, but in reality it is far from the truth. I have just been really really really busy with real life and behinds the scenes stuff (and I also publicly showed an interest in Ys VS Sora No Kiseki - which is just something to take my mind off this game as a break).

Well you may ask... what have you been working on and why has it taken so long. Simple answer... I have to do stuff that hard way. I'm not a programmer so all the debugging in the world will not be very helpful to me (though sometimes I get lucky). I wanted to have complete control over the files in this game. By that, I mean, I did not want to have limits on what I could do inside the files. Sadly, we had those abysmal translations for the Ghargav Trilogy and then XSEED came along with a good translation for the Trails series (well FC but still waiting on SC and it looks like we are gonna need a fan job on 3rd). I personally wanted to make sure that I took it up a notch with this effort. There are things that have been previously done to these games that there is really no reason it should have been that way.

I have said it a few times here & there and unfortunately due to space limits in some images files, but I hate when I know you can do more with text than just slapping abbreviations in there. There are lines like "Ambushed from behind" that literally would only leave me with 8 characters to work with. There is more even longer than that but off the top of my head, I can't remember them. I mean, this line is really crammed in a tight spot between file codes and the next line of dialog. The descriptions of certain things, though some are actually shorter than the original japanese text, others are really long... and translated quite nicely. I figure that if people are willing to work their butts off translating this game, why should I let their hard work go to waste. Don't get me wrong. I WILL have to edit the script to make it UNIFORM all around. There is no getting around that with a translation with various translators working on it. We all have a different style, so I will just have to tweak those styles into a reasonable flow. That is why I said for translators to try and give a literal translation and not add any flare to it.

NOW!! Without further ado, some results of what I have been working on. Though not very many, the significance of this is huge.

MSG1.jpg


MSG2.jpg


MSG3.jpg


MSG4.jpg


MSG5.jpg


The shot below is what happens when you rely on machines without checking your insert. Missed a little 0A (linebreak) in there. But the auto adjust windows are really cool. Make insertion a breeze in terms of formatting text. :P

Damn Machines.jpg


Let's keep in mind, I could have done this dialog with the space available without needing to relocate stuff. But then I would have not ended up with something that looks like this:

FREE_SPACE.png


All those Xs are free unused space. When dealing with an eboot, free space is like striking a gold mine. You can use it for making ASM level hacks, transplanting text or whatever. Thankfully, I have plans for stuff like this. Here is a little example of why it was so hard to deal with relocating this stuff.

Address in file
00 26 57 D9 <- You subtract C0 from this to get the pointer.

Normal Pointer
19 57 26 00

OP Code Style Pointer <- Just one of many variations. (4 different ones in a block of 5 here)
40146801A98F2600 053C 1957 A5241A9A00

I am gonna break down the [OP Code Style Pointer]. The stuff that is bold in it, is the really important part. Most of the other stuff is for myself so that I don't insert in the wrong spot.

26 00 <- First half of the address.
05 3C <- 05 has some significance, but I don't know what it is. 3C you see a lot in these pointers.
19 57 <- Second half of the address.
A5 24 <- Almost all these kinds of pointers have this immediately after the second half of address.

Notice I said almost of the A5 24. There are few that I have not tested that do not, but I am pretty sure they will work the same. They are part of the really long OP Code Style Pointers that are different. Want another example, sure you do... So here ya go... 2600 063C 605A C624 2120A002212800. Notice the missing A5 in here. Thankfully this one followed some of the standard for this style of pointers, so it was easier to find. Thankfully I have found a hex editor with a "wildcard" hex search function. This has really speed things up a whole lot with this project.

Other advances have been made in the image editing department as of late also. With the help of Flame and Sky, I believe that the image format, it pretty much conquered. Lacking in decent tools... but none the less... defeated. Work is steadily moving forward on this project. I am gonna leave this update with a few actual screen shots. I don't know if they have been posted here or not... So if they have, please forgive me. If all I did was spend my time trying to make screenshots, we would never get this game done. LOL!

wk65hv.png


2zptijp.png
 
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.
    SylverReZ @ SylverReZ: @OctoAori20, Cool. Same here.