Arkham Horror Troubles

My friends and I wanted to try the fan made expansions of Arkham Horror, but when we loaded the extensions, many of the images were discolored. It appears that the images are low resolution. Not all of the images are like this, just most. Only the fan made expansions have this problem. I have tried clearing the cache and reloading. I have also entirely deleted and redownloaded the expansions, modules, and even vassal itself. I have been using vassal 3.2.7. Arkham is compatible with 3.2.2. I appreciate any help you can give. Let me know if you need anymore information.

Thus spake izanami:

My friends and I wanted to try the fan made expansions of Arkham Horror,
but when we loaded the extensions, many of the images were discolored.
It appears that the images are low resolution. Not all of the images are
like this, just most. Only the fan made expansions have this problem. I
have tried clearing the cache and reloading. I have also entirely
deleted and redownloaded the expansions, modules, and even vassal
itself. I have been using vassal 3.2.7. Arkham is compatible with 3.2.2.
I appreciate any help you can give. Let me know if you need anymore
information.

The problem you’re seeing is likely related to Bugs 9882, 10053, and
10075. The short version is that Java incorrectly loads some JPEG
images but the way they’re incorrect is one for which we can adjust
so long as we can detect it. Unfortunately, we’re only guessing about
the exact characteristics of the munged images, so sometimes we end
up miscorrecting images which were loaded properly or not correcting
some images which weren’t.

I’ll take a look at the images in these expansions tomorrow to
determine what’s going on.


J.

Thank you kindly.

Thus spake Joel Uckelman:

Thus spake izanami:

My friends and I wanted to try the fan made expansions of Arkham Horror,
but when we loaded the extensions, many of the images were discolored.
It appears that the images are low resolution. Not all of the images are
like this, just most. Only the fan made expansions have this problem. I
have tried clearing the cache and reloading. I have also entirely
deleted and redownloaded the expansions, modules, and even vassal
itself. I have been using vassal 3.2.7. Arkham is compatible with 3.2.2.
I appreciate any help you can give. Let me know if you need anymore
information.

The problem you’re seeing is likely related to Bugs 9882, 10053, and
10075. The short version is that Java incorrectly loads some JPEG
images but the way they’re incorrect is one for which we can adjust
so long as we can detect it. Unfortunately, we’re only guessing about
the exact characteristics of the munged images, so sometimes we end
up miscorrecting images which were loaded properly or not correcting
some images which weren’t.

I’ll take a look at the images in these expansions tomorrow to
determine what’s going on.

This turned out to be rather subtle. The underlying problem is Oracle
Bug 4712797, which is a long-standing bug in Java (and is not fixed,
despite what Oracle’s tracker says). What’s happening is that there
are some JPEGs which are in the YCbCr color space which Java incorrectly
loads as being in the RGB color space. Because we know how Java is
misinterpreting the pixel data, we can correct it, which is what our
image loader does. The way we were detecting which images need to be
corrected is based on the code quoted in Oracle Bug 4712797—but it
turns out that the code there is from Java 1.4 and that code changed
subtly in Java 1.5—namely that it now checks both horizontal and
vertical subsampling, not just horizontal subsampling. I’ve updated our
test to check for both, and now it correctly determines that the images
in The Door to Saturn extension do not need to be color corrected.

Thanks for reporting this problem. Reports like yours are the reason
obscure bugs get fixed.

I’ve uploaded a build containing the fix I mentioned. Try 3.2.8-svn8784
or later:

vassalengine.sourceforge.net/builds/

Let us know whether this resolves the problem for you.


J.

Beautiful fix. We are playing on 3.2.8 now. Thanks again.