I couldn’t let it go, or at least my brain couldn’t. After decoding the SSI-IMG file format for the EGA/VGA assets I had planned to leave it at that. The dark corners of my brain, however, decided that I was going to have to decode the CGA variant as well. As a result this post will be about diving into the CGA framebuffer, and applying it to what we see in the CGA version of the IMG file format.
(more…)-
Thunderbolts and Lightning
At the request of one of my readers here, I was asked to look at another graphics asset format. This time it’s the IMG format used by Strategic Simulations, Inc. (SSI) with their 1989 release of Red Lightning. I honestly don’t know much about this game, and all I have really is the one asset file that was sent for me to look at. The goal here is to be able to read and write this format, to facilitate modding of the game. With that said, let’s see what we can find out, and help make it happen for our reader.
(more…) -
A new sub in the barn
Well looks like the break from the PIC file format didn’t last long. My last post we were wrapping up with the decoding of the MicroProse CAT file format when we stumbled upon what appears to be a previously unseen sub-type of the PIC89 variant of the PIC file format. I had actually suspected that this sub-type might exist, back when we were exploring the PIC89 variant (then referred to as PIC90 for reasons covered here), but had no assets to support that theory until now. Lets dig in and see what this mystery sub-type holds for us.
(more…) -
The CAT is out of the bag
After practically melting my brain figuring out the LZSS compressor over the past several days, it’s time to take a break from the PIC file format for a post or two, and focus in on another file format from MicroProse. Namely the CAT file, found with games such as Silent Service II. The file seems to be some sort of archive that contains other asset files within. Lets dig in and tear it apart to see what we can learn from it.
(more…) -
Just a trim off the top
With luck this will be the final post on the Bellard-LZSS compressor, allowing us to sign off on the last piece of the puzzle required to write a PIC encoder for the Railroad Tycoon Deluxe (RRDX) variant of the MicroProse PIC file format PIC93. Last time we left off having found a few bugs, and some implementation variances that resulted in our output being different than that of the reference file. We finished off by having our primary test file pass a full validation. However upon looking at a few others we were still failing on those. So in this post we pick-up where the last one left off and try to find whatever other bugs and variances remain.
(more…) -
Sometimes you need a hammer
In my last post, we wrapped up writing our Bellard-LZSS compressor, to facilitate eventually writing a PIC93 encoder for Railroad Tycoon Deluxe (RRDX) from MicroProse. In this post we will take the next steps, debugging and validating the code which we have written. I have no doubt it will take some tweaking to get the compressor to generate the original compressed stream that we have as a reference, I just hope we are not too far off right out of the gate. So with that said, lets get into it.
(more…) -
Shoving the toothpaste back into the tube
In my last post on the PIC93 version of the MicroProse PIC file format we left off having successfully decompressed the LZSS compressed image data within the file and reconstituting the image. That part was easy, as the code was pretty much already written for us in the form of the unlzexe github repository. It wasn’t easy getting to the point of identifying that Bellard-LZSS was actually the compression used. In the end we got there. In this post we’re going to try and reverse the process. This could prove to be far more challenging as we don’t have a full reference to look back onto.
(more…) -
SPC: Above and Beyond (part 2)
Last time we left off in a pretty good place, and with a decent understanding of the structure of the MicroProse SPC file format. Even if not totally correct, or complete, it seems to be good enough to traverse through the file to locate all the data. So with that, in this post we are going to convert that data into images we can see, and make any adjustments to our understanding of the format as necessary from there.
(more…) -
SPC: Above and Beyond (part 1)
I decided to take a brief interlude from the MicroProse PIC file format we have been reverse engineering over the last while. In this post we will look at another MicroProse file format, the SPC file format and try to learn its secrets. SPC files appear to be another format used by MicroProse in Railroad Tycoon Deluxe to store graphic assets. Many of the file names correspond with PIC assets which we have already analyzed in my previous post. I suspect that these are perhaps sprites, as most of the PIC images I’ve looked at so far appear to be full screen images. Only one way to find out, let’s dig in!
(more…) -
Oops, I did it again
This post is not what I thought it would end up being about. I had plans, but it seems fate, and the dark corners of my brain, had a different path set out for me. You see after I wrapped up my last post on PIC93 I had LZSS compression on my mind, and thought maybe it was a good time to dive into LZSS. Specifically how it was used to compress the executable files for many MicroProse titles in the early 1990’s. I wasn’t even planning to blog about it at this time, it was only meant as a distraction for a little while. Then it happened…
(more…)