April Showers – Galaxy Flowers

April 1st, 2009

  

Because April 1st jokes are for chumps.

And another year closes on the domain as it sort of approaches its arbitrarily stated birthday. It’s been fun. I hope it continues to be. That’s enough of a birthday speech for me. April 1st jokes are pretty much always terrible anyway, and since there are three new shows airing this April 1st, I really don’t think I have the patience to deal with that. Consider this an early announcement through my days off that Wednesday will be as normal as planned I suppose.

Sadly, unlike last year, I don’t have anything particularly interesting to report as the site reaches another arbitrary and contrived milestone of existence.

    

However, it’s not from a lack of trying. The Galaxy Angel theme is no accident. I really have seriously been trying to get a translation project going for this for a couple months now, but unlike BMW, there wasn’t some cheesy ready made tool for decompression so I’ve been reliant on the goodwill of others for tools to get at it, and frankly, my faith in humanity has taken a bit of a hit here. Translation is actually not that big of a deal here. GA’s a pretty short game, and unlike BMW, doesn’t have the fun of being some kind of crazy corrupted secondhand fanwork. The script files are also in a pretty easily editable form of what appears to be a Pascal derivitive (although I don’t even know how or why I think it looks like Pascal). 

Then again, after going through the first chapter, I’ve been completely underwhelmed by what has already been translated by the western world, especially given how westernized Galaxy Angel already is. Half the status screens are in English, and every character’s name came romanized from the very start. Then again, they did decide to retcon Elsior into Elle Ciel after the first series had finished, so Broccoli probably can’t be trusted with English anyway.

Galaxy Angel OP

Despite various protestations from assorted people I’ve talked to that "oh, hacking this would be easy and shouldn’t take more than like, 30 minutes," apparently the game’s not worth those 30 minutes of their time and have completely buggered off, leaving me with a tool about 1/3rd finished in some kind of horrible fetus-like disgusting spawned state. Here’s the code I’ve been left along with somebody else’s (who asked to remain anonymous) analysis of what needs to be done next.

http://bmw.seiha.org/ga_unpack.c
http://bmw.seiha.org/z0_unpack.c

http://bmw.seiha.org/dathelpmaybe.log

I went ahead and threw together a Windows binary as well of the code as well.

http://bmw.seiha.org/unpackers.rar

The GA one takes in the pak file and spits out the first level compressed files (ie “ga_unpack.exe gadat001.pak”). The z0 one takes in an extracted file and the desired output file and decodes the zlib compression (ie “z0_unpack.exe 879172097.z0 879172097.scn”). It needs zlib.dll in the same folder. The top level extractor incorrectly decompiles segmented files right now, but those shouldn’t need to be touched anyway.

 

Not everything is zlib encrypted. None of the media files are for example. You can open a file in a text editor to check. If it has a z0 in the header, then it needs to be run through the second decompressor.

001 is ADV scripts
002 is SLG scripts and what look like other graphical descriptors
010 is BGM (.ogg)
011 is voices (.wav)
012 is SFX (.wav)
020 is graphical skins, effects, (both bmp) and what appear to be image definition files (.rat IIRC)
030 appears to be ADV images
031 appears to be character graphics
032 appears to be system graphics (can’t figure out how to decode proper image format for any of these (they’re .t32, whatever the hell that means))
100+ are movie files

I have absolutely no idea what 41/42 are. Removing them seems to have absolutely no effect on the game. Maybe some kind of extra options or exception control and whatnot?

Galaxy Angel PC Gameplay

Surprisingly, the movie files are the least complicated part of the entire mess. They’re simple mpgs (mpg-pes if I recall correctly) with an inverted header. Open them in your favorite hex editor of choice, invert the first 64 or so, change the extension, and you’re good to go. Reversing that requires even less.

