+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  FF7 NES Chinese Translation
Pages: 1 2 [3] 4 5 ... 12
Author Topic: FF7 NES Chinese Translation  (Read 5 times)
RedComet
Guest
« Reply #30 on: August 15, 2008, 08:47:58 pm »

Quote from: UglyJoe on August 15, 2008, 04:31:12 pm
Quote from: Pennywise on August 11, 2008, 03: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.

The latest Windows binaries of FCEUX can run and debug it (and it still works with Wine).

http://fceux.com/web/htdocs/download.php

This makes me happy in pants. Cheesy
DarknessSavior
Guest
« Reply #31 on: August 18, 2008, 01:13:18 pm »

That's awesome.

Also, as far as the hacking goes, I like what you've done thus far.

However, I have one small complaint. The Capital and Small letters do not match. It's really displeasing to the eye. >.<

And this is probably out of your control, but those battles need to last less than 10 minutes. They really do.

~DS
Lindblum
Guest
« Reply #32 on: August 18, 2008, 01:50:09 pm »

Quote
The Capital and Small letters do not match. It's really displeasing to the eye. >.<

I don't like it either.  I'm already working on that.  I'm replacing the font with a modified version of FF3j's (a translated version of it technically).  I almost forgot how tedious tile editing and tile map rearrangement can be, especially when you realize your tile arrangement bytes were overwritten when you reinserted the new tiles!  Damn menu-screens-that-don't-use-text-strings-like-every-other-part-of-the-game!  Thanks for your input.

BTW, what do 板,锁,çš®,布 mean in the status screens?  Plate,Lock,Skin,Cloth?  What does that even refer to?
耐力 translates to Endurance, so I abbreviate it Stm. for Stamina.  What does this status even do in the game? 

I haven't decided what I'll do about the battle system.  I want to include a battle fix in my patch, but it's not something I wanna do half-assed.  I guess I'll make 2 patches.  I wasn't planning on making an easy-type patch, but the more I play the more I feel it needs to be done, so why not by me?  Grrr, now I have to find enemy HP, EXP, Gil values, weapon and magic enhancement thresholds, materia level-up thresholds, character level-up thresholds, and level-up stat bonuses. 
« Last Edit: August 20, 2008, 11:30:59 am by Lindblum »
DarknessSavior
Guest
« Reply #33 on: August 20, 2008, 01:25:57 pm »

Yes, but after all of that work is done, you have no idea how many nerds you'll have made happy!  :laugh:

~DS
Lindblum
Guest
« Reply #34 on: August 20, 2008, 01:55:41 pm »

DS,
Thanks for the pep talk.  After 11 years it's about time this fine game got re-released state-side.  When I'm done I'd like to work out a way to get it running on the NDS.  It seems NESDS is open source at http://www.cs.utah.edu/~tew/nesDS/.  It has a .s code file for every mapper.  It is my hope that compiling it with a 163 mapper will do the trick.  I don't know how to do this.  Maybe the guys who made Nestopia would know how.  How willing to help they'd be is a matter of hope.  Actually, Nestopia itself is open source.  NstBoardNanjing.cpp/hpp must be full of clues, but I'm still getting lost. 
« Last Edit: August 20, 2008, 02:24:47 pm by Lindblum »
macbee
Guest
« Reply #35 on: August 21, 2008, 04:50:06 pm »

Lindblum, there are many versions of FF7 for Famicom.
Do you mind to say wich version you're hacking? I would love to make visual changes on those TERRIBLE graphics.
Lindblum
Guest
« Reply #36 on: August 21, 2008, 05:42:02 pm »

I've only heard of 2 versions.  I said it was the one with the one whose title screen is black and pu-- why don't I just show it?

It's the one CinnamonPirate helped make famous.
If you want to change the avatars I have some from SMW that will maintain the style.  You're probably a purist, so I guess you'll rather try to go for the "authentic" look. 


I have to say though, fixing the music is MUCH more important than the graphics.  With the graphics you can still pay attention to the story.  It's the music that kills the mood, especially when the sector 6 music (butchered FF3j boss battle theme) plays after the sector 7 plate collapse.  Everyone is dead and all you hear is frickin' clown dance music. 
« Last Edit: August 23, 2008, 12:20:43 pm by Lindblum »
Lindblum
Guest
« Reply #37 on: August 24, 2008, 11:12:37 am »

I have a very special announcement to make...
The 90% translation patch is ready for you to try!

