[PS1]Ace Combat 3 Electrosphere: text replacement

Started by DragonSpikeXIII, January 31, 2014, 01:51:57 PM

Previous topic - Next topic


I've tried every available tool and none of them can locate these TIM files. Even jPSXdec, which will scan every uncompressed TIM in the image, can't find them. So I guess they're not standard at all, be it header or size-wise, or both.

I'll see what I can do regarding the location of one or more images, I'll get back to you as soon as I can.


Maybe a good use for my tool then. I made it specifically because I had encountered many such 'proprietary' images on my own projects.

You probably already know, but if you have the location of one of these images in a BIN, you can find which file the image is in by dividing its BIN location by 2352 (aka 0x930). That will give you the LBA for file where the image is. A program like CDmage shows the start-LBA for each file on the disk.


Just finished editing, take a look :)

Full video: https://youtu.be/rF2YJ5rn5Ew

And a screenie:

Note: "Screenplay and Conceptualization" and "Industrial Design" are original, the rest is fan-translated.

Thank you again, weissvulf! :beer:

It's one down and one to go now, finding someone who can help finish EsperKnight's work on the compression and improve our translation toolkit.


for the music track, if you can't find it in the main executable, is probably inside some data on the disk, an overlay maybe?


Quote from: Infrid on August 19, 2017, 04:10:57 AM
thanks for sharing your tools, in my spare time I made a real ulz compressor, is still not efficient as the namco's one but we'll get there soon.


you need at least python 3.2

Bear in mind that even with the most efficient tool you won't get an ulz file that has the same filesize as the original. If you change something the compressor will produce a completely different file.

I tested against my own decompressor, when I have time I'll provide binaries (so you don't have to install python) and optimize the algorithm.

The compressor needs some parameter to compress files, those parameters are the ulz type and the compression level, you can get those information with the "info" command.

You can get information form iso and BPB files too, thanks to orientalcomputer_01 for that :)

I've finally run some tests with your decompressor/recompressor and I have some feedback for you.

Tests for Radio chatter and briefing TIM files went through without a hitch, the compressed file sizes were excellent and the game ran like it normally would.

However, 0114/0005.ulz and TIMs for the titles in the Search menu do not work properly after recompressing. The game still runs and does not crash, a good sign, but the graphics themselves come out garbled and with crazy colors. 0114/0005.ulz when uncompressed is a BIN or DAT file that contains several TIMs inside, the Search titles are regular TIMs with just one image, single-layer.

0114/0005.ulz is the file that has that text that is still in Japanese in the current v2.0 patches, the one that causes the inter-mission text (save game prompt and "Data Swallow" at the bottom) to go from English to Japanese at the end of every mission. This and the Search titles are the only parts still left for us to fix and make a final 100% fan-translation possible.

I'm not sure if it's just me or if you also encountered this problem, I ran extensive tests just to make sure and these are my results. The fact that the game won't lock up or crash shows you're on the right track, I just don't know what's wrong with these particular files.


You are not alone, we did some tests and we had the same issue but we found a workaround, I haven't had the time to run the debugger and see why the game crashes but I suspect it has to do with some compression optimisations or the flag storage format.

We found the bug only with ulz type 0, if you use type 2 everything should be fine, try it.

The compression algorithm is a bit naive, uses a lot of CPU power and it's quite slow but it works for now. I'll optimise it when it's stable because it's not efficient like the namco's one.

Let me know if you need something else.


Thank you for the tip, I have just finished compressing and testing everything that's been translated up until now and there are no bugs anymore, including Search titles and that 0114/0005.ulz, so I can finally discard the option of leaving them untranslated.

Huge thanks to you and the AC3 Italian Fan-Translation team for your compressor/decompressor tool, this problem has at long last been resolved.

EDIT: I just added the tools and info needed to translate the end credits as requested by RidFin, they may be useful to you if you still need to locate and translate them. http://www.romhacking.net/forum/index.php?topic=17658.msg340734#msg340734


