Overdone Angel Spaghetti Code

January 31st, 2019

Has it really been 10 years?

Last time on this series:
Battle Moon Wars SDK

Galaxy Angel Tools and Files

The re-entry into this at-least-intended-to-be series of posts is going to be a little brief because it's been nearly a decade since I worked on Galaxy Angel and only slightly less time since Moonlit Lovers. They're grouped together because aside from one key difference, their internal format was completely identical. The package above has had the images removed for file size reasons (ie were a gig on their own), but are otherwise the backups of the workspaces I had when working on them… at least, what I shoved into my archive. If I recall correctly, and I didn't reinstall the games to verify, most of the unpacking, aside from some string lists, put things right into plaintext or regular images. All of this is done from memory and about 15 minutes of poking at things.

There's not a lot too interesting about the file format. There's basically two text formats to worry about. First, the scn files, where all the normal script stuff is. It's a very easy format to work with and edit. All should be pretty self-evident what it is and what it does.

\Speaker(003)
\Face(061,067,0,0)
\Voice(GA340048,3)
@1(
It came from the other side of the bush.
Hold on, that's…
@@)

Something that I didn't appreciate enough at the time is that the format lets you use new lines as… well, line breaks, rather than having a dedicated newline command like @n. It makes formatting it a lot easier to do and see as you work to make things look aesthetically nice.

The scripts contain practically everything too, which was extra nice and I'd eventually discover is quite rare. You can even see how it modifies the point values for both mood (in-chapter, battle stuff), and the overall 'love points', even if it's not wholly obvious at a glance what the variables are. eg

\Se(1,3,0,010)
\SeStateChg(1)
w041 += w013
w044 += w013

 

Second are the random string lists. If I recall right, there's a bunch of strings in iidx files. A separate included iidx tool pulls all of them from those iidx files into an all.txt (and repacks afterward). Those are for things like the room descriptions on the select-a-thing-to-do segments and other similar bits. The battle quotes also fall into this category. Every single battle quote is in one ginormous single text file. Quotes are generally grouped by character and type, but it's still just a ginormous list of about 5000 total battle quotes. Thankfully, someone did create a tool (msgedit) to help with that. It both matches the string to the voice line so you can actually hear it played (very important when a lot of these are just kind of "There was a hit!" without good clues indicating as to whether it was inflicted or received), and has a few other helping things, like an overflow warning.

The big thing to be aware of and the only real difference between GA and ML is the existence of the tbl files. In GA, those contain a bunch of pointers that need to be updated when any changes are made to the scn files. If not, pointers point to wrong/bad locations, and everything goes haywire. ML doesn't have those tbl files. It's a lot smarter and more robust.

 

There's nothing else of real interest in there. The images just come out as plain png files, easily edited and repacked. There were some minor presentation issues with their placement since we couldn't control centering or the like (ie couldn't adjust the dimensions of the sprites or positioning), but I think that only affected the location markers in the upper left as you entered a new room. I could be forgetting something though. Likewise, the movies are rather boring. They did need to be kept in the same format, and the subtitles hardcoded on, but that could be a lack of personal knowledge. Only the ML sub files are included since I couldn't find the original GA ones around (although do have the actual movie files backed up). 

Next week… maybe (probably), Big Bang Age's godawful disaster of a mess of files.

Posted in Galaxy Angel | No Comments »

Leave a Comment

Basic guidelines:
Be civil. Don't ask for games, raws, music, etc. Feel free to correct any mistakes I make, I'm far from perfect. Excessively rude or stupid comments will be mocked, edited, deleted, or all three.