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…)MicroProse
Posts related to various MicroProse games and assets
Post Index
-
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…) -
PIC: The Next Generation
Time to take on the last of the MicroProse PIC variants we have uncovered so far, PIC93. This variant stands out from the others a bit as it is the first update to the format that we’ve seen in 3 years. Also to the best of our knowledge, the only released title ever to use it was Railroad Tycoon Deluxe (RRDX). RRDX is also one of the last titles to use the PIC format that we can see. Though even with that, the titles that did release after RRDX seem to have gone back to the PIC90 variant. Another oddity is that this format seems, at first glance, closer in kin to the PIC89 format than the PIC90 format. PIC89 being the format used with the games predecessor Railroad Tycoon. With that said, let’s dig into it and see if we can reveal its secrets.
(more…) -
Dither me this
In a previous post we investigated the remaining unknowns with the
(more…)PIC90PIC89 variant of the MicroProse PIC file format. This post will be more of the same, except this time we will tackle thePIC91PIC90 variant, bringing us one step closer to fully understanding the format, and it’s evolution, based on the sample set of files we have available to us. Also as a side note before we go on here, in that previous post I’ve updated it a bit to include the CGA remap/dithering rendering at the end to be complete. -
Rewriting history
Maybe not rewriting it, but correcting our recording of it. In my last post we analyzed the assets for a large number of titles from MicroProse that expanded our understanding of the sub variants and when they first came to use. As a result I am having to correct the designations I have been using to identify them.
(more…)