ALEs. Some answers. Some questions.
First off, ALEs can consist of several things:
1. A procedural particle effect, purely rendered through Alchemy. Very few ALEs seem to operate this way. In fact, I'm not sure if any of them do, now.
2. A distorted TXM file projected onto a plane or planes, which may or may not have animation instructions. Animation instructions seem to consist of moving a "virtual camera" in X, Y coordinates to the next "frame position". Almost every special effect in FL is generated this way- I will provide some proof-of-concept screenshots below this post. These TXMs may have their RGB colors altered by instructions in the ALE, which is how we end up with different-colored engine flames, etc. The differences in the appearances of engine flames are due to which types of TXM are being applied, as well as their position and scale relative to the viewer.
In short... ALEs are basically a very fancy way of distorting/coloring TXM files, projecting them onto flat planes which are then re-presented to the viewer according to angle. In the case of things with definate dimensions, there may be multiple planes involved, which are each probably labled according to their sequence in animation. Animation of the ALEs for things like engines appears to be a sequence of on/off instructions, transparency instructions, and animation instructions (defining the XYZ positions or range in which the texture frame areas will be projected, which is how DA did things like make some of the engine flames "wiggle", smoke puffs semi-randomly move away from certain generators, etc).
Screenshots will follow below, but basically, what we need to get solved, in order to make totally custom ALEs, are these things:
1. Somewhere, probably in the ALEs themselves, a CRC or other reference to the TXMs that are "valid" for a given ALE. This explains why certain modifications to ALEs do not work- the user-desired changes simply do not "take". If we're going to build custom ALEs using the existing animations, then we're going to need to be able to refer to custom TXMs.
2. We need to crack the animation instructions. I have a feeling that that's easier than it appears- we're looking for state labels (there have to be states for the engine to check against) followed by animation instructions, which presumably include a reference to one or more planes.
Why am I so concerned about custom TXMs, btw? It's simple, really: I've tried several experiments, and while I've been able to alter the contents of existing TXM files without any problems, I have not been able to define new ones and have the game engine use them. Lengthy tests have left me with the conclusion that ... while we can remove TXM references from a given ALE, we cannot add new ones because the ALEs or TXM headers prevent the FL engine from "recognizing" new TXMs. Hopefully this is as simple as a CRC, but my attempts to find valid CRCs for a given TXM (I used smoke.txm as my test) have not proven successful. If somebody would please explain how to generate the infamous "reversed CRCs" which you engineering types have discovered in FL's files but nobody seems to have built an app. to generate, it would be appreciated- perhaps all I need to do is do a search for "smokecard.tga" as a reversed CRC. With that information in hand, I could define new TXMs that might be valid for any number of ALEs, which would open up HUGE new areas for us to mod.
Really, folks... even if we can't ever figure out the way that projection planes are defined and animated within the ALEs themselves... if we could just define new that could be called by existing ALEs, we'd have enormous leeway to make new visuals.
In case everybody thinks this is a waste of time, here's what I've been able to do with just a few changes to existing TXMs:
1. Rebuilt the smoke puffs to be half-size. Alcander apparantly colored the smoke puff's TGA a purple shade- what I did was a bit different. I doubled the size of the TGA, and halved the size of the resulting puff alpha. This has several obvious disadvantages- for one thing, it's grossly inefficient... for another, it means that other things that emit smoke puffs, unlike the thruster (which projects them as flat planes always square to the main camera), suddenly seem to be putting out "less" smoke. In actuality, they're still projecting the exact same number of smokepuffs... but the smaller size means that the resulting smoke looks a lot less robust. The only current way I can see to fix this is to double/treble the number of projectors to make it all look right again, which has obvious implications for game performance...
2. Halved the size of Planetflare. Planetflare is used for an unbelievably large number of things- it and Sarma are used just about everywhere that DA wanted a very generic effect.
As you can see, this halves the percieved dimensions of the texture, but it's still distorted along the frame rectangle to a given x,y position, so it looks pretty funky
3. Finally, messed with Sarma, which is used in a HUGE number of ALEs. Sarma is the "anything we want to look like teeny particles" effect, and it's used all over the place. In this case, I left the dimensions alone, but re-defined the texture, using something very distinctive. We can SEE the frames here- when this is animated, the effect is quite striking, believe me!
So... c'mon folks... help me out here. Alcander doesn't seem to be willing/able to discuss this, and if I can just get whatever it is that makes a TXM to be "unique", then I can define and create a whole range of Very Cool Things- everything from customized engine FX to new Explosions to new shot graphics. The possibilities, even if we can't figure out where an ALE's internal CRC reference is, or make new ones, is very, very large.
But if I can't define new TXMs... then I'm stuck. While I can mess about with smokepuffs, and that'll work OK because of the special limiting factors there, the other things are not amenable to alteration, because they get re-used in so many places, in so many contexts, that there will be a place somewhere where a change means that something looks dreadfully wrong