It's on MediaFire...
http://www.mediafire.com/?zzf1ykzxckr
FF7NES-CH2EN-90%.ips
« Last Edit: August 24, 2008, 02:38:20 pm by Lindblum »
Dwedit
Guest
« Reply #38 on: August 24, 2008, 12:55:10 pm »

Not too happy about some abbreviated text, (Atk!  OMG I cn't xpand txt) and the 8x8 font.  I'd prefer to see a FF6-style Chicago font, seeing as it's a 8x16 font engine already.
I also took a little fork in the road near the beginning and saw some Chinese text.
Lindblum
Guest
« Reply #39 on: August 24, 2008, 02:22:59 pm »

Quote
I'd prefer to see a FF6-style Chicago font, seeing as it's a 8x16 font engine already.
I don't know the text engine deep enough yet to tell how to use the blank tile above each letter.  Even if I did, there aren't enough free tiles in the English tileset.  I can use the Chinese character set space, but so far I only know how to extract 16x16 characters from there. 
Quote
I also took a little fork in the road near the beginning and saw some Chinese text.
That's why I call it a "90%" translation and not a "10000%" translation.  There is an entire block of text that doesn't exist in the original game, so I can't cross-reference it to game transcripts, and they're arranged without context.  If you're going to tell me that I have translation gaps I'd appreciate it if you would help by saying WHERE. 
Alex
Guest
« Reply #40 on: August 24, 2008, 02:27:04 pm »

Quote from: Lindblum on August 24, 2008, 02:22:59 pm
Quote
I'd prefer to see a FF6-style Chicago font, seeing as it's a 8x16 font engine already.
I don't know the text engine deep enough yet to tell how to use the blank tile above each letter.  Even if I did, there aren't enough free tiles in the English tileset.  I can use the Chinese character set space, but so far I only know how to extract 16x16 characters from there. 
Quote
I also took a little fork in the road near the beginning and saw some Chinese text.
That's why I call it a "90%" translation and not a "10000%" translation.  There is an entire block of text that doesn't exist in the original game, so I can't cross-reference it to game transcripts, and they're arranged without context.  If you're going to tell me that I have translation gaps I'd appreciate it if you would help by saying WHERE. 
Smiley Lindblum great job at releasing a 90% translation patch,but what is left to be done to make it to 100%.
Lindblum
Guest
« Reply #41 on: August 24, 2008, 02:37:21 pm »

Hold on, I made a naive move to replace instances of "No." with "#", resulting in stupid text.  I've just replaced the link.
Oh hell, do I have that animated BG bug again?  I don't know what that is, I don't believe I'm overwriting anything I shouldn't...

Quote
what is left to be done to make it to 100%.
By the syntax I can't tell if that was intended to be a question.  I'll address it as one just in case. 
1: I mentioned the non-contexed text.  Not only don't I know where half of it goes, I can't translate it to anything that makes sense to me. 
2: Spell names are not finished, because I don't know what they do.  I'd like to cheat my materia inventory and levels to find out, but haven't succeeded.  Save state hacking was always so easy, what's going on?  I wouldn't trust all their names just yet. 
3: A couple of boss names could be off, because I don't know who they're supposed to be for.  They combined Palmer and Scarlet into someone called Blair (布莱尔).  I haven't seen its map sprite, yet I always assumed it was Palmer (Cid uses the "fat" line), yet its battle sprite is a kunoichi.  I named the enemy Scarlet as if Palmer sent her to attack for him. 
4: I gave spells elemental icons.  These are liable to change. 
5: Armor names are not translated yet. 
6: I don't know what the 板,锁,皮,布 stats refer to.
7: I'd love to fix the punctuation spacing and improve text-wrapping, but (and I've said this many times before) they give me limited memory for each block, and English is not as memory-efficient as Chinese.  I've had to shave a lot of fluff text and minimize punctuation, by deleting spaces after punctuation, and using single-tile characters for interrobang and ellipsis.  I plan to keep looking for ways to save memory, so that I can restore some of the shaved text. 
8: I want to add a couple more credits to the title screen. 

Now that I'm at 90% the rest of my work seems asymptotically greater since it requires more work and investigation.  Honestly I'm a bit exhausted right now. 
« Last Edit: August 24, 2008, 03:37:53 pm by Lindblum »
Dwedit
Guest
« Reply #42 on: August 24, 2008, 04:32:01 pm »

Running fceux...
Code at 0x145 reads bytes from the script...
Any reason why it first reads an invalid page, then reads the correct value the next time?
yeah, stepping through the rom, these chinese guys can't code!
I see it checks if it's less than B0, would that indicate ASCII?

