Opened 7 years ago
Last modified 14 months ago
#9593 new defect
SCI: LSL5 (and others): port drawing issues
|Reported by:||m-kiewitz||Owned by:|
|Cc:||Game:||Leisure Suit Larry 5|
The current port code seems to have quite a few issues. It's not pixel perfect and in case of for example Larry 5, some left-overs stay on screen, when credits windows were shown.
It has to do with ScummVM's Common::Rect not working as rectangles in original SCI and the current code not always adjusting for it.
In this case the main problem is kNewWindow, but other code is problematic too.
It's not a trivial bug to fix, because there is quite a lot of code that doesn't adjust and it also seems there are a few inaccuracies as well.
Change History (6)
comment:1 by , 6 years ago
by , 14 months ago
by , 14 months ago
comment:2 by , 14 months ago
comment:3 by , 14 months ago
If I remember correctly, I found some more off by one errors when compared to the original interpreter. I think it was QfG 1. It's simply not 100% accurate.
Just make screen shots in Dosbox as well as ScummVM and you will see when you flip between them.
It's not a big problem, because the overall behavior is indeed accurate, but it's still not good and there can be issues, especially in fan games.
comment:4 by , 14 months ago
Hi Martin, it's been a while, great to hear from you! =)
I messed up and failed to comment here last year, but this ticket caused me to compare QFG1 EGA screenshots and fix some off-by-one horizontal port discrepancies, especially in the character screen: https://github.com/scummvm/scummvm/commit/71235358e3f7c205e514168b5756ea1944ef3323
There are definitely still some mild discrepancies in ScummVM. The QFG1 EGA character creation screen still draws a one pixel vertical line on the right edge that isn't in the original. But i also suspect that may be a bug in the original, because that line is on the left and the symmetry looks nice. Someone also recently showed me a message box in QFG1 EGA PC-98 (or maybe it was SQ3?) that's drawn one pixel higher in ScummVM than the original. My shallow investigation showed that not only is this likely due to the differences between Sierra's and ScummVM's Rect classes, which we all know of, but also that Sierra's own code had its own off-by-one bugs that would be difficult and confusing to replicate, though not impossible.
I propose that we limit the scope of this ticket, or close it, since many things have been fixed since it was created, and open specific tickets as they come up for remaining individual issues and include screenshots. I'm not suggesting we dismiss port issues as "good enough", but at the same time I also think they *are* pretty good and we should investigate remaining individual discrepancies to see if there's anything we can reasonably do.
Just to clarify: This bug only occurs in one textbox in LSL5 that is drawn off-screen. The off-screen part is not cleared properly. I'm attaching screenshots of the textbox in question