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…)June 2024
Post Index
-
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…) -
Input, more input!

I’ve interrupting my planned post to make this one, as this potentially has an effect on that post. Yesterday after my post about additional titles went live, one of my readers, who wishes to remain anonymous, gifted me with a substantial array of PIC game assets for various MicroProse titles (spanning 1988-1994) to help me further catalogue which games use which variants, and to identify any more variants or sub-variants. To that reader I say thank you, what you provided is sure to be helpful, as we are about to find out.
(more…) -
Axel F
We last left off having uncovered a dew more mysteries of the MicroProse PIC file format. We wrote a tool to examine PIC files to try and determine which version of the file they were, after some rework, we were fairly successful. Though in that process we uncovered a few new sub-variations in the data that we need to account for. In this post we will deal with those variations we discovered with the PIC90 version.
(more…) -
The PIC of the Litter
Several posts back we looked at some other MicroProse titles and discovered that the PIC file format has evolved over the years with various titles. In this post we’re going to look at a few more titles that I found to have PIC files and see where they fit into the mix. Then we will hopefully be able to write some quick code to be able to identify what type of PIC file we’re looking at. This is a first stage to opening the newer variants up to our encoder/decoder.
(more…) -
Unfinished Business
We have some unfinished business to do in light of the discoveries we made last time. I now no longer trust my prior results with the RLE encoder, so we need to go back and revisit that result. Last post we wrapped things up by solving the red herring of the LZW compressor generating garbage. Which brings into question the issue we had surrounding the same file for RLE encoding. But first, we need to put all the pieces of the encoder together, and with that perhaps we can kill two birds with one stone. We can address the questionable RLE result, and we can fully validate our encode and decode stacks.
(more…)