93B3: reads character byte, multiplies by 16
040E: Code that fills the top half of ascii with 00's

There's a small buffer at 070C-072C that holds the character it will draw into VRAM.

okay... here we go...
At 91B7 it tests if it's ASCII or not, branches ahead to 9199
Sets 0053 with 01 to indicate it's ascii
At 0408, it checks if 0053 is 01, then if it is, it fills the top character with a solid blank.
 (at this point if you change 0053 to 00, it draws it as a 16x16 chinese character...)
If you nop out the part where it blanks out the top half, then change the next byte to tell it to copy two characters instead of one, you get this:
"C'mon newco-"
"D(npo!ofxdp."
I think I'm getting closer.
042C - code which copies the character


(post being edited...)

DISASSEMBLY of code that copies the text character
Code:
.org $0408
       LDA $0053
       BEQ l0428
       LDY #$08
       LDA #$FF
l0410: INX
       STA $0700,X
       DEY
       BNE l0410
       LDY #$08
       LDA #$00
l041B: INX
       STA $0700,X
       DEY
       BNE l041B
       LDA #$01
       STA $000D
       BNE l042C
l0428: LDA #$04
       STA $000D
l042C: LDY #$00
l042E: LDA ($04),Y
       EOR #$FF
       INX
       STA $0700,X
       INY
       CPY #$08
       BNE l042E
       LDA #$00
l043D: INX
       STA $0700,X
       INY
       CPY #$10
       BNE l043D
       LDA $0004
       CLC
       ADC #$10
       STA $0004
       LDA $0005
       ADC #$00
       STA $0005
       DEC $000D
       BNE l042C
       LDA #$03
       STA $5000
       LDA #$00
       STA $5200
       RTS
« Last Edit: August 24, 2008, 05:39:29 pm by Dwedit »
Lindblum
Guest
« Reply #43 on: August 24, 2008, 04:50:26 pm »

Quote
I see it checks if it's less than B0, would that indicate ASCII?
I don't know if this is related, but it definitely sounds like it.  In the game's text blocks it uses ASCII values for alphanumeric and punctuation, but when it uses Chinese hanzi it uses a 2-byte code.  An earlier page in this thread shows the game's entire Chinese character set.  It starts with value 0xB0A1.  I guess when it strikes a value of B0 or higher it knows that byte and the next are a hanzi reference.  Notice how the A0 and FF second-bytes don't really seem to point to any character?  I wonder what that's all about.  Thanks for taking a look, by the way. 
Dwedit
Guest
« Reply #44 on: August 24, 2008, 06:06:27 pm »

Inject replacement code at 0x19361 in file

Replacement ASM code:
Code:
;Inject into ROM at 0x19361 in file
.org $0408
       LDA $0053
       BEQ not_ascii
       LDA #$02
       BNE skip
not_ascii:
LDA #$04
skip:
       STA $0D
l042C: LDY #$00
l042E: LDA ($04),Y
       EOR #$FF
       INX
       STA $0700,X
       INY
       CPY #$08
       BNE l042E
       LDA #$00
l043D: INX
       STA $0700,X
       INY
       CPY #$10
       BNE l043D
       LDA $0053
       BNE addeight
       LDA $0004
       CLC
       ADC #$10
back:
       STA $0004
       LDA $0005
       ADC #$00
       STA $0005

       DEC $000D
       BNE l042C
       LDA #$03
       STA $5000
       LDA #$00
       STA $5200
       RTS
addeight:
       LDA $0004
       CLC
       ADC #$08
       BNE back
       BEQ back
.end

Replacement Binary:
Code:
A5 53 F0 04 A9 02 D0 02 A9 04 85 0D A0 00 B1 04
49 FF E8 9D 00 07 C8 C0 08 D0 F3 A9 00 E8 9D 00
07 C8 C0 10 D0 F7 A5 53 D0 1C A5 04 18 69 10 85
04 A5 05 69 00 85 05 C6 0D D0 D1 A9 03 8D 00 50
A9 00 8D 00 52 60 A5 04 18 69 08 D0 E2 F0 E0  

This makes the main dialog use a 8x16 font.  Does not affect battles or the main menu.

List of other routine that may or may not need separate modifications:
19338
19361
193DD
20BE9
20CC8
20D70
20DC1
20E04
20FD8
70BF8
70CD7
70D7F
70DD0
70E13
70FE7
« Last Edit: August 24, 2008, 07:19:57 pm by Dwedit »
Pages: 1 2 [3] 4 5 ... 12  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC