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.


Topics - Infrid

Pages: [1]
1
Help Wanted Ads / [Japanese Translator][PSX] Ace Combat 3
« on: May 29, 2018, 03:56:09 pm »
We are a group of enthusiasts attempting to translate the game Ace Combat 3
from Japanese to English, Spanish and Italian.

The game was released in Japan featuring a story, anime cutscenes and much
more. Due to budget constraints, what came out in the US and Europe arrived
without that story, and resembles an arcade game.

We've succeeded in hacking the game, understanding the internals and
editing the texts. We are also lucky: the text is displayed via images, so
basically any other language can join the project. It doesn't matter if you
are Russian, Chinese or German: You can translate the game without any
problems.

At the moment we are a group of 8 people with different tasks and also
different languages to work on. Spanish-speakers work on their version,
Italian members work on theirs, testers and hackers are helping with
technical matters.

Managing such project requires organisation. We are coordinating through
telegram, our code and working files are hosted on GitLab and we use the
issue tracker for managing problems in medium-long term.

We are looking for more members that could help us with this project,
especially a Japanese translator, we already have one but sometimes the
real life keep us busy and the project will suffer.

If you are a developer with romhacking knowledge, an Ace Combat fan, you
speak Japanese or you just want to join the project for any other reason,
write me a message.

We also have a website: http://ac3es.infrid.com/

The Italian team published a patch a while ago, and they are working on the
next version. You can find the RHDN project page here:
http://www.romhacking.net/translations/2948/

There is also a Facebook page for the Italian project:
https://www.facebook.com/ac3itaproject/


2
hello!

I am working on a fan translation for the game ace combat 3 and I would explain few issues and find the best solution with your help.

The game stores the text as images in TIM files and it's pretty easy to edit them, but those images are stored in a big container. The files involved are ACE.BPB for storing the actual files, aligned to the sector, and ACE.BPH for the information about the positions in the disk.

We have a tool that reads those 2 files and unpack the content, many files are compressed in a custom ulz format and I manage to work on those files. There is also a tool for pack and rebuild the BPB and BPH.

The TIMs are compressed in lz77 and I wrote a compressor/decompressor for that, the algorithm is working for me, at least the decompressor. I can see all the game content.

I would translate the game menu, there is a file for that compressed in ulz at some offset of ACE.BPB, with psxfin (maybe I should use no$psx) I set a breakpoint for write into the RAM at a specific address and I can see the decompressor algorithm working.

I edited the menu file, I compress it and build the BPB and BPH. The game crashes reading my changed file and I don't understand why, clearly it could be a problem of my compressor but I can't see the decompressor algorithm with the same breakpoint.

I looked inside the executable with a disassembler in order to find the uncompress routine but I cannot see the part where the game reads the ulz's header. I suspect I made a mistake there, in fact if I don't compress the file, the game reads it anyway (at cost of loading speed).

I read the docs on how the console is supposed to control the cd-rom, it stores some values in a memory address and fires an interrupt for reading a sector but I have few problems.

- Get the exact sector where my file is stored
- Set a breakpoint with the emulator

For the first, I could change the unpacker and have an idea where the file is store, but it doesn't seems a nice way to do it, do you know a better technique?

For the breakpoint, is there an emulator where I can set a breakpoint to a sector regardless the way how the psx read it? It could use few API calls and I would avoid to set a breakpoint to a DMA, I could need to investigate for other files in the feature and it would be nice to have a smoother workflow.

Thanks!

3
Hello,

I tried in the past to hack the game in order to retrieve the TIMs files, I realized some kind of compression algorithms was involved and checked with a debugger (it was based on some emulator, I don't remember now), put some breakpoint in memory and try to track the algorithm.

I was a boy and I didn't achieve anything, plus there was the university and personal commitments and in the end I haven't touch the game for a long time.

Now I see someone has managed to uncompress the data, edit and even insert the changed data.

I know it involved many hours of work.

I'd like to make the life more easy for other people who want to translate the game in their language, alas it's hard to be a good translator and a rom hacker.

I am a web developer and an idea come in my mind:

I could write a small web app for help to translate the game, a system will shows a list of TIMs (converted in png because firefox/chrome cannot read the TIM format), you click on it and a form will pop up for inserting the translated text by reading the image.

We can keep track of every changes in every language and then the website creates the patch following some steps:

- extract the file from the original ISO, we could do this step only once
- convert the TIMs to PNGs and show them online

[...] translators use the forms to edit and translate the text by reading the images.

- the system creates the translated PNGs like this one

- a script convert them in TIM again
- create a xdelta/ppf patch

This is just a convert but is not hard to create the web part, many frameworks today can help with that (I would use django by the way)

Dashman and EsperKnight made a great work, I'd like to know more, guys could you share show your discoveries? I am not asking to tell me every detail of your work, I'd like to read the source code of your tools.

It would be give me many aha-moments and it would help me with the web project.

D.O.Eraven showed me their workflow for the first Italian translation and the process is so tedious, too much time consuming and I would make life easier.

For example; why the untouched ACE.BPB contains less TIMs that the english patched version? what did you done to that file? :)

what do you think?

thanks

Pages: [1]