Thanks for testing it, I had time to look up on a debugger and see why my compressor doesn't work with ulz0 and I just found out why!

The formats ulz0 and ulz1 are nearly identical in terms of compression ratio and file structure.

The difference is how the ulz0 is decompressed, the game decompress data until gets a flag with just zero bytes (r11 has to be 0x00000000), that's why it uses 31 bits for the flags, the last one is always 1 until we finish the process.

Ulz2 looks for file size instead, it decompress until the output is big enough. Both formats stores the decompressed file size into the header, I used that information when I decompress in my script. That's why I was able to decompress both formats.

I'll publish the fix soon, I don't know why they adopted two formats, maybe they came from different internal teams.

What method should you use? It's up to you, I consider ulz2 better, it uses all the flags and should produce a smaller ulz file.

Meanwhile if you used ulz2 instead of ulz0 and it's working, it's perfectly fine, you don't have to change anything.


We are pleased to announce a new version of ac3es tools. As Infrid said before we fixed the big for ulz type 0!

GitHub - Infrid/ac3es-tools: Compress and decompress ULZ files for Ace Combat 3 game
-AC3 Italian Translation Project-



we noticed the bin splitter can pack correctly only files with a size multiple of 4, I update ac3es tools for handling this type of files.


Also the file list contains relative paths and if you don't have the list at all it can scan a directory.


First of all, I want to say thank you to everyone involved in this wonderful project. I've already completed a Fiona-loyal run as well as a run following Dision. This game is truly fantastic.

However, I did notice one typo. One of the messages from Simon says "by that as it may" instead of "be that as it may". It's pretty trivial but worth pointing out.

So more updates are coming, correct?


Thanks for the grammar check, it was already fixed a few months ago but any feedback is welcome.

One final update that fixes such mistakes and translates what is still in Japanese in v2.0 is coming, to be released When It's Done.


Quote from: DragonSpikeXIII on April 08, 2018, 06:36:09 PM
Thanks for the grammar check, it was already fixed a few months ago but any feedback is welcome.

One final update that fixes such mistakes and translates what is still in Japanese in v2.0 is coming, to be released When It's Done.

Awesome! I have since completed all five endings and that was the only thing that jumped out at me, except I think Cynthia says "prise" when it should be "pry", but I'm not certain of that one.

Anyway, y'all did a fantastic job. Thanks again!


I updated the tool, now we can unpack/repack the ace.bpb and possibly create a toolkit for every version of the game. Header replacer is obsolete too since is now possible to edit a TIM header.



I just completed my first draft of a translation that I promised last year, the one about an in-universe interview with one of the game's most important characters. I was hoping to outsource this to some kind soul so I could focus on the game but that extra bit of help never came, so you know what that means! I first meant this as a bonus feature to go along with our next release but whatever, it's done so please enjoy: http://useatoday.blogspot.com/ No one ever cared about this little piece text but I found it to be pretty interesting. My recommendation, for what it's worth, would be to read it before playing the game or whenever you feel like it really.

With that out of the way, there's something else I feel I should talk about. This is about dishonest people who approach those working on something, in the cases that I'll mention below content creators like fan-translators, but who are really after said people's work for their own ends. I've had this happen to me before but not quite as elaborate as this attempt.

As far as I'm concerned, I knew something was off right from the start thanks to a number of factors beyond those listed, which thankfully allowed me to identify who was behind this pretty quickly. But what startled me during this episode, which I'll call the "Spies R' Us Incident", was how this person's MO reminded me of that of another group, one that actually managed to fool a fan-translation team into giving them what they wanted, which in their case was pretty much everything they had in order to supposedly continue the project in their stead. (Spoiler alert: the original team gave those guys das boot after a few months.)

So for whom it may concern:
be wary of people who pop out of nowhere with long-winded personal introductions that include phrases in the same vein as "I'm a fan of *the game/series* you're working on, just like you!", they are designed to give you an image of someone who's just like you, to make you trust them faster, thus easier for them to get what they want. Those who outright suck up to you, with unnerving frequency (nobody does this). Who ask questions you may deem as strange or unrelated to your current tasks. Who ask you to do something for them, or give them large amounts of data like entire folders or, just about everything, before they can actually do anything for you.

From my own experience, the opposite of everything above is going to be true on the vast majority of occasions. Meeting new people is normal, sharing information and work with others is also perfectly normal and must in this type of thing, but people trying to pull a fast one will always try to blatantly gain your trust. What applies to real life behavior also applies here. That includes strangely complimentary, sometimes even subservient behavior. And if the same people ask you to do strange things or give them vast amounts of material before they can do anything, well... there you have it. For this little project right here it's crisis averted (again) and business as usual (again).

But if something like this can happen to a group that's working on a game nobody cares about (I excel at self-motivating), it can happen to just about anyone. Some of this may sound obvious to some, but it wasn't to that other group, and I've seen much worse happen to others, so I wrote this post in a place where this info may be most helpful. If there's something I learned in almost 10 years on this project is that when people want something from you, they'll try anything in order to get it, even underhanded methods. So always be prepared, trust you gut, and if something feels off, turn away and don't look back.

Also, something something something next release. #stayingonbrand


"...a game nobody cares about..."

I care. I can't wait to see this completed. hopefully by the end of the year! Thanks.  :thumbsup:


Quote from: pleasejust on October 06, 2018, 06:15:25 PM
"...I can't wait to see this completed. hopefully by the end of the year! Thanks.  :thumbsup:

That's still possible. There are only 2-3 weeks worth of work needed to finish the new script for the missions. After that the only componenent left to translate is the in-game encyclopedia but it remains to be seen how long that is going to take (to do properly, without rushing things). A month doesn't seem out of the realm of possibility though, especially if I can enlist the help of a translator that I can trust.


Hi, Dragonspike. Just was wondering, there's 2 versions of the Japanese AC3 Electrosphere out there. 1.0 and 1.1. Do you know what the differences are? Maybe 1.1 is a Japanese "best of"? Both versions are labelled as SLPS-02020/1 for disk1/2. Anyways, will your translation patch work on 1.1? Thanks.


All right, here's a recap of the dealio with 1.0/1.1 that me and other curious users dealt with here a couple of years ago.

First things first, don't let the naming scheme cofuse you, 1.0 is the PlayStation the Best reprint from 2000 and 1.1 is the original print from May 27, 1999. Testers from a known PS1 image archival group, whose name I forgot, made a mistake and mislabeled them, and added a bit of confusion on top.

Second thing is the original print, "1.1," is the more recent build, believe it or not. Usually reprints, no matter which region, are either identical to the original release or updated with fixes and additions, bit with AC3E it's the opposite. If you mount "1.0" on your computer you'll see the files were burned on May 20th, 1999, which happens to be the release date for China. "1.1" files were burned on disc on May 27th, 1999.l, the Japanese release date.

Third, the only real difference that I could find is that there's an additional file in one of the game's folders inside the BPB, a compressed container that houses all subtitles and graphics and maybe models used by the game (this project's bread and butter). The file itself is nothing special from the little that I can remember. And this, I think, is the main reason that our translation patches don't support the "1.0" reprint, this one file changes the index (which I think is the file that ends in .BPH) by one so every file after that gets moved up by one, and our AC3 Toolkit doesn't like that.

Anyway, since we already support the original and more up-to-date version of the game, I've ceased pursuing support for the reprint, as well as the Chinese release, for that matter. We dodged a bullet here, because when EsperKnight began working on the Toolkit he found "1.1" and based his work on that version thinking that it was a bugfixed re-release, little did we know back then that it was the original, and that that one was the more recent version.

So if you want to play the game with our fan-trans, secure a "1.1" copy. You can find checksums for it on our RHDN page (translation number 2307). Checksums for the next translation release will also be present on the ReadMe file after someone requested it when I released version 2.0 of our fan-trans.


Thanks for your extensive detective work and all these details DragonSpike!