Logo Pending

Pattern pen implementation differences

While looking into something unrelated in Space Quest 3, I noticed that the dirt on the right of the starting screen was drawn differently between DOS SCI and ScummVM. Today I looked into it a little closer, comparing SCI proper, ScummVM, SCI Companion, and SCI Viewer.

Damn, that’s some really tiny differences that you’re not gonna spot just like this. But here they are:

  • In most of them, the mound on the right looks like this:
  • Except in ScummVM, where it looks like this: (and now you know why I looked into this)
  • Below the column in the middle looks like this in SCI and SV:
  • But it looks more like this in SCI Companion and ScummVM alike:
  • The heap on the left is also mildly affected, looking like this in SCI and SV:
  • But it looks like this in SCI Companion and ScummVM:
  • And finally, SV, renowned for being Very Good At This, breaks the one rule — you don’t get to draw white on non-white:

So yeah, a slight difference in where a window border is drawn is the least of your problems.

Update: ScummVM had its pattern table corrected this week. Guess I’ll have to check out the latest nightly, huh? And yes, it does match SCI proper now. Good job everyone!

Bonus update: sluicebox suggested comparing against SCI Studio. Here you go, friend: the mound on the right looks like this in SCI Studio, a distinctive variation, and the bit under the pillar and to the left matched SCI Companion and ScummVM (past tense now),

[ , , ]

3 thoughts on “Pattern pen implementation differences

  1. In AGI, pen patterns were originally reported (incorrectly) as being a table of bit values similar to what ScummVM appears to be using for SCI. But in reality, there is no need for a table of bits; AGI used a math algorithm to calculate patterns. Which is much easier to implement (and I also find it much more elegant). Perhaps SCI does the same thing? If so, you could then ditch the table and use math to calculate patterns.

    1. Could well be, but we have no source code for SCI 0.x so I for one wouldn’t know. In fact, I can’t find any pen pattern code in the (admittedly incomplete!) AGI source code to compare with.

      1. If you’re referring to the AGI source code that was found in unused disk space, yeah, not only is it incomplete, but it’s obviously from a version preceding 2.089. And patterns weren’t introduced until version 2.425. It’s easy to disassemble the interpreter to see their algorithm. If you are interested, details are in WinAGI help file.

Leave a Reply

Your email address will not be published. Required fields are marked *