What’s still lacking, at absolute minimum, is any way to reincorporate the files back into a workable pack, and figuring out the T32 graphic format. Dat001 and 032 have been uploaded here if you want to poke around at them to try to figure things out. You’ll have to track down the rest of things yourself if you want to try your hand at analyzing how the game actually works. Sorry, no piracy here, nope nope nope.

http://bmw.seiha.org/exampledats.rar

     

It would be fun to keep going with the project, as the series really is quite a lot of good natured fun with quasi-Homeworld action thrown in for good measure, but as of right now, it’s sort of dead in the water since despite the supposed ease of making them, the tools just don’t exist. I’ve shared everything that I’ve got here now though (aside from the once-through translation of the chapter 1 script), so hopefully somebody with a little more coding experience than I will take interest in it and give the project the kickstart it badly needs, or hell, just seize it entirely and finish it in secret if they really wanted. 

Until then, Tact and the Angels will just languish in space, mostly sad and forgotten. Poor poor Angels. Le sigh…

                                   

Posted in Galaxy Angel | 20 Comments »

20 Shouts From the Peanut Gallery

  • Azure says:

    Ooh, I’m looking forward to this. I’ve been starving for a translation of these games forever, ever since I first stumbled onto one of Mint’s event movies on Youtube and subsequently found out about the anime.

    Also, happy foolish birthday, Tenka Seiha!

  • […] en una franquicia contando con varios animes, diferentes mangas, juegos entre otros, bueno en el post indica que el mayor problema actual con el projecto es la falta de un hacker, aunque gracias al […]

  • Shinji103 says:

    Yeah I was wondering if you were a Galaxy Angel fan too, since I saw GA pictures in your previous picture postings before. I love this series, and it’s too bad the games didn’t get the US-releasing they deserved. :( I have /all/ the PS2 released. (all of the first trilogy and the second trilogy, including the newest that just came out in mid-March, although it looks like that one was the conclusion)

    I would /so/ help you with this if a) I had any kind of significant amount of free time for it, and b) I knew a single thing about making a fan-translated game. The only thing I could help with (again, if I had the time >.> ) would be the actual translation of the Japanese (although some things still elude me from time to time), but I have no clue about programming or files and such, lol.

    In the meantime though, Happy Birthday!

  • Kresnik says:

    Wow, it’s a good thing that you’re working on this. I’ll be waiting for the good news!

  • Yue says:

    Happy Birthday Tenka Seiha! May your wish of translating Galaxy Angels come true.

    Chitose daisuki! [grabs Chitose pics] ^_^

  • sage says:

    so I’ve been reliant on the goodwill of others for tools to get at it, and frankly, my faith in humanity has taken a bit of a hit here

    Despite various protestations from assorted people I’ve talked to that “oh, hacking this would be easy and shouldn’t take more than like, 30 minutes,” apparently the game’s not worth those 30 minutes of their time and have completely buggered off, leaving me with a tool about 1/3rd finished in some kind of horrible fetus-like disgusting spawned state.

    I’m sorry… I’m so sorry…

  • Anonymous says:

    I always find it funny how all across the internet there are always translators without hackers or hackers without translators, for various games. It seems the two sides never seem to be able to come together, despite how many there supposedly are.

    That aside, I have no experience in either so I cannot help. I give you my best wishes though! (Internet best wishes are worth a lot, I assure you.)

  • Anonymous says:

    Well, I think I saw ‘Elsiore’ actually used in a briefing once. So I guess we’re using that? Anyway… anyone got the OST for Eigou Kaiki no Kagi?

  • Darke says:

    T32 looks like a standard TGA 32bit RGBA data stream with a custom header. Width (or height) is at offset 0x2C, height (or width) is at offset 0x30, data stream is at offset 0x34 (four bytes per pixel).

    There’s also another data format, PRM, that’s inside the 032.pak file as well, it’s decoding will be left as an exercise for the reader. :)

  • Anonymous says:

    I’ve always been interested in the GA videogames since they followed a somewhat coherent storyline as opposed to the anime (though I enjoyed the anime too).

    The gameplay looks pretty unique as well, and it must’ve been pretty successful since it spanned three games.

    Maybe we can all zerg rush some unsuspecting translation site and run off with their hackers..

  • Darke says:

    Code’s a bit of a mess, and doesn’t really do much more then the individual files, but they’ve been hacked together:
    http://www.mediafire.com/download.php?jk5jcizihbg

    Copying the “Release/ga_dc.exe” file to the directory with the .pak files, run it with “ga_dc.exe “, and it will create the directory and dump the relevant files into it. .dz files are ones it decompressed, .uz files are ones that were originally uncompressed (though I can’t test that since it doesn’t look like any of the data in those to pak files is uncompressed.)

    It’ll also dump a manifest.txt file in there too. In theory it might be possible just to concatenate all the files together in the same order, and write out a .p00/.pak file pair, with the pack just having the updated offsets/sizes and the original checksum. If the code handles both uncompressed and compressed files, it should handle reading them transparently. If the checksums are just hashes of the original filenames for quick lookup, rather then an actual checksum of the binary, then this should work also.

    The .exe will need the latest visual c++ runtimes since it was compiled in vs2008, but anyone who’s installed a recently made PC game will probably already have them. Otherwise you can just grab them from somewhere under microsoft.com. :)

  • Aroduc says:

    Nice. Somebody else (or maybe they’re both you) e-mailed me saying they’re interested in working on the code. Drop me a line (webmaster@seiha.org) and I can set up a wiki or board or something to keep track of this. Although I had hoped for some kind of immediate progress, I wasn’t really sure anybody would bite. Happiness.

  • Darke says:

    Whilst it’s possible I’ve emailed you in my flu-medicine addled state without realising it, I don’t think it’s me. :) (Apparently being half out of it doesn’t effect my reverse engineering/coding abilities though…)

    Unfortunately I’m rather lacking time at the moment, full time work and part time university study will do that to you (or it does that to me anyway :) ), so I’m probably not going to be able to give much help. My email addresses in these comments is valid though so feel free to include me in any conversations, etc and I’ll help if I get a spare hour or two between panicking about failing Japanese tests. :)

  • Darke says:

    Was surprisingly easy to get the tga output working. Though there is some annoying surprises inside.

    The images are all chopped into 256×256 sized chunks should they exceed 256 pixels a side, and all these are stored in a single T32-file. Repacking them is going to be fiddly as a result, plus I’m currently discarding some of the header bytes that really should be saved since they probably mean something (it’d just be necessary to dump them to their own .bin file, so the program and grab the 24-ish bytes when it’s re-assembling). Some of these images have got text on them needing translating, though the Japanese seems minimal.

    Of course there are other problem-child images. Like the series of 38×38 pixel images with a single Japanese characters on, like the kanji for “select”, or single katakana “ra”, “small-ya”, etc, they must used them to manually assemble banner messages somewhere. Curiously there’s “Appendix” written in single-letter images, with two-separate p’s, so they must be used somewhere special.

    Executable in the same place as before, operated in the same way, the code is just more ugly, and it dumps out 1700 more files then before: http://www.mediafire.com/download.php?jjrmgwz3mm4

    Now I should stop procrastinating and do something productive. :)

  • shio says:

    Oh man, Galaxy Angel was fun times. Hopefully you’ll get all the help with the mysterious logic-based languages you need.

  • Anonymous says:

    You could put the wiki for the project on the GA wiki. So it’d be a wiki within a wiki. Hur hur hur.

  • Anonymous says:

    Sorry, no speakish Spanishu

  • kp says:

    lol? how could a part of nozomu’s article end up here, i wonder…
    Anyway, i’m looking forward to see this project grow, i’ve been anxiously waiting for someone to took it up ever since Broccoli USA went bankrupt,
    best of lucks people

  • Anonymous says:

    PUKI