Author
|
Topic: FF7 NES Chinese Translation (Read 5 times)
|
RedComet
Guest
|
|
« Reply #30 on: August 15, 2008, 08:47:58 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.phpThis makes me happy in pants.
|
|
|
|
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 » |
|
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/?zzf1ykzxckrFF7NES-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 » |
|
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. 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 » |
|
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. 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. 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... 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 .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 » |
|
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: ;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: 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 »
|
|
|
|
|