logo
 drop

Main

Community

Submissions

Help

Author Topic: FF7 NES Chinese Translation  (Read 118102 times)

Lindblum

  • Sr. Member
  • ****
  • Posts: 445
  • Location: NY, USA
  • Sometimes... Sometimes the diaper leaks.
    • View Profile
FF7 NES Chinese Translation
« on: August 05, 2008, 03:30:23 pm »
Everyone who wants to translate the FF7 NES ROM come directly to me! 
  I've been checking all the boards and it looks like I'm the guy doing most of the work on this project (If I'm wrong let me know, because I don't want to find I'm wasting my time).  It's been coming along quite well so far, and there's so much I can tell you about the ROM text encoding, and how I'm translating it.  -And I don't even KNOW Chinese.  The English PSX was already transcribed by someone called Little Chiba, and that document was translated to Chinese by someone called Zhongtian.  His translation matches very closely to the ROM, so I can easily link ROM text to the English text.  Well, it wasn't easy at first.  I had to develop a way to convert the ROM's 2-byte hanzi into Unicode, but it was SO worth the effort.  I had to extract the hanzi tileset and identify several thousand with a graphical kanji/hanzi lookup system. 
  I may still need some help though.  I'm hitting some issues when I try to insert my text into the ROM, and some memory constraints to deal with.  A battle system fix would make it easier for me to get this done.  Fights take forever, and I have to spread test points throughout the game.  Let me know your thoughts!
Confidence is the feeling you have before you understand the situation.

RedComet

  • Hero Member
  • *****
  • Posts: 3144
    • View Profile
    • Twilight Translations
FF7 NES Chinese Translation
« Reply #1 on: August 05, 2008, 10:00:02 pm »
Awesome news! I recommend implementing some sort of huffman compression if at all possible to alleviate your space constraints. :)
Twilight Translations - More than just Dragonball Z. :P

Dr. Mario

  • Full Member
  • ***
  • Posts: 141
  • Location: Pittsburgh, PA
    • View Profile
FF7 NES Chinese Translation
« Reply #2 on: August 05, 2008, 10:27:17 pm »
Honestly I don't know the first thing about doing game translations, but if you're interested at all, if you want to spruce things up a bit, I can give you these guys to go along with your text boxes
What is a man? Baby don't hurt me, don't hurt me, no more.

Lindblum

  • Sr. Member
  • ****
  • Posts: 445
  • Location: NY, USA
  • Sometimes... Sometimes the diaper leaks.
    • View Profile
FF7 NES Chinese Translation
« Reply #3 on: August 07, 2008, 10:35:38 am »

Dr. Mario,
I'm kinda getting used to the avatars (I think I read they're from a Gundam game). 
I do like the ones you posted, though.  Maybe they can go into an 'improvement patch',
but I haven't really decided if such changes belong in a translation patch. 
They deal with different parts of the memory, so if they were applied as separate patches to the same image they should still work together. 
I'm not impressed with Barret's map sprite, but that falls into the same issue. 
How did you get these images?

RedComet,
Since this is a reverse-engineering project I'm stumped on the prospect of how I'd apply text compression. 
Let me tell you what I DO know.  Let's talk about what I call Dialog Block 1. 

37FD0: Dialog 1  Header
38010: Pointer to Dialog 1a (Addr=Ptr+30010)
38012: Pointer to Dialog 1b (Addr=Ptr+30010)
38014: Pointer to Dialog 1c (Addr=Ptr+30010) ...[FF][FF][40]
38019: Dialog 1a Pointers (Addr=Ptr+30010)
38217: Dialog 1a Text ...[FF][FF]
3B2DA: Dialog 1b Pointers (Addr=Ptr+30010)
3B4D6: Dialog 1b Text ...[FF][FF]
3E185: Dialog 1c Pointers (Addr=Ptr+30010)
3E20D: Dialog 1c Text ...[FF][FF][FF]
3EDDF: Free Space [00]...
3FFD0: Tileset Header ...?

When a pointer references text if the 1st byte is [40] ('@') the following 3 bytes are ASCII-encoded numbers to tell which avatar to use. 
@001 is Cloud, @002 is Barret, @028 is a shinra soldier... Avatars aren't always used though. 
Text is encoded in 2-byte hanzi, and 1-byte ASCII characters (alphanumeric and punctuation, all with ASCII byte values. Rare in a NES ROM). 
The first byte of a hanzi is [B0-C3], the second is [A1-FE].  They are valued approximately in the order of appearance in the game. 
Every line ends with [0D][0A] ('\r\n').  If that isn't there the speaker will leak into the next guy's line in-game. 
Every time you change the text you have to update the pointers.  I have a process to take care of these for me. 

Here's a little taste of my FF7 NES CH hanzi to Unicode map:
   0123456789ABCDEF
B0A「巴雷特新来的跟着我哨兵入侵者皮
B0B克斯哇你原曾经是军人这种可不常见
B0C杰森士那吗他为什么和们雪崩组织在
B0D一起别样个但已退役现份子了对还知
B0E道名字呢劳德嗯感兴趣次任务结束就
B0F要离开里该死都干想说过吧行动目」
...
*sorry if columns don't line up in this font. See how the first 3 hanzi make Barret's name?

What's neat about this is that after I have eliminated the need for these characters I can
take advantage by using them to squeeze common 3-letter sequences and squeeze them into 2-byte units. 
This could also come in handy with all those apostrophes.  I don't know yet if I'll end up doing that. 
I WILL use this space to store icons for item, weapon, armor, and materia names. 

WHEW! Drink that in!
Confidence is the feeling you have before you understand the situation.

Lindblum

  • Sr. Member
  • ****
  • Posts: 445
  • Location: NY, USA
  • Sometimes... Sometimes the diaper leaks.
    • View Profile
FF7 NES Chinese Translation
« Reply #4 on: August 07, 2008, 10:39:01 am »
I might have to start this as a new forum topic if we continue in this direction.
Confidence is the feeling you have before you understand the situation.

I.S.T.

  • IRC Staff
  • Hero Member
  • *****
  • Posts: 4618
  • Ten years, still no avatar.
    • View Profile
FF7 NES Chinese Translation
« Reply #5 on: August 07, 2008, 10:40:17 am »
Please do not double post unless the previous post is more than 7 days old or is no longer on the first page of the sub-forum it's in.
Retired moderator/staff member as of July 14th 2016

RedComet

  • Hero Member
  • *****
  • Posts: 3144
    • View Profile
    • Twilight Translations
FF7 NES Chinese Translation
« Reply #6 on: August 07, 2008, 10:42:59 am »
You're correct in thinking that compression won't help you with reverse engineering the text format. What I meant was use compression to fit the English text back in the ROM. ;)

As for the character portraits, they're from Super Robot Wars. At least some of them are.

My thoughts on the translation are to give the game a full scale face lift. Edit the graphics so that the areas look like their FF7 PSX counterparts and rebalance the game. It's way too time consuming and difficult.

EDIT: I went ahead and split the old thread up. Please post in this new thread about FF7.
Twilight Translations - More than just Dragonball Z. :P

Lindblum

  • Sr. Member
  • ****
  • Posts: 445
  • Location: NY, USA
  • Sometimes... Sometimes the diaper leaks.
    • View Profile
Re: FF7 NES Chinese Translation
« Reply #7 on: August 07, 2008, 11:08:23 am »
RedComet,
I'm in full agreement that the battle system needs balancing, and a translation patch is as good as any other excuse to fix it.  It would even help me just to get through the game to test my translation for bugs.  We can either power up attack and magic strength, but rigging enemy HP would be much easier to do.  I've spent hours leveling up and still hit single-digits :P  It pays to level-up attack materia, but the frustration is incessant. 

Thanks for moving the posts.  I left a link on the other thread to point to here.  (When I saw my posts were gone I thought I was banned! LOL!)

I have finished translating Dialog Block 1 (there are at least 5. 2 and 3 are half-done) and reducing it to an acceptable size.  There are several limiting factors on memory.  We can look back at my Dialog Block 1 byte map for reference.
1) New text cannot run into the consecutive statically-located memory block (In this case it's the "Tileset").
2) Referenced text cannot be out of pointer range.
I got these out of the way by simplifying redundant punctuation and text (I didn't "hack-it-up" to the point of real concern). 
Now let's get to my unresolved issue.  See how Dialog 1 is broken into Header, and 3 sub-blocks (1a, 1b, 1c) with their own pointer spaces?  The sub-blocks are memory-contiguous with each other.  If I add text to one sub-block the following ones shift, which means the pointers to the sub-blocks have to change to keep up.  I have made the appropriate pointer corrections, but my shifted sub-blocks still end up pointing to gibberish in-game.  I considered maybe there are other pointers to fix that I don't know about.  I have compared the Dialog 1 header to the Dialog 2 header to see which other bytes were variables, but they were identical with the exception of sub-block pointer values.  I HAVE to figure out how to safely move contiguous sub-blocks without creating corruption.  I still have to take more time to study the problem... 

EPIPHANY! I may not have to move them at all!  Since all pointers in the same block have the same local addressing system, I can just throw the text that doesn't fit into the free memory area after the last sub-block.  Just use it as overflow space.  No one ever said the lines themselves have to be contiguous.  It'll make the ROM's innards look a little chopped-up, but I think it'll do the trick!  Cross your fingers for me...
« Last Edit: August 07, 2008, 02:45:46 pm by Lindblum »
Confidence is the feeling you have before you understand the situation.

Dr. Mario

  • Full Member
  • ***
  • Posts: 141
  • Location: Pittsburgh, PA
    • View Profile
Re: FF7 NES Chinese Translation
« Reply #8 on: August 07, 2008, 10:10:12 pm »

Dr. Mario,
I'm kinda getting used to the avatars (I think I read they're from a Gundam game). 
I do like the ones you posted, though.  Maybe they can go into an 'improvement patch',
but I haven't really decided if such changes belong in a translation patch. 
They deal with different parts of the memory, so if they were applied as separate patches to the same image they should still work together. 
I'm not impressed with Barret's map sprite, but that falls into the same issue. 
How did you get these images?

Up to you, regardless I'll be asking you which avatar is which when you're done  ;D
The avatars were made by me with touch-up work by setz and TGMagus. Anyways, it looks like things are going along well. I'm happy to see someone is working on this. Oh and balancing the battle system? Awesome.

Oh PS: I swear Red XIII is a modified Cheetahman.
What is a man? Baby don't hurt me, don't hurt me, no more.

Lindblum

  • Sr. Member
  • ****
  • Posts: 445
  • Location: NY, USA
  • Sometimes... Sometimes the diaper leaks.
    • View Profile
Re: FF7 NES Chinese Translation
« Reply #9 on: August 08, 2008, 02:14:13 am »
I had bug in my pointer-adjusting process and had to rewrite it.  Ate up some time, but who cares, I have great news...it worked!  I can leave sub-blocks exactly where they are, migrate the overflowing text into the empty space after the last block, and have everything work uncorrupted.  I don't know 100% if there'll be problems when the game reaches Dialog Block 2.  I'm 95% confident that will check out.  This breakthrough alleviates almost all of my corruption concerns! 
Confidence is the feeling you have before you understand the situation.

Vanya

  • Hero Member
  • *****
  • Posts: 1095
  • Location: Miami, Florida, USA
    • View Profile
Re: FF7 NES Chinese Translation
« Reply #10 on: August 09, 2008, 10:26:44 pm »
I'm very happy to hear that this is being worked on! I love retro gaming, and this project could be used at some point as a gateway for 8-bit remakes of some of the other FF's.

As for the portraits, I'd say that you are right that they aren't needed for a translation patch like this, but since the ones they used originally are mod'ed from another game I think the project would benefit from them. In a way the new portraits would make the game more *official* looking. I'd even look into adding them in myself.

Good luck with everything! =)

Lindblum

  • Sr. Member
  • ****
  • Posts: 445
  • Location: NY, USA
  • Sometimes... Sometimes the diaper leaks.
    • View Profile
Re: FF7 NES Chinese Translation
« Reply #11 on: August 10, 2008, 02:33:49 pm »
If you guys want to put in new portraits, you can do that easily on your own.  I've thought about it, but decided to keep the originals.  To me the goal is not to make it look like the official FF7 game.  It's more of a what-would-it-be-like if FF7 was released in the NES era. 

All that business about sub-blocks before...that's all resolved.  There was a bug in the pointer control of my script inserter. 

Hey, I want to upload a patch of my current progress so cool people can give me feedback.  Where can I do that?  I don't want to put it anywhere too official, because it's only about 20% done.  Your save points should still work, but if you use them the first enemy of your next battle may not display properly.  That's no biggie, it goes away.
Confidence is the feeling you have before you understand the situation.

Vanya

  • Hero Member
  • *****
  • Posts: 1095
  • Location: Miami, Florida, USA
    • View Profile
Re: FF7 NES Chinese Translation
« Reply #12 on: August 11, 2008, 11:12:54 am »
Media Fire works.

Alex

  • Newbie
  • *
  • Posts: 23
    • View Profile
Re: FF7 NES Chinese Translation
« Reply #13 on: August 11, 2008, 11:33:30 am »
Its great to know that someone is working on a translation of this game.

Lindblum

  • Sr. Member
  • ****
  • Posts: 445
  • Location: NY, USA
  • Sometimes... Sometimes the diaper leaks.
    • View Profile
Re: FF7 NES Chinese Translation
« Reply #14 on: August 11, 2008, 01:37:50 pm »
Here goes, it's on MediaFire...
http://www.mediafire.com/?ruvmibbaxbl
FF7NES-CH2EN-20percent.ips

Remember, it's a partial translation  I haven't figured out the title screen and menu selection names yet, they are stored separate from the main character set.  Some unidentified enemies will have number codes for names.  Dialog is pretty much done up to the pillar-collapse incident.  Try it out.  If there's bugs or text I missed along the way I appreciate screenshots, the Chinese text, or description of where you found it.  When I'm a bit further along I'll probably put it out as a public Help Wanted request.

I hear there are 2 versions of the ROM.  This is the one with the black-and-purple title screen.

Let's mosey!
« Last Edit: August 19, 2008, 02:13:29 pm by Lindblum »
Confidence is the feeling you have before you understand the situation.

Pennywise

  • Hero Member
  • *****
  • Posts: 2147
  • I'm curious
    • View Profile
    • Yojimbo's Translations
Re: FF7 NES Chinese Translation
« Reply #15 on: August 11, 2008, 04:05:07 pm »
Interesting, good work so far, but this game is going to need ASM hacks in order for it to look good. Since this game doesn't work on any emulator with a debugger, someone is going to have to hack a emulator with such features. FCEU would probably be a good candidate as I believe its source is open.

Lindblum

  • Sr. Member
  • ****
  • Posts: 445
  • Location: NY, USA
  • Sometimes... Sometimes the diaper leaks.
    • View Profile
Re: FF7 NES Chinese Translation
« Reply #16 on: August 11, 2008, 04:22:25 pm »
Thanks for checking it out.  Where does it need .asm though?

BTW, I plan to replace the font, and push certain punctuation marks to the left side of their tiles to give a more natural readability.
Confidence is the feeling you have before you understand the situation.

Pennywise

  • Hero Member
  • *****
  • Posts: 2147
  • I'm curious
    • View Profile
    • Yojimbo's Translations
Re: FF7 NES Chinese Translation
« Reply #17 on: August 11, 2008, 04:47:02 pm »
I noticed that the dialogue boxes only use two out of the four lines available. I'm assuming that's just what the games does, but I could be wrong. If I'm right then that can be fixed.

KingMike

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 5904
  • *sigh* A changed avatar. Big deal.
    • View Profile
Re: FF7 NES Chinese Translation
« Reply #18 on: August 11, 2008, 05:03:39 pm »
Well, you'd probably want to make ASM hacks to reduce the font size, so you can fit more text on the screen at once, for example.

I've considered FF Legend 3 (would use the JP/US GB versions as translation reference), but I haven't found the text.
Only emus I could get to play it are a hacked VirtuaNES and Nestopia. Neither has a debugger.
FCEU-mm has limited debug capability, but can't seem to progress past the title.
Quote
Sir Howard Stringer, chief executive of Sony, on Christmas sales of the PS3:
"It's a little fortuitous that the Wii is running out of hardware."

Lindblum

  • Sr. Member
  • ****
  • Posts: 445
  • Location: NY, USA
  • Sometimes... Sometimes the diaper leaks.
    • View Profile
Re: FF7 NES Chinese Translation
« Reply #19 on: August 11, 2008, 05:10:25 pm »
Quote
I noticed that the dialogue boxes only use two out of the four lines available.
The original spaces them that way because the Chinese characters are 16x16, while English is 8x8.  If you can figure out how to hack the text engine great - I just don't want it to choke when it hits a Chinese character.  Actually, I intend to use the Chinese character tilespace to make my own 16x16 icons which will appear in item names.  The dialog seems to use some of the same engine as the menu, so I'm afraid to mess with that.  I wouldn't advise hacking anywhere outside of the dialog blocks' 64-byte headers unless you really know what you're doing. 

Aw geez!  Corneo looks like Elvis and Heidegger looks like an emaciated Gary Busey!  Travesty!  I'm gonna look for the game the avatars came from and see if they have any more-appropriate avatars.  I don't want to alienate the 8-bit spirit of the demake. 
« Last Edit: August 11, 2008, 06:52:13 pm by Lindblum »
Confidence is the feeling you have before you understand the situation.