News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Lindblum

Pages: 1 2 3 4 [5]
ROM Hacking Discussion / Re: FF7 NES Chinese Translation
« on: August 24, 2008, 11:05:16 pm »
I've never been ambitious for asm, but I'm starting to want to.  4-line text is probably best for everyone.  It may also mean that I can't use my 16x16 icons anymore for equipment and spell names.  I'll miss them.  Even if you don't code autowordwrap I can wrap the text before writing it into the ROM.  The extra spaces would make the job awkward for the next guy who'll want to play with the text.  Allowing the text to go out to 20 rather than 19 is one nice little thing to do. 

Good night.  Here comes the work week.   

ROM Hacking Discussion / Re: FF7 NES Chinese Translation
« on: August 24, 2008, 08:06:41 pm »
You've impressed me again.  Personally, I'm fine with the font, it helps the game look like it's from the 8-bit age (unless people beg me to change it).  My most pressing concern is dialog memory.  I can think of 2 things that would help:
1: A sort of new-line character that tells the text to move to the next line.  This way I can tell text to wrap to the next line without having to write hyphens and padding spaces into the script. 
FYI, each line can hold 19 chars, but a hanzi's right side can reach to the 20th spot. 
FYI, each text string ends with 0D0A ("\r\n"), so obviously I can't use those as return characters. 
2: A way to use 1 or 2 bytes to reference names or words from a word bank.  This alone could do wonders. 
Solve either of these and you get a name on the title screen. 

Caveat: There are times when the game gives you 2 choices in the text box (e.g. at an inn).  I have to make the top line 16 chars long in this case. 
In battle mode when a command is selected it displays over the person's max HP.  It would be nice if it would display right, or not at all. 

I can definitely change "Atk " to "Fight" with improvised tiles if you'd like.  It's impossible to make "Attack" look good in that space.

ROM Hacking Discussion / Re: FF7 NES Chinese Translation
« on: August 24, 2008, 05: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. 

ROM Hacking Discussion / Re: FF7 NES Chinese Translation
« on: August 24, 2008, 03: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. 

ROM Hacking Discussion / Re: FF7 NES Chinese Translation
« on: August 24, 2008, 03: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. 

ROM Hacking Discussion / Re: FF7 NES Chinese Translation
« on: August 24, 2008, 12:12:37 pm »
I have a very special announcement to make...
The 90% translation patch is ready for you to try!

It's on MediaFire...

ROM Hacking Discussion / Re: FF7 NES Chinese Translation
« on: August 21, 2008, 06: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. 

ROM Hacking Discussion / Re: FF7 NES Chinese Translation
« on: August 20, 2008, 02:55:41 pm »
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  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. 

ROM Hacking Discussion / Re: FF7 NES Chinese Translation
« on: August 18, 2008, 02: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. 

ROM Hacking Discussion / Re: FF7 NES Chinese Translation
« on: August 14, 2008, 12:15:21 pm »
Because no one asked for it, and because I can, here is the character table:
Code: [Select]

I'm pleased to say that I have finished transferring the original game's script to mine (though I haven't tried applying it yet to see if it fits).  Now what's left are about a hundred lines I have to translate (and I might ask for help).  I also have to figure out the context of these lines before I decide what they even mean.  The game's dialog is completely static, as in no names or numbers are loaded into it externally.  If I must, I plan to study the battle text engine to see if I can do this.  I may be able to save memory every time a character's name is mentioned. 

They changed around some text in the Lifestream scene, the final confrontation scene, and replaced the final FMV with an epilogue.  These somewhat pull away from the authentic FF7 experience, but they were also opportunities to work in nods to Crisis Core and Advent Children. 
In Cloud's Lifestream reminiscence, flashback exposition is greatly reduced, but when they talk about Zack they add a the bit about the Buster Sword (这把大刀也是Zack的) shortly before pulling out of the Lifestream, finding the 'real Cloud'.  I took this as a cue to add a line from the ending of Crisis Core (English subtitle of Japanese-spoken sub) to signify this moment of revelation.  I'm actually a little proud of this.
The ending would have benefited more from an animation than from a mediocre epilogue which verbally describes the scene of birds flying over abandoned Midgar.  I’m writing a new one that borrows heavily from Marlene's prologue from Advent Children.

I still need to improve the text-wrapping script.  I just hope it won't increase the memory beyond what I'm allowed to use. 
The only bad news is that I think I am causing a display bug in animated backgrounds.  I will do a diff later on to investigate. 

I think I’ll remove the “最终幻想7” from the title screen to add in credits:
Shenzhen Nanjing Technologies
Translation: Lindblum
Thanks: LittleChiba,ZhongTian
I was unable to contact these people, so I can only assume they’d be glad I used their documents to the fullest.

ROM Hacking Discussion / Re: FF7 NES Chinese Translation
« on: August 12, 2008, 08:20:00 pm »
Eureka, why didn't I think of this sooner?  Some lines repeat.  Some lines repeat a lot.  Some long lines repeat (Especially in the Alfred vs EDK play).  I can just throw the pointer references onto one of them and erase the rest.  With the saved space I can restore some of the text I truncated. 

The dialog is close to 60% done.  It's trickier for me to do it near the end, becuase they chopped apart Disc 2 after Reunion, and some portions use new text.  The ending seems like they rushed it, but I'll have to play it to see first before I pass judgment. Rumor has it they removed the Highwind, so you use the Tiny Bronco to get around.  Sometimes I get the feeling the game is an elaborate reverse-engineering of FF3j.  Maybe the Nautilus code is hiding in there somewhere, and I can spawn it onto the map with a few edits...? 

I've extracted big lists of avatars from Super Robot Wars 2 (GB) and 3 (SNES).  I don't really see "perfect" avatars for Heidegger or Corneo yet.  I DO have avatars for cases where I would decide to make them look like Speed Racer, Quentin Tarantino, Klaus Kinski, Larry King, or some kid who belongs on the cover of Tiger Beat.  There are a couple that might work, but I can't find other games that the existing avatars may have come from.  I want to maintain artistic integrity. 
There may be extra avatar tile space in the ROM, so giving faces to the faceless should be easy as pickle pie. 

ROM Hacking Discussion / Re: FF7 NES Chinese Translation
« on: August 11, 2008, 05:10:25 pm »
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. 

ROM Hacking Discussion / Re: FF7 NES Chinese Translation
« 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.

ROM Hacking Discussion / Re: FF7 NES Chinese Translation
« on: August 11, 2008, 01:37:50 pm »
Here goes, it's on MediaFire...

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!

ROM Hacking Discussion / Re: FF7 NES Chinese Translation
« 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.

ROM Hacking Discussion / Re: FF7 NES Chinese Translation
« 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 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! 

ROM Hacking Discussion / Re: FF7 NES Chinese Translation
« on: August 07, 2008, 11:08:23 am »
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...

ROM Hacking Discussion / FF7 NES Chinese Translation
« 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.

ROM Hacking Discussion / FF7 NES Chinese Translation
« 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?

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:
*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!

ROM Hacking Discussion / 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!

Pages: 1 2 3 4 [5]