Author Topic: [PSX] FFVII International all-in-one translation package (BETA 2)  (Read 65413 times)

Gemini

  • *
  • Posts: 260
  • Not learner's Guru
    • View Profile
    • Devil Hackers
Final Fantasy VII International (SLPS 1057/58/59)
All-in-one translation package

I'm currently planning to release the hacking tools I'm making for FF7i (Playstation only, of course). They are meant to let you do pretty much all you'd ever want to do for hacking text, graphics, and whatever is needed for a translation. Hacking at the current state:
  • Soft subtitles for the two movies that need to be translated;
  • Inserts dialogue text just fine. I tried reducing duplicate scripts as much as possible by checking which strings are actually used by events. The script is more or less 1,3 MB in UTF-8;
  • Automatic insertion, expansion, and relocation of the files inside the FIELD directory;
  • Automatic resize of most dialogue windows on reinsertion;
  • Supports extraction of tutorial segments in maps (no reinsertion of these yet, will be done soon);
  • Implemented Kernel text injection, which also supports the internal real-time lzs compression and some graphical tricks to fit more text;
  • Automatic full regeneration of WINDOW.BIN, which contains system textures (fonts, hud elements, etc...) and the width table for fonts;
  • Can rebuild SCENE.BIN automatically and in a few instants, inserting all monster names and their skills. Can also replace those annoying bits of dialogues embedded directly inside the AI scripts;
  • Implemented a variable width font for the 8x8 font, which is used only in Japanese versions of the game [FF7i only];
  • Extraction and insertion of strings from the world map module;
  • M-Def fix, as I've already done with the UK and US builds.

To do:
  • Better and complete support for menu translation. This is being implemented through asm scripts, very easy to manage [FF7i only];
  • Procedures to extract and replace textures for mini-games.

This program was born as an experiment I wanted to do with this game, to see how hard it is to hack FF7 nowadays; years ago a friend of mine translated the game into Italian with the use of almost no tools other than a couple compressors, a rudimentary repointer, and Translhextion. This unfortunately resulted in a somewhat limited work which had a few bugs and flaws here and there. Also, I was a bit disappointed by the current all-purpose hacking programs that aren't really suitable for a translation (they don't even dump to txt or replace duplicates efficiently), not to mention the fact that they only support occidental versions (boo :P).
The final product will be released in the form of source code (as a Visual C++ 2005 project) when I get enough work to make a full text translation possible. Before you ask, it can support the occidental releases, but it needs several changes to the code to do so. Oh, it will probably support the original Japanese FF7, too.

Tests showing the program at work:



Feedback topic:
http://forums.qhimm.com/index.php?topic=10018.0

Release date: when it's done. :-P
« Last Edit: 2018-04-24 18:28:47 by Covarr »

hotdog963al

  • *
  • Posts: 236
  • Horse
    • View Profile
    • Horse HQ
You sir, are a god among men.

m35

  • *
  • Posts: 52
    • View Profile
    • jPSXdec
Indeed. I am stunned that not only have you the ability to hack this game into submission, you have taken (what I assume is) a great amount of time to do so. Then on top of it all, you are willing to release the source code, which is almost unheard of for most miraculous feats of hacking (see emulators and 90% of the original PSX hacking tools).

I am dying to dig into this code of yours (especially the Soft subtitles solution). :)

Thank you very much Gemini for your generosity.

Covarr

  • Covarr-Let
  • Administrator
  • *
  • Posts: 3940
  • Just Covarr. No "n".
    • View Profile
Win.

Is it safe to assume that this doesn't work with the US release of FF7?

Gemini

  • *
  • Posts: 260
  • Not learner's Guru
    • View Profile
    • Devil Hackers
It is possible to support all the versions, but it's gonna need some changes here and there (and I'm not really interested in doing so :evil:). All the formats are 100% identical and only some things vital to the translation are located inside the code move around with each different build of the game. I think the only things that can't be ported are:
  • the menu translation scripts, as they actually change the code inside files, and the offsets are different;
  • soft subtitles, again because it's code and this stuff likes to move around;
  • the 8x8 font code, as it's pretty much unused in non-Japanese releases.

koral

  • Guest
wow Gemini, you really are awesome!

I totally agree with m35, your gesture of sharing the code is uncommon, and extremely generous.

Thankyou!  :-D

Chocobo

  • *
  • Posts: 35
    • View Profile
Omg, we've found the God of hackers...

Anyway, like everyone has said, very nice thing to do... Giving away the code. :O

Unknown Master

  • *
  • Posts: 10
    • View Profile
OMG...

Gemin: man, YOU SCARED ME!!!!!!!!! =D

Your tools are most perfect than I could imagine...

Many things of the game that I've been translated was very hard (Menus, because in some cases you have to expand manually the windows, some texts in the battle with some specific enemies (like Guard Scorpion, the same of your screenshot and many others), I translated it with a Hex Editor, after extract all files inside SCENE.BIN).

Resuming: I lost A LOT of time, but I could translated all that I want, EXCEPT the movies, like I said before on another topic. FFVII PSX Movies probably are encoded by a specific tool created by Square, for his games... The videos are different of normal videos of the PSX games.

Gemini, when you release your tools, I'll be the first to download them, good luck for you, man. I like to collect translation tools.

Go ahead, man, and never give up!!! I'll stay here waiting =P

See ya!

Gemini

  • *
  • Posts: 260
  • Not learner's Guru
    • View Profile
    • Devil Hackers

The layout in this submenu is truly horrible. Making it all fit perfectly is no simple task (look at the full Yoshiyuki name), and still I'm not sure it will work for every version. Anyway, I will try and add somewhere a commented instruction so that the translators can disable those useless HP/MP/LV stats in the case they'd need more space.

Your tools are most perfect than I could imagine...
Hold your horses. There's still so much work left, so they are far from even being good enough as is, not for a release at least. I've been working for less than a week after all. >_>

Quote
FFVII PSX Movies probably are encoded by a specific tool created by Square, for his games... The videos are different of normal videos of the PSX games.
They are no different from the standard format and they were probably generated with the official tool for such task. The only real difference is the added info about the camera.

Unknown Master

  • *
  • Posts: 10
    • View Profile
Hold your horses. There's still so much work left, so they are far from even being good enough as is, not for a release at least. I've been working for less than a week after all. >_>

Ok, Gemini, I know, there's still so much work left... And I know that's very hard to code a tool to translate FFVII. We'll stay here, waiting for your tool. Good luck, and never give up! Your idea is really amazing.

They are no different from the standard format and they were probably generated with the official tool for such task. The only real difference is the added info about the camera.

So, Gemini, please, can you make me a favor? If the videos are generated with the official tool, if you could, test my "little" tutorial about video reinsertion:

1 - To convert the videos, you can use PSXVideo, jPSXdec or PSX Movie Converter, this tools are able to play/rip any movie from FFVII PSX, to .avi format (it MUST BE uncompressed .avi, in order to reconvert to STR later). NOTE: I converted ONLY the subtitled videos, like JENOVA_E.MOV and the ending scene, the subtitled videos.

2 - During this process, write on a new file (notepad) the video specifications, both tools will show you (like FPS, Audio Channels, Width, Height (probably those values must be 320x224), etc.) I recommend PSX Movie Converter, the information are most efficient. If you use jPSXdec, it'll show you 13 FPS, and FFVII PSX videos uses 15 FPS, so you can rip a .avi file with 13 FPS by the jPSXdec, but it's possible change it to 15 FPS, using VirtualDub. Finally, open both original videos in a Hex Editor and copy the original header to a single file. Save it. You'll need later...

3 - With the video in .avi format on your hands, and uncompressed, you can put a subtitle easily with a tool like Subtitle Workshop, or similar. Personaly, I used it. Once more time, your subtitle MUST BE in .ssa format, in order to fix the subtitle over the original video permanently. I covered up the original subtitle with my new subtitle, with some effects to hide the original subtitle.

4 - Now, you can use VirtualDub with the plugin called "subtitler", the plugin open a subtitle ONLY in .ssa format. Open the .avi video on VirtualDub ("File->Open File"), go to "Video ->Filter" and choose subtitler plugin in the list. It'll ask for a .ssa subtitle. Choose it and you'll be able to see on VirtualDub two Videos: to Left - the original video, and to Right the video with your subtitle.

