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

Author Topic: Final Fantasy III English Translation for NES (FFIII: Refurbished)  (Read 39701 times)

A.D.R.I.A.N

  • Full Member
  • ***
  • Posts: 108
    • View Profile
Re: Final Fantasy III English Translation for NES (FFIII: Refurbished)
« Reply #220 on: June 25, 2017, 04:25:27 pm »
I tested the patch, and it works!

Chaos Rush

  • Full Member
  • ***
  • Posts: 173
    • View Profile
Re: Final Fantasy III English Translation for NES (FFIII: Refurbished)
« Reply #221 on: June 25, 2017, 07:52:58 pm »
Hey, Chaos Rush.
I solved a multiply bug.
It was because the MMC5 patch did not handle the IRQ well.

Try patch on this link.
https://www.dropbox.com/s/spywbo4qe8gyygx/FF3MMC5-multiplybugfix.zip?dl=1

I am pleased if it will help your project ;)
Thank you so much for this!

So I guess this means I'm not going to do an MMC3 w/ illegal expanded banks after all. I'll release an updated patch hopefully within the next week or so. Again, thank you soooooo much! I was gonna redo the entire thing while keeping the original mapper (doing what the ad0220 translation did) but the only reason I was gonna do it was because of the multiply bug with the MMC5 patch.

When I have time I'll apply this patch as well as fix some typo's, and then this will finally be done once and for all :)

Rodimus Primal

  • Hero Member
  • *****
  • Posts: 745
    • View Profile
Re: Final Fantasy III English Translation for NES (FFIII: Refurbished)
« Reply #222 on: June 27, 2017, 11:02:05 am »
Thank you so much for this!

So I guess this means I'm not going to do an MMC3 w/ illegal expanded banks after all. I'll release an updated patch hopefully within the next week or so. Again, thank you soooooo much! I was gonna redo the entire thing while keeping the original mapper (doing what the ad0220 translation did) but the only reason I was gonna do it was because of the multiply bug with the MMC5 patch.

When I have time I'll apply this patch as well as fix some typo's, and then this will finally be done once and for all :)

This is awesome news.

Bregalad

  • Hero Member
  • *****
  • Posts: 2501
    • View Profile
Re: Final Fantasy III English Translation for NES (FFIII: Refurbished)
« Reply #223 on: June 28, 2017, 10:43:34 am »
I still hold that compressing script and leave the game on 512k MMC3 is the best option.
I found the mediafire like you gave me months ago, but I don't know how I should format those 10 files and attempt at compressing them with my program. In particular, I'd like to know how those / and those [xx] works exacly, and if there's an implied end marker at the end of the "messages".

yasu

  • Jr. Member
  • **
  • Posts: 5
    • View Profile
Re: Final Fantasy III English Translation for NES (FFIII: Refurbished)
« Reply #224 on: June 29, 2017, 06:55:15 am »
Thank you so much for this!

So I guess this means I'm not going to do an MMC3 w/ illegal expanded banks after all. I'll release an updated patch hopefully within the next week or so. Again, thank you soooooo much! I was gonna redo the entire thing while keeping the original mapper (doing what the ad0220 translation did) but the only reason I was gonna do it was because of the multiply bug with the MMC5 patch.

When I have time I'll apply this patch as well as fix some typo's, and then this will finally be done once and for all :)

I am glad that it is useful :thumbsup:
Thanks to the project of Chaos Rush and Kea, I was able to learn about MMC5 and IRQ.
Thank you too ;)

Kea

  • Jr. Member
  • **
  • Posts: 46
    • View Profile
Re: Final Fantasy III English Translation for NES (FFIII: Refurbished)
« Reply #225 on: June 29, 2017, 07:53:02 pm »
For my part I wasn't making any progress on the raster IRQ issue, so thank you for fixing that last issue  :thumbsup:

yasu

  • Jr. Member
  • **
  • Posts: 5
    • View Profile
Re: Final Fantasy III English Translation for NES (FFIII: Refurbished)
« Reply #226 on: July 02, 2017, 10:11:32 am »
For my part I wasn't making any progress on the raster IRQ issue, so thank you for fixing that last issue  :thumbsup:

I also had a lot of difficulty with this issue :-\
I hope you can use it for your project as well :)

Chaos Rush

  • Full Member
  • ***
  • Posts: 173
    • View Profile
Re: Final Fantasy III English Translation for NES (FFIII: Refurbished)
« Reply #227 on: July 03, 2017, 02:20:03 am »
v1.4 has been submitted to RHDN for approval! Here is the changelog:
Quote
v1.4 - July 2nd, 2017

- major bug regarding multiplying enemies fixed (credit to yasu)

- several typos fixed

Major thanks to yasu for fixing the bug regarding multiplying enemies! And thanks also to Rodimus Primal for pointing out typo's that I've also fixed in this release.

July 03, 2017, 02:33:27 am - (Auto Merged - Double Posts are not allowed before 7 days.)
I still hold that compressing script and leave the game on 512k MMC3 is the best option.
I found the mediafire like you gave me months ago, but I don't know how I should format those 10 files and attempt at compressing them with my program. In particular, I'd like to know how those / and those [xx] works exacly, and if there's an implied end marker at the end of the "messages".
Sorry for the late reply and not explaining it when I sent you those text files. The / are line breaks, and the [stuff] are name codes. Here's a (incomplete) list of them:
Spoiler:
[10][00] = Player 1's level
[10][01] = Player 1's job
[10][02] = Player 1's name
[10][03] = Player 1's head equipment
[10][04] = Player 1's body equipment
[10][05] = Player 1's arm equipment
[10][06] = Player 1's right hand equipment
[10][07] = Player 1's left hand equipment
[10][30] = Player 1's current HP
[10][31] = Player 1's total HP

[11][00] = Player 2's level
[11][01] = Player 2's job
[11][02] = Player 2's name
[11][03] = Player 2's head equipment
[11][04] = Player 2's body equipment
[11][05] = Player 2's arm equipment
[11][06] = Player 2's right hand equipment
[11][07] = Player 2's left hand equipment
[11][30] = Player 2's current HP
[11][31] = Player 2's total HP

[12][00] = Player 3's level
[12][01] = Player 3's job
[12][02] = Player 3's name
[12][03] = Player 3's head equipment
[12][04] = Player 3's body equipment
[12][05] = Player 3's arm equipment
[12][06] = Player 3's right hand equipment
[12][07] = Player 3's left hand equipment
[12][30] = Player 3's current HP
[12][31] = Player 3's total HP

[13][00] = Player 4's level
[13][01] = Player 4's job
[13][02] = Player 4's name
[13][03] = Player 4's head equipment
[13][04] = Player 4's body equipment
[13][05] = Player 4's arm equipment
[13][06] = Player 4's right hand equipment
[13][07] = Player 4's left hand equipment
[13][30] = Player 4's current HP
[13][31] = Player 4's total HP

[14][XX] = displays XX amount of spaces

The [.] are ellipses and appear in-game as a '...' squished onto a single tile. There is no end marker for the end of the messages - my tool OnionText just puts an 0x00 byte at the end of each message when compiling. Also, for dialogues that can't be displayed in a single text box (meaning that the message will scroll after four lines), there has to be a / at the end of the message or else it will display weirdly in-game by showing double (or triple or quadruple depending on how much room is shown in the text box) of the last line shown.

To get a better understanding of how the text formatting works, I recommend messing around with the translation using my OnionText tool, which has a text preview that updates as you type.
« Last Edit: July 03, 2017, 02:33:27 am by Chaos Rush »

Bregalad

  • Hero Member
  • *****
  • Posts: 2501
    • View Profile
Re: Final Fantasy III English Translation for NES (FFIII: Refurbished)
« Reply #228 on: August 07, 2017, 10:51:31 am »
So, I finally got to write myself the proper script conversion tool and ran my compression algorithms on them. I do no know which table you used, depending on where the letters are placed it could affect the compression ratio a little. I made up some values just to fit them (punctuation symbols, which differs from the japanese anyway).

I assumed all messages are finished by a $00 value, and that empty message are only a $00 values. By making them point to an existing $00, those could be optimized out (but I didn't do that yet).

The script contains once a weird [*C] hyphen I have no idea what it means (bank2, message 74), so I just used [0C] instead as a placebo value.

For the whole script I have 96548 bytes. The best compression is with the Huffman algorithm. Huffman reduces the script to 61532 bytes, however this includes a length table, but since all messages are $00 terminated, the length table can be optimized out. There is a total of 1732 messages, meaning that by suppressing the 16-bit length table, 3464 bytes can be suppressed and the total size of compressed script would be 58068 bytes, a good 40% savings on the uncompressed script.

Huffman is however not the most practical compression to implement, it is simple enough but would be slow for rare symbols as it requires going through the entire table of frequent symbols first, and figure we're not decoding any of them. This slowdown could potentially cause problems if implemented as a romhack in a game that does not expect a slowdown here.

Byte pair/DTE/dictionary based encodings works poorly because some messages in bank2 uses symbols in the $30-$4f range, blocking this range which would normally be used for that. So my temporary estimate as how this would be done is leave bank 2 uncompressed and compress the other banks. Then I add uncompressed bank 2's size to estimate the total. The most interesting is the recursive byte pair encoding (basically it's exactly the compression used in AW Jackson's translation, except a byte pair can point to another byte pair, making the algorithm more powerful). So unlike Huffman this compression alrogithm is almost free, it's about 20 assembly instructions to get it working. Using this we could fit everything in 65783 bytes, a good ~31% of savings on the original size. But by altering the table in order to "pack" all used symbols near the end of the table as much as possible this ratio could be improved, as they'd be room for more byte pairs. Here I have byte pairs between $15 and $60. I'm fairly sure it could be enlarged to include at least $15 to $80, if this can be done, then maybe we can reach compression ratio almost as good as huffman, but it might require some hacking. For example the tiles used to make window borders or other things not present in the script should be moved "up", and all used symbols should be moved "down".

Please tell me if any of those sizes would make the script fit in a 512kb ROM. If not, then I'll have to look at whether it's possible to compress the graphics.

aspiringnobody

  • Jr. Member
  • **
  • Posts: 10
    • View Profile
Re: Final Fantasy III English Translation for NES (FFIII: Refurbished)
« Reply #229 on: September 06, 2017, 10:07:05 am »
Possible bug:

Shiva's sleep spell has garbled graphics.  The damage spell appears unaffected.

yasu

  • Jr. Member
  • **
  • Posts: 5
    • View Profile
Re: Final Fantasy III English Translation for NES (FFIII: Refurbished)
« Reply #230 on: September 30, 2017, 01:08:09 pm »
Possible bug:

Shiva's sleep spell has garbled graphics.  The damage spell appears unaffected.

This bug also occurs because the value stored in the IRQ counter is a relative value.
You can fix it by rewriting the following bytes.

Address $64099-$6409A

Original
Code: [Select]
19:8089:A9 6E     LDA #$6E
Fixed
Code: [Select]
19:8089:A9 96     LDA #$96
However, the behavior has changed slightly, such as an extra line remaining on the top of the raster effect.
I have not found the cause. :(

Donkeyjack

  • Newbie
  • *
  • Posts: 3
    • View Profile
Re: Final Fantasy III English Translation for NES (FFIII: Refurbished)
« Reply #231 on: November 01, 2017, 07:10:35 am »
How do I apply the patch?

Sephirous

  • Sr. Member
  • ****
  • Posts: 363
    • View Profile
Re: Final Fantasy III English Translation for NES (FFIII: Refurbished)
« Reply #232 on: November 20, 2017, 10:11:55 pm »
Use Lunar IPS, I find it works the best. Find an unaltered Japanese Final Fantasy III ROM, Then apply the patch to it.  :thumbsup:
Hacking Nes Roms Is Like Making Sweet Passionate Love, Hacking Snes Roms Is Like Having Your Bitchy Mother In Law Scream At You.

AsheManosse

  • Newbie
  • *
  • Posts: 2
    • View Profile
Re: Final Fantasy III English Translation for NES (FFIII: Refurbished)
« Reply #233 on: December 02, 2017, 03:41:47 pm »
@ Chaos Rush:
I have thoroughly reviewed this forum topic, and have looked into alternate translations.  After extensive research, it appears to me that the result of this project is probably the most definitive English version of the original FF3 game.  The only problem is... this project is doomed to only be playable on PC and RetroPie devices... and not on the original NES hardware......  :'(

***Issue Recap:*** This project uses a MMC5 mapper patch to increase the PRG filesize from 512KB to 1024KB to make it easier for translation.  The original FF3 Japanese game and ROM use MMC3 mapping and 512KB for PRG.  To play this ROM on the actual NES hardware, you have to venture into repro cartridge territory (via donor cartridge, INL cartridge, etc.).  The issue is... no actual NES games used more than 512KB for PRG...

Alternatives Using the Current 1024KB MMC5 Solution:
  • An excessively expensive option would be to use an Everdrive N8 cartridge, but even they only support up to 512KB for PRG (since no NES games used more than 512KB), so it is unlikely this is possible (anyone please correct me if I’m wrong; i.e. they’ve loaded the ROM onto their Everdrive N8 and tested it).
  • A poor alternative, though still worth mentioning, is that it *might* be playable on the NES Classic (if anyone has done this successfully, please let us know!).

To be clear, I am not interested in repro carts or ROM hacks for a different gameplay experience.  I am interested in making my own personal NES game cartridges for games that never existed, for games that SHOULD have existed.

On behalf of myself and other interested members of the community, we urge you to find time to converse further with Bregalad to see if it’s even possible that his compression methods are suitable to fit within the 512KB MMC3 solution.  The translation is already complete and Bregalad has already done part of the work.  With a little more involvement on your end, it may be possible to immortalize this project by making it not only the definitive English translation, but also playable on the original NES hardware. 

Pennywise

  • Hero Member
  • *****
  • Posts: 2162
  • I'm curious
    • View Profile
    • Yojimbo's Translations
Re: Final Fantasy III English Translation for NES (FFIII: Refurbished)
« Reply #234 on: December 03, 2017, 08:19:33 am »
It appears there's still some bugs with the MMC5 conversion, but assuming those get ironed out, I see no reason for going back to a smaller ROM.

People like to point out that they can't play 1MB ROMs on hardware, but it's not like something can't be made to support it. The MMC5 was specifically designed to handle ROM sizes up to 1MB.

The best bet is to start emailing etc those brilliant people who design flashcarts etc and let them know that there is a demand for such a product.

KingMike

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 6261
  • *sigh* A changed avatar. Big deal.
    • View Profile
Re: Final Fantasy III English Translation for NES (FFIII: Refurbished)
« Reply #235 on: December 03, 2017, 03:28:14 pm »
Could be a problem for those flashcart makers if they only physically contain the RAM to support 512+512 games.
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."

AsheManosse

  • Newbie
  • *
  • Posts: 2
    • View Profile
Re: Final Fantasy III English Translation for NES (FFIII: Refurbished)
« Reply #236 on: December 03, 2017, 08:00:22 pm »
People like to point out that they can't play 1MB ROMs on hardware, but it's not like something can't be made to support it. The MMC5 was specifically designed to handle ROM sizes up to 1MB.

The best bet is to start emailing etc those brilliant people who design flashcarts etc and let them know that there is a demand for such a product.

You speak as if it's really that simple.  To date, there are no physical NES cartridges that support 512KB on PRG (legit or not), and no NES games ever required more than this.  What incentive would there be for a flashcart designer to put effort into designing and attempting to sell a cart that may be usable for only a few games, to a very narrow audience? 

And it's not just as simple as making a cartridge support more than 512KB on the PRG-ROM chip. Does the MMC5 mapping support a CHR-RAM and W-RAM configuration (this is specific to the FF3 pcb design; Source: http://bootgod.dyndns.org:7777/profile.php?id=1507)? There can definitely be more challenges depending on the uniqueness of the original cartridge created to house a specific game.

I realize that not everybody cares about playing this game on the original hardware, but at least trying to create a product that can be played on the original hardware gives weight to the authenticity and effort you put into your work.  For this project specifically, it isn't just some balancing hack or remixed gameplay, it's much closer to the finished work of what Nintendo should have delivered to the U.S. and Europe, so that fans of the series could experience games like FF3 on it's intended console.

Bregalad

  • Hero Member
  • *****
  • Posts: 2501
    • View Profile
Re: Final Fantasy III English Translation for NES (FFIII: Refurbished)
« Reply #237 on: December 04, 2017, 04:31:44 am »
People like to point out that they can't play 1MB ROMs on hardware, but it's not like something can't be made to support it. The MMC5 was specifically designed to handle ROM sizes up to 1MB.
Indeed, and the MMC5 was also specifically designed to work with CHR-ROM, while Final Fantasy III was specifically desigend to work with CHR-RAM. Porting FF3 to MMC5 assuming CHR-RAM is available is a bad idea to begin with, which is just as non-standard as using an oversize MMC3.

Quote
Could be a problem for those flashcart makers if they only physically contain the RAM to support 512+512 games.
It is not possible per se to re-use the CHR-ROM flash chip to expand the PRG-ROM chip as they are on completely different bus. If this was a homebrew programmed from scratch it'd be certainly possible to do so and read the CHR-ROM chip from VRAM and use data as-it, but for a game already programmed to function a certain way this is almost unthinkable - or at least it would require very extensive hacking. Not to mention FF3 was made to use CHR-RAM anyway, and uses several graphical effects which totally relies on CHR-RAM.

Reiska

  • Full Member
  • ***
  • Posts: 117
    • View Profile
Re: Final Fantasy III English Translation for NES (FFIII: Refurbished)
« Reply #238 on: December 06, 2017, 02:10:50 am »
You speak as if it's really that simple.  To date, there are no physical NES cartridges that support 512KB on PRG (legit or not), and no NES games ever required more than this.  What incentive would there be for a flashcart designer to put effort into designing and attempting to sell a cart that may be usable for only a few games, to a very narrow audience? 

And it's not just as simple as making a cartridge support more than 512KB on the PRG-ROM chip. Does the MMC5 mapping support a CHR-RAM and W-RAM configuration (this is specific to the FF3 pcb design; Source: http://bootgod.dyndns.org:7777/profile.php?id=1507)? There can definitely be more challenges depending on the uniqueness of the original cartridge created to house a specific game.

I realize that not everybody cares about playing this game on the original hardware, but at least trying to create a product that can be played on the original hardware gives weight to the authenticity and effort you put into your work.  For this project specifically, it isn't just some balancing hack or remixed gameplay, it's much closer to the finished work of what Nintendo should have delivered to the U.S. and Europe, so that fans of the series could experience games like FF3 on it's intended console.

Where there's a will, there's a way - just look at the MSU-1 on the SNES, which is a special chip for advanced audio playback that was explicitly designed by an emulator author and has since been produced in cartridge form by the hobbyist market.

If enough advanced NES translation projects or ROM hacks were produced to drive demand, someone would probably get it done eventually.

Asaki

  • RHDN Patreon Supporter!
  • Full Member
  • *****
  • Posts: 147
    • View Profile
Re: Final Fantasy III English Translation for NES (FFIII: Refurbished)
« Reply #239 on: December 17, 2017, 02:45:30 am »
An excessively expensive option would be to use an Everdrive N8 cartridge, but even they only support up to 512KB for PRG (since no NES games used more than 512KB), so it is unlikely this is possible (anyone please correct me if I’m wrong; i.e. they’ve loaded the ROM onto their Everdrive N8 and tested it).
"Excessively expensive"? The EDN8 is actually one of the more affordable flash carts that Krikzz offers, especially when you consider the wealth of features it offers, and the huge library of titles. Compare that to what it would cost you to purchase some of those cartridges.

Unfortunately, MMC5 support on the EDN8 is rather poor, and few people have programmed alternate mappers, so that idea is out.