The above video goes away if you are a member and logged in, so log in now!
The steps were quite simple and generic.
1. Analyze the game disc.
2. Find LBA table.
3. Crack the LBA table and write tools to unpack/rebuild.
4. Analyze the files.
5. Guess compression types, get the compression details, write tools to compress/decompress.
6. Reverse internal structures of files of different kinds.
7. Write text dump/rebuild tools.
8. Write tools that would handle the gfx (some are plain old tm2, others like EFX are generally raw + clut that got swizzled to make it load much faster... so just some unswizzling/swizzling code was needed)
9. Make map of the files that can be processed automatically and those that need some more attention (additional text, changed formats, divided/merged files, etc).
10. Translate whatever is missing.
11. Do all the necessary fixes to the executable (some were made, others are still waiting for my free time).
12. Write a simple patcher that will do all the work.
13. Play the game.
Actually there were many other steps and some of them were repeated over and over, with lots of testing and stuff... But in the end it comes to some generic translation hacking algorithm .
As for the notes... Most of them exist (or not ) in my head... And in the form of the c/c++ code...
'Simple' is not a word most people would apply to this kind of work...
Originally Posted by ffgriever
Surely you realize that very few people reading this have even half a clue as to what is implied here...
Actually there were many other steps and some of them were repeated over and over, with lots of testing and stuff... But in the end it comes to some generic translation hacking algorithm
And since the true understanding of that code probably relies quite a lot on those 'notes in your head', I think very few even of experienced coders could follow some of that code without direct guidance by you. And that is exactly what we can't afford you to spend time on (nor do I think you really want to), when there are other projects to work on (both present and future).
As for the notes... Most of them exist (or not
) in my head... And in the form of the c/c++ code...
Best regards: dlanor
dlanor i agree on many of the points you have (i think even Sony would have some problems with what ffgriever has done here) if i am wrong
i think only square would be able to figure more out
please bare with me dyslexia is a pain
Well, I didn't actually imply that there is a complete and generic algorithm (thus automation is possible)... It's just that the basic steps are similar in all cases. Details of every single step might not necessarily be that obvious and simple.
Originally Posted by dlanor
But once one gets experience in this stuff, it actually becomes quite simple. Let's take compression algorithms for example. Many people think it's some kind of magic if you take an unknown file that you know nothing about, guess what is the compression type and then get all the details of the used compression method (to the point, when writing working compressor and decompressor is possible - quite often better compressor than the original one... It's a personal challenge for me... and most likely for everyone else that does this stuff). But the truth is that all I had to do was to read few pages of a book on compression algorithms, then practice a little by 'compressing' and 'decompressing' simple strings on sheet of paper... Most of the games use some lzss variants, which are the easiest ones (well, except for the null or rle, but these can be done by 4 yrs old kids). For some kinds of compression methods, you can't actually decompress or compress anything without knowing the exact implementation, so some disassembling/debugging skills are needed (well, they can make things easier even for some simple lzss+rle implementations which are quite common in games). Really, one has to have some basic knowledge, think logically, and be perceptive... then simply try and not give up. Soon things will get simpler... I guess everyone has his own algorithms to rule out some things and check the others. I believe there is no generic way to do that. It's not something one can be taught... But it's really easy.
And everything else... Well, you have to know the platform to know what to expect and what will certainly not appear. It's quite often guessing and then checking if the guess was right, but it has to be an educated guess.
I'm not really a master of it. I'm not an excellent coder (rather average in fact), neither I'm that much familiar with the ps2 (there is so many things that I don't know). My IQ is pretty average (or so the tests say). It's just that the things ain't really that hard as most of the people think (if I did it, it means, anyone can). It just requires some time to get everything right... But is definitely in the reach of everyone that wants to grasp it... Perseverance is really all that is needed. It is good if one has fun doing this .
Now, let's change the tone of this post as it has gotten really weird (or am I exaggerating?). I have some changes ready for the 0.20... It's just that I was recently occupied by so many other projects. Nevertheless, the conversion is almost complete... After 0.20 there should be only some minor kinks left.
Thanks! and a question about missing items...
Thanks! and a question about missing items... –
First of all I wanted to say that I registered here just so I could say THANKS for this awesome conversion. I own the original FFXII but never bothered with the IZJS because of the Japanese text, so this was a really cool thing to hear about. A friend who was aware of this project and playing the results sent me the converted ISO and I'm using it with PCSX2 0.9.7. So far it's utterly awesome. The turbo button alone makes this a thousand times better than the original, but the job system, controllable Espers and guests, different spell and item spawns....marvelous! So a thousand thanks, ffgriever, for the hard work.
Now, a question. Was there an issue with missing items or incorrect items from chests in earlier versions of the patch? I don't see anything mentioned in the changelog file. The ISO I'm using was sent by a friend, as I said, and I've no idea whether he used an older version of the patcher to create it or not. I ask because I've got an issue with two missing spells in my current playthrough -- Dispel and Sleep. I've checked the many FAQs and maps that are available and they all say the same thing: Dispel is found in a chest in Tomb of Raithwall, Royal Passage, the one at the extreme end of the northernmost corridor; Sleep is found in Ogir-Yensa Sandsea, Platform 1/East Tanks, in a chest at the extreme southern edge.
In both cases I've already opened both chests and neither one of them contained a spell. I don't remember what WAS in them, but it was just standard items or gil. Now both chests are gone (since they're one-time-only) and I'm missing the spells. Was this an issue with previous versions and do I need to generate a new ISO using version 0.19 to make sure I get everything in the correct locations?
Just curious. Interestingly, several of the other one-time-only chests HAVE had their specified contents (the ones containing Silence and Infuse, for example).
Anyhow, even if I don't get an answer on this issue, thanks again to ffgriever for the hard work on getting us a playable English version!
Sounds like you're using v0.16. There's a problem with certain chests in that version, check out this post for a fix. I'm not sure if it will work since you're using an emulator and I don't know how the saves work with it, not having used any PS2 emulator myself.
Originally Posted by dslartoo
That'd be it, then. I did open the chests in the basement, all of 'em. (Kind of funny -- I used to avoid all those chests in the basement when I played the US version because opening one of them would cause the Zodiac Spear to disappear from the chest in Nabudis, but I read someplace that in IZJS the Spear isn't in that chest anymore anyway, so I figured, what the hell, I'll go ahead and open 'em. Only to be punished for it in a different way!).
That post also mentions v.0.17 fixes a freeze when starting a new game in 16:9 mode.....which the version I have ALSO does. So I'll have to grab the v.0.19 patcher and make my own ISO so I've got the most up-to-date version. Serves me right for getting something secondhand instead of doing it myself.
Thankee much! This community is awesome.
Starting from v17 this isn't an issue anymore. Basically it didn't happen in the original, unpatched IZJS. It's just that some of the changes made the patched version inherit some of the stuff from us/pal versions. So the moment you opened the chests, there was an info written to the memory.... The problem is that in this exact place IZJS stores the info about magic being obtained from chests... Thus the problem. Anyway, it's fixed now and there is this little app available to fix the saves that were affected by the problem (it basically clears some of the flags).
Originally Posted by dslartoo
problem serious but not really
problem serious but not really –
im using v.17 and 2 of my characters have some issues vaan has 0/178 mp and cannot get more also he cannot build his mist meter and penelo has permanent silence both are unfixable(seemingly) and appeared randomly not together.
anyone have similar problems and if so how might i deal with them?
but other than that no problems ffgriever you are a great person in the videogame community.
Last edited by arsonistarctect; 09-01-2010 at 02:05 AM.
Indeed! I got hold of the v.0.19 version (because why go with just 0.17 when I can get the most current up-to-date one?) and remade the ISO. This one is working perfectly so far and I have had zero issues with it. The save fix worked too, but I decided to restart just for the heck of it anyway because it's nice seeing fixed hunt descriptions and item descriptions.
Originally Posted by ffgriever
Awesome, awesome patch, ffgriever! Thanks again.