The second thing I noticed after running DevilutionX (the first being the laggy cursor #783) was that the image was extremely blurry. I tried playing around with the settings but it seems that the game is not scaling using the most adequate algorithm for pixel art, resulting in a somewhat blurry image even when the screen resolution is a multiple of 640x480.
We should try to add an integer scaling option with pixel multiplication (no bilinear filtering or anything like that) and make sure the game scales to integer multiples of the standard resolution based on target resolution.
This is how the launcher from GOG works currently and the difference is night and day.
| GOG integer scale x 2 (1280x960) | DevilutionX (1280x960) |
| --- | --- |
|
|
|
I actually had to use windows capture instead of in-game screenshot for DevilutionX. For some reason, when doing an in-game print, the final PCX file appears correctly. However, when looking at the game, the picture above is what I see.
I don't know yet why this is happening. If anybody has any idea just let me know.
Found it. This seems to be a bug in SDL when the native Windows DPI scaling is not set to the 100% default value.
I get the following results if I set my main monitor back to 100% scale:

Found this post where folks are discussing it:
https://stackoverflow.com/a/41746429
I'll investigate further to see if it is possible to make the game render properly when windows scaling is used.
Ok I just realized that DPI-awareness is a separate issue entirely and that integer scaling is still required.
These are the results with and without integer scaling on a 1080p display:
| integer x 2 (1080p -> 960p) | non-integer scale |
| --- | --- |
|
|
|
Diablo technically isn't pixel art but prerendered 3D, some prefer blurry scaling others integer scaling so really good that you are implementing this as options.
Diablo technically isn't pixel art but prerendered 3D
My bad for using the term "pixel art", that makes no sense indeed. What I meant to say was really "pixel based", as in, "not vector-based graphics" which scale naturally with resolution.
some prefer blurry scaling others integer scaling so really good that you are implementing this as options.
Absolutely. While I personally think integer scaling is the way to go, this is highly subjective. Also, there are a lot of people who don't even notice the difference and just prefer the game to fill the whole screen real estate.
Considering this one as closed (thought it would be closed by default once the PR was merged).
"This implements #784" isn't an accepted syntax for GitHub, you need to write "Resolves #784" instead. Or one of the other supported terms: https://docs.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword