It's funny, this is one of those Japanese games where
NOTHING was in English, whereas many other Japanese games have at least English menus, etc. Nope, not this one! Other than "PRESS START BUTTON" on the title screen, if you see
anything in English, it had to be modified, and I mean literally
anything, even the save/load menu. From what I can tell, this is part of the traditional "ambiance" that all of the Sakura Wars games have, which makes sense.
Progress update video:
https://www.youtube.com/watch?v=t1wJJkQsL2U
And just for the record, although I'm
EXTREMELY GRATEFUL for YZB's insight into where the decompression code exists in the game binary, this was not the method that I used to reverse-engineer and change the compressed images.
This game contains a collection of .RQL files that serve as containers for additional embedded files, and at the top of each .RQL is a header which indexes all of the files inside of it. Every asset in this game is stored this way, from the script text itself, to the menu images, right down to the audio files used for BGM and spoken voices. Some of the .RQL files contain uncompressed files (thank God!), while many, many others have their embedded files compressed in some funky proprietary format.
So, with some outside assistance, I was able to figure out the format of that .RQL header to determine how it points to the location and size of each embedded file. From there, I was able to perform a test to replace compressed images with uncompressed images to see if the game would at least display them properly. I got
extremely lucky here and whaddaya' know, it worked! It turns out that at the beginning of each file, there are four bytes that tell the game if the file is compressed or uncompressed.
Once I saw that the game would successfully render uncompressed textures where it was previously expecting compressed textures, I used RetroArch+FlyCast to dump textures to PNG format, which essentially gave me access to the original source images without having to reverse-engineer the proprietary compression method used by the game. The gigantic challenge here, however, is that it then becomes a guessing game of trial-and-error to determine with .RQL contains the compressed images I need to replace, and then furthermore, which embedded files inside of that .RQL are the actual compressed image that I need to swap out.
Unfortunately, doing a RAM dump with esperknight's modified version of NullDC wasn't helpful in locating the original .RQL and its embedded file, since that RAM dump contains the uncompressed version of the PVR texture. However, seeing as how I'm dedicated to giving this game the polish it deserves, I kept on trying until I identified all of the images for the title screen and main menu. The only part of the menu left to translate is some of the text in the Settings Menu, but I will get to that shortly.
Other than that, the current action items are as follows:
- • The translation team is continuing to translate the Japanese script for Story Mode into English.
• I will continue to use trial-and-error to find a few other assets I want to transfer (like the title screen at the beginning of each character's Story Mode).
• Continue to test, test, test!
One other cool thing I was able to do was take an archived version of the game's original website and then host it directly on-disc so that it's accessible locally from the game's built-in DreamPassport web browser! This also includes the ability for players to download three additional puzzles in the form of DLC!
Anyway, this project is really, really shaping up to be something beautiful! Me and the rest of the team can't wait to publicly share it with the world!