The videos, or midgames, in Strike Commander remain a true mystery to me. I have searched and re-searched the data, uncovering the music, images, and texts, but nothing that explains how to piece them together. Here is how I solved the problem to recreate the game’s introduction.

prideau dans l'intro

The Data

The game’s assets are all stored in TRE-format archives. The format is well-documented, and with a bit of effort, every image and animation can be identified. However, the introduction involves more than just sequences of images stitched together. There are scrolling effects, text, sounds, animations, and music.

I searched for a long time for a file that, like the rest of the game, would contain the definition of the sequences to display, possibly with some opcodes to create the effects. But nothing—nada—no such information can be found in the game’s assets.

However, Some Clues

If I were skilled in reverse engineering with tools like IDA or GHIDRA, I might have more information. While going through the executable file OPTEST.EXE, I came across some interesting findings.

At offset 0x49CFC, you can find the string “air,” and a bit further along, “Back off, almost got tone.”

executable affichage chaine air

It turns out that the value “air” corresponds to the internal identifier the game uses to display the player’s face in conversations. If you replace “air” with the identifier of another character in the game (while keeping it to three letters), you can modify the introduction to display that character’s face instead.

prideau dans l'intro

It seems that the data I’m interested in is located within the executable, and a thorough decompilation should allow me to retrieve it and use it more easily.

But here’s the thing—even if I manage to find my string in Ghidra:

ghidra affichage chaine air

Unfortunally Ghidra doesn’t find any reference to the address :(

ghidra affichage chaine air

La solution.

For now, while waiting to gain more knowledge in disassembly and decompilation, I turned to a good old technique: re-coding the data to display the introduction.

I implemented the introduction sequence using the following data schema


flowchart TD
    MIDGAME --> SEQUENCE
    SEQUENCE --> SHOTS
    SHOTS --> BACKGROUND
    SHOTS --> SPRITES
    SHOTS --> FOREGROUND
    SHOTS --> MUSIC
    SHOTS --> SOUNDS

I didn’t start from scratch. I drew inspiration from the data model used to represent the game in GAMEFLOW.IFF.

The Result

The result is this first video of the game’s introduction. I’m thrilled to finally be able to display it, though there’s still much to do to implement the data for the other videos. Perhaps, in the meantime, I’ll discover how to decompile the executable properly, allowing me to extract the data without having to comb through the game’s assets to find them.

See you soon, and happy flying!