Before we get into putting the decoding pipeline together, I wanted to take a quick break to talk about the other asset files. Back in my first post in this series I mentioned two different graphics asset file extensions PIC and SPR (likely sprites), but so far we have only been talking about the PIC files. There may be others, but those two stood out.
I’m not going to bury the lede here, SPR files are just PIC files with a different extension applied, likely just to denote their use within the game. Though even MicroProse was not consistent in their naming within the game. ‘ARMPIECE.PIC‘ is clearly a sprite file, containing several graphic elements in one image. All the SPR files with F15-SE2 appear to be full 320×200 16 colour images. These are not just small fragments. So the game must have the data on how to cut them up buried in the code, or in some other data file. Now that we have tools, we can see what’s in them. Here are what look to be the 3 main sprite assets in the game.



Our friend Neuviemeporte also posted today about the images and sprites. He gives some additional details on the how and where the various assets are used in the game, as well as pointing out some that are mysterious. I highly recommend checking out his journal detailing his efforts to reverse engineer the games source code from the compiled binary, the process has been fascinating. In reference to his comments about the pilots helmet in the F15.SPR and questioning why it would be there, as the helmet doesn’t move or change. I suspect it might be there because clipping around the helmet with the game engine was too processor intensive, so instead they rendered the scene over top the existing image (below), and then super-imposed the pilots helmet back on top of it. The cut line appears to be in line with the rear edge of the plane, which would support this hypothesis.

The remainder of the sprite files look to be mission specific. Basically the mission map, and supporting icons.




I have looked through the other files that come with the game, and none appear to be graphics, or at least not in the same format as the PIC file.
The “Desert Storm” update adds a few more sprites and a few PIC files. As the update is largely just additional scenarios (there is some additional hardware support added as well), the sprites added are just more maps.



The update also includes four PIC files. These PIC files look to be part of the demo that is included, and are actually in a newer version of the PIC format (the update came out in 1991), so we will get to those later as we start to look at the newer variants. I was able to validate this by looking at the code for the demo and could spot the filenames in the string table. (it was a bit difficult to spot, as the demo executable is compressed using the LZSS algorithm… maybe we’ll do a post on that algorithm down the road)

I’ve highlighted the section where the names 1.PIC, 2.PIC, 3.PIC, and 4.PIC appear. Because of how the compression works we only see small fragments of the names “1.p” then “2” then “3” then “4” with bits of binary data between them containing an offset to jump back where the desired data can be found, and a count of bytes to copy. Also the fact that these PIC files are in a newer format, than what the other game assets use, it is unlikely that the game could even read them.
Break time over, now back to putting all the code we’ve written together to make decoding the images a bit easier. After which we’ll take a look into some of the other MicroProse titles to see if any other games use this particular variant, along with hopefully identifying any other variants out there.
This Post is the seventh in a series of posts surrounding my reverse engineering efforts of the PIC file format that MicroProse used with their games. Specifically F-15 Strike Eagle II (Though I plan to trace the format through other titles to see if and how it changes). To read my other posts on this topic you can use this link to my archive page for the PIC File Format which will contain all my posts to date on the subject.
Leave a comment