Time for another post. This isn't an update per se, but rather research related. I hope it can be of assistance to anyone who encounters the same issues I have.
When convertxsi.exe spews this garbage into your lap, your balls run cold as ice. The jenkem stops huffing and the spinners stop spinning. If you're lucky, your lowrider only takes a leap off the bridge and you are offered a relatively quick end. If not, you spend days/weeks/months trying to figure out what rubbed convertxsi.exe the wrong way.
In Salvation I lost months of time to it. Ships that just refused to convert properly. Sure, you could put them into sins, but they'd have strange vertexes stretching in odd places. Strange.
The thing that makes this error so infuriating is that it actually doesn't mean anything. It's simply a result of convertxsi.exe not liking something, and whoever spent the 30 minutes it took to code it didn't bother adding any kind of actual debug information. Given how simple the sins models are, in all likelihood they wouldn't notice any possible issues if they did occur. Black Sun's models are, of course, significantly higher poly. More ground to cover means more chance for internery to root its ugly bucktooth head.
One of the first things I had to do in Retribution was bughunt a problematic portion of the Anahn Leviathan during its 5th dated revision. This has always been a troublesome mesh as far as conversion issues are recorded. I have dated 5 revisions, but in fact the mesh has seen more like 7 major revisions. It was the first mesh I discovered the poly limit with, and had to spend a great deal of time rebuilding many times after to isolate and fix areas that had initially been built with a greeble plugin that causes a lot of fucked up geometry. Throw in another 2-3 major detail revisions, and we had what we had before I hit Retribution. Strange that I am so bad at this despite being at it for over a decade. Strange.
Retribution, of course, seeks to update everything because everything I make is trash. I only hope to make it slightly less trash. Like clockwork, convertxsi.exe was ready to down all of my grape drank and dunk my ADC. I spent no less than 15 hours nonstop trying to isolate FAILED VERTEX CHECKSUM errors. Now, the Leviathan's mesh is one of the worst in the project technically speaking, but those "bad" bits had always made it into the game previously. Technically, I've put 60-sided ngons into sins before. Auto triangulation seems to be what most Homeworld 2 modders exclusively rely on, as I've encountered only 1 mesh from that game that had any semblance of human-designed edgeflow. While disgusting to look at, and terribly inefficient, it seems to work. Who can argue with results?
I'll spare you the full story, but ultimately, what convertxsi was bitching about was one of the side columns. You know, the 50 polygon cylinder structures of which there are 6. Only the one was responsible for the errors. Only. The one. It was identical to every other one. Removing it, copy pasting another, problem suddenly resolves.
Many ships gave me problems afterwards, of course. 1 in 2 models gives me convertxsi problems. I had ultimately developed a clever technique to fixing the error. I simply detached portions of the mesh inside the scene. Usually turrets and body. This had a stunning ratio of success. However, some models gave me much more trouble.
The DyiithJhinn Meltype was more complex of an issue. This was a 3 component mesh, no single component producing errors. Only certain combinations of meshes produced errors when exported as a whole. Strange? Yes. Absurd? Certainly. Another day was dumped into this. How did I fix it? I bridged two wings. Yup. That was it. Took me ~10 nonstop hours of fucking around to figure that one out.
The Prelate. Simply splitting the meshes didn't fix this one. Certain meshes had to be part of certain collections of meshes as an object. Specifically, the side Fast Action turrets. If these were part of the body, checksum errors. If they were part of the other mesh, no errors. Other objects irrelevant. Another 3-4 hours.
Clearly, a pattern began to form. I hypothesized that convertxsi was actually failing its optimization process when it concerns Tangent maps. In fact, previous problems with tangent maps and UV's (the Chimera Mark II, as you might recall from Salvation, had seriously fucked up textures in some portions and we never knew why until Retribution. Well, I lied. We fixed it, but we still don't know why it happens) alluded to underlying interaction between 3ds max and the abomination known as XSI and Satan's thorny asshole, aka convertxsi.exe. This problem is not entirely laid to blame on XSI and its devil children, but it's a problem that, in all my years of modding, I have only ever had with sins. Things like this become monumentally more irritating when literally every program you work with was not developed properly and nobody tried to think ahead because they were only concerned about their paycheck. 3ds max, XSI, and convertxsi are all equally blamable.
But I, a man who built his living on enduring extreme nonsense in custom content, wasn't willing to let this mystery die at "It's XSI and tangents breaking". After all, I still regularly dumped days worth of manhours into splitting and unsplitting meshes trying to find that sweet spot where all the cute black ladies danced to my congo beats. Alas, this was all I had for the last year to go by. I have literally spent just as much time trying to fix Failed Vertex Checksum errors as I have modelled and rigged models. Think about that. Time that could have gone into less stressful ventures, like haxing sex with a walrus or base jumping from the ISS.
There's a few things you should know about Max and XSI. First off, XSI Transforms seem to inherit Xform data. Xform data in 3ds max is retarded and messy and busted and Autodick should feel ashamed for allowing moronic things to happen like importing an fbx causing same named objects to inherit Xform data without asking. In a market where Autodick has zero competition, however, there's little cause for actually making meaningful updates to their programs. So, that's what we're stuck with. Luckily, freeze transforms kind of trivializes any potential problems - except when it comes to helpers (aka Nulls). You must manually reset the xform transform data for any helpers you mirror'd in max, regardless of what the pivot says they are pointing to. Both XSI and Max will claim they are oriented correctly, but sins will lol and point them in the opposite direction just for the hell of it. Took a year to figure that one out. But, worse yet, there's a layer beneath this, the so-called Ghetto Layer. In this urban jungle, information is stored regarding meshes that we don't have any access to (at least nowhere I can find or learn about).
When it came to those fighters, absolutely nothing in XSI or 3ds max could fix those busted parts of the mesh. Resetting channels, UV's, materials, whatever. It did not matter. To fix it, I exported to obj and imported them again.
Apparently, this process strips the mesh of some hidden information.
And, as I looked upon going through another day of dealing with the Leviathan's 6th dated revision and related conversion issues, I was really quite ready to drop the entire project. Alas, a Lithuanian transvestite reminded me about that fighter and the "solution". I attempted it with the Leviathan and, mysteriously, the 10+ vertex errors I had simply vanished. No issues ingame, nothing.
While this is hardly conclusive evidence, I now have good reason to believe this annoying error stems largely from a single major source.
Somehow, 3ds max retains data that every other game does not care about. Not homeworld 2, not Starcraft 2, no one. But XSI cares about it, enough to take it into its nursery and breast feed it straight off the street. Nevermind the fact it bites, this data apparently causes convertxsi.exe to fail in whatever it does. I mean, convertxsi.exe commonly reports vertex counts exceeding 4x that what 3ds max sees, and even after it "optimizes" files, we still see absurd vertex counts. There's no real telling what it does, and no way to know what FAILED VERTEX CHECKSUM really means. I like to think of it as catching inhuman moans in the dead of the night while wandering the bloodsoaked cherry blossom gardens of Osaka, or the gurgling of my lungs as I go through nearly month 3 of being sick from Pneumonia.
I can't say I am fond of sins or the years of my life it has torn from me with its claws of death. But if anyone can tame this land, it's Richard Simmons.