5 - Click on "Play" to see both videos played at the same time (there's a button for it in the VirtualDub). If all it's ok, go to "File->Save as..." to save a new .avi file. MAKE SURE that the VirtuaDub can save the video UNCOMPRESSED, go to "Video->Compression" to see it... Save your new .avi file, and test if it works well...

6 - It's time to reencode to STR again, you must use the Movie Converter 32 (official Sony STR Converter), or STR Converter. Remember the video specifications? It's time to use here! Open your new .avi subtitled, and choose convert "*.avi -> *.str." Put all video specifications correctly (FPS, Audio Channels, Width, Height, etc...) and convert it! You'll get a new STR file, with your own subtitle!

NOTE: the new edited video MUST HAVE A SMALLER SIZE than the original. Why? For a simple reason: you'll use the CDMage to reinsert the video, and if the video has a larger size, CDMage will not allow the file insertion, in FFVII PSX Disc. Vide file with a small size, would be reinsert without any problem, because the CDmage will ask if you want to fill the file with 00 00 00. So, the file will stay with the original size.

7 - Now, you must change the header file, copy the original header from JENOVA_E.MOV, and past it in the new edited video (JENOVA_E.STR). Rename it to original name (in this case, JENOVA_E.MOV), and play it on a STR Player (PSX Movie Convert or PSXVideo =P) to test it... It works well? Good =P It's time to reinsert it into the game.

8 - Open FFVII Disc Image in the CDMage, open the MOVIE folder, and reinsert your new edited video JENOVA_E.MOV. Fill it with 00 00 00 and the file will be replaced!

9 - Now, use the ECCRegen to correct the EDC/ECC Sectors.

Gemini, please, try reinsert JENOVA_E.MOV this way, and test if the new edited video works into the game on a PSX emulator! I haven't tested yet, because I'm translating Alundra for PSX, and I don't have time to play FFVII now...

I'll pray to this method work...

See ya!





« Last Edit: 2009-06-27 14:50:36 by Unknown Master »

Gemini

  • *
  • Posts: 260
  • Not learner's Guru
    • View Profile
    • Devil Hackers
Sorry, but you should test your own methods if you really give a shit about what you write.
Anyway, your method will definitively fail, no matter how much padding you add or how many times you run ECC Regen (which is totally useless as CDMage takes care of regenerating sector fields). The additional info is at the beginning of EVERY video sector, not just at the beginning of the file.

Unknown Master

  • *
  • Posts: 10
    • View Profile
Ok, ok, man... I used this method, because yesterday I could reinsert the videos this way, because it's just an idea that I had in mind...

Like I said before, I don't have time to play FFVII by now, because I'm working on Alundra, translating to Portuguese Language, and my job in real life, takes from me all the time. So, I asked for you, or someone that's currently working on FFVII test the method, would be more easy than I start the game.

Anyway, thank you for you reply, it help me so much. I hope that you could find a way to edit those f***** videos.

All translation groups here in Brazil are almost givin' up... And I'm givin' up too. I search at this forum, and in the google too, but no one could edit or reinsert those videos.

See ya! Once more time, thanks!
« Last Edit: 2009-06-28 18:34:47 by Unknown Master »

UltraRamsus

  • Guest
Nice work! Original FF7 sounds more interesting actually, since its quite different to what we're used to.

haquel

  • Guest
I hope you will release your program soon ! I'm so excited :D !
« Last Edit: 2009-08-29 11:34:02 by haquel »

hotdog963al

  • *
  • Posts: 236
  • Horse
    • View Profile
    • Horse HQ
Any progress updates Gemini?

I've stopped working on any FF7 modding, as I'm going to be using your tool when it's finally released whenever that may be!  :-)

Gemini

  • *
  • Posts: 260
  • Not learner's Guru
    • View Profile
    • Devil Hackers
I'm not sure if I can make a complete set of universal tools for all, but I'm working as usual on this project. This is the last thing I was able to implement. Hope you like it, it's still highly experimental and doesn't work with the ending very nicely, but it sure does with Jenova's movie.

EDIT: full support added for the ending now.

The first image represents what's actually in vram, the second what you see on a TV screen (or a resized emulator out). The thing works in hi-res, so the subs have to work exactly the same way. As you can see, there's no trace of the original subs. The routine takes care of removing them entirely with a nice and clean DMA trick.

Now I've got only to fix a bug with the second text bank and add a procedure to detect what CD is currently inserted.
The softsub hack is officially done.

EDIT 2: dialog insertion seems to work more or less perfectly. Tests done on the bombing mission:
http://www.youtube.com/watch?v=Nm7CGkyvY-8
http://www.youtube.com/watch?v=T-fN0GpEiRE

For those who cannot watch youtube movies (or if you're just lazy), screennies:
« Last Edit: 2009-12-26 14:38:53 by Gemini »

TheKeiron

  • Guest
I'm currently planning to release the hacking tools I'm making for FF7i (Playstation only, of course). They are meant to let you do pretty much all you'd ever want to do for hacking text, graphics, and whatever is needed for a translation. Hacking at the current state:
  • Soft subtitles for the two movies that need to be translated;
  • Inserts dialogue text just fine. I tried reducing duplicate scripts as much as possible by using a crc32 on the whole script segments. Some rooms are sightly different strings, so they are still dumped entirely, but I've also implemented a string duplicate database to fix this issue. The script is more or less 1,3 MB in UTF-8;
  • Automatic resize of dialogue windows on reinsertion;
  • Supports extraction of tutorial segments in maps (no reinsertion of these yet, will be done soon);
  • Implemented Kernel text injection, which also supports the internal real-time lzs compression and some graphical tricks to fit more text;
  • Automatic full regeneration of WINDOW.BIN, which contains system textures (fonts, hud elements, etc...) and the width table for fonts;
  • Can rebuild SCENE.BIN automatically and in a few instants, inserting all monster names and their skills. Can also replace those annoying bits of dialogues embedded directly inside the AI scripts;
  • Implemented a variable width font for the 8x8 font, which is used only in Japanese versions of the game [FF7i only];
  • M-Def fix, as I've already done with the UK and US builds.

To do:
  • Automatic insertion, expansion, and relocation of the files inside the FIELD folder;
  • Better and complete support for menu translation. This is being implemented through asm scripts, which very easy to manage [FF7i only];
  • Extraction and insertion of strings from the world map module;
  • Procedures to extract and replace graphics for minigames.



Will this include the ability to change any/all graphics? i.e. will we be able to replace the blocky character models with others like in the pc versions?

Gemini

  • *
  • Posts: 260
  • Not learner's Guru
    • View Profile
    • Devil Hackers
Nope. That's not part of any translation process, so it won't be included.

Gemini

  • *
  • Posts: 260
  • Not learner's Guru
    • View Profile
    • Devil Hackers
Seems like I don't have enough time to keep on developing this set of tools for the moment. For those who are still interested and would like to take a look at my work, here you can find an archive with the not-very-well-organized sources, which include assemblies (subtitle code is in there, check for SLPS/mdec), C++ source for dumper and inserter, and my personal data manipulation library (glib.rar, requires zlib and libpng). I haven't added any notes on which files to extract and where to place them for extraction (I was going to create a program just for that, but again time didn't allow me), so it's up to you figuring out what to do from the sources.

Good luck!
« Last Edit: 2010-04-13 14:58:02 by Gemini »

m35

  • *
  • Posts: 52
    • View Profile
    • jPSXdec
Seems like I don't have enough time to keep on developing this set of tools for the moment. For those who are still interested and would like to take a look at my work, here you can find an archive with the not-very-well-organized sources, which include assemblies (subtitle code is in there, check for SLPS/mdec), C++ source for dumper and inserter, and my personal data manipulation library (glib.rar, requires zlib and libpng). I haven't added any notes on which files to extract and where to place them for extraction (I was going to create a program just for that, but again time didn't allow me), so it's up to you figuring out what to do from the sources.

I was impressed that you were trying to tackle such an ambitious project. Thanks for your contributions and sharing your work thus far!

davoker

  • *
  • Posts: 11
  • Final Fantasy forever
    • View Profile
OMG! will be ready for when the BETA? valid for the Spanish PAL PSX version? WOWOWOWOW very interesting program, this program is better than Lasyan3?

Gemini

  • *
  • Posts: 260
  • Not learner's Guru
    • View Profile
    • Devil Hackers
will be ready for when the BETA?
Who said there was going to be a beta?

Quote
valid for the Spanish PAL PSX version?
Unless it's called International, the answer is "no".

Quote
WOWOWOWOW very interesting program, this program is better than Lasyan3?
Define "better".

davoker

  • *
  • Posts: 11
  • Final Fantasy forever
    • View Profile
About Lasyan3, it said that he already has a program to re-translate FF7 psx, automatically re-tap, makes larger text boxes and many more things, but has some bugs.

What of: "Unless it's called International, the answer is" no. "
The title of the Topic International puts xD wondered why, just a pity that is not apparent to the Spanish version U_U

The Beta I say that is what is usually done, nothing else

Aurangzeb56

  • *
  • Posts: 47
    • View Profile
    • YouTube
IF you dont mind me asking then are you translating all of the four discs of FFVII International or only the fourth Bonus disc which contains artworks and stuffs??

Prince Lex

  • *
  • Posts: 882
  • Opinionfact is Redundancy
    • View Profile
I think it's pretty obvious from the screenshots on this thread that the tool is used to edit the game-data of FF7 International. As you can see, the text uses roman letters instead of Japanese because his editor allows you to.