[Scummvm-tracker] [ScummVM :: Bugs] #14258: AGS: Crash and text glitches for Dreams in the Witch House
ScummVM :: Bugs
trac at scummvm.org
Tue Feb 21 18:25:01 UTC 2023
#14258: AGS: Crash and text glitches for Dreams in the Witch House
-------------------------------------------------+-------------------------
Reporter: antoniou79 | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Engine:
| AGS
Version: | Resolution:
Keywords: Dreams in the Witch House, crash, | Game:
fonts, glyphs, |
-------------------------------------------------+-------------------------
Description changed by antoniou79:
Old description:
> I am testing with ScummVM 2.8git (latest, built locally from master HEAD)
> on Windows 10 x64.
>
> The version of the game is from GOG, current version 1.02, English
> language.
>
> The issues that I have so far encountered with the game:
> 1. During credits (accessible from the game's start menu) the game would
> randomly crash and also randomly display white-ish artifacts at the
> bottom of the screen while the text crawl is ongoing.
> 2. Switching back and forth from Credits view to Start Menu view would
> also cause white-ish artifacts to be dispayed on screen. A crash could
> randomly happen in this screen as well. This might be connected to the
> previous issue though and have the same cause.
> 3. At least some font glyphs render very different than when playing the
> game as standalone (from it's executable, without ScummVM). Like the
> capital "S" seems to be rendered as a small case "s". This is the most
> striking to me, but other glyphs are different too. I will be attaching
> screenshots for this.
> 4. Some text overlaps out of its "container" and it does not look as it's
> supposed to be. In the "standalone" launch the text fits in its
> containers properly. I will be attaching screenshots for this too.
> 5. This is a minor glitch, but it is different than what the "standalone"
> launch of the game does. Sometimes, when launching the game, after the
> first logo animation for "Atom Brain Games", on ScummVM there is a brief
> glimpse of the main character. On "standalone" launch this glimpse is not
> there, and it's a smooth fade out/fade in to the Start menu screen.
> (Maybe this is due to the debug mode being really slow, in which case
> it's probably not a serious bug)
>
> When testing with my MinGW x64 builds for cases 1 and 2, ScummVM would
> either abruptly exit to desktop with no message at all or crash with a
> "Segmentation fault".
>
> When debugging with Visual Studio, at the point when the game crashed,
> the code execution was either:
> - In ags/lib/allegro.gfx.cpp, putpixel(), line 248-249, "case 4", and the
> VS message was "Exception thrown at 0x00007FF652203AF3 in scummvm.exe:
> 0xC0000005: Access violation writing location 0x0000018FDFEACD34." This
> was the most often one I got (probably the address locations would vary
> -- I didn't notice). When this happens, variable y has a value of "-1".
> - In ags/engine/media/audio/sound.cpp, my_load_static_ogg(), lines 74-75.
> I didn't get this more than once, so it could be a side effect of the
> invalid memory access of the previous issue.
>
> What seems to have solved issue 1 (and possibly issue 2, if they are
> connected).
> - I copied the extra conditions for "x < -1" and "y < -1" to our code in
> putpixel() from:
> https://github.com/adventuregamestudio/ags/blob/bcf90697ac93080d0edac3e99727041a4e2b461a/Common/gfx/allegrobitmap.cpp#L349
>
> Since this "fix", I did not get issues 1 nor 2. I could create a PR for
> this, but maybe someone more familiar with the engine could do it -- even
> without a PR. It's quite a simple fix, and it seems that the code for it
> in the AGS source tree is from a really old commit (11 years ago).
New description:
I am testing with ScummVM 2.8git (latest, built locally from master HEAD)
on Windows 10 x64.
The version of the game is from GOG, current version 1.02, English
language.
The issues that I have so far encountered with the game:
1. During credits (accessible from the game's start menu) the game would
randomly crash and also randomly display white-ish artifacts at the bottom
of the screen while the text crawl is ongoing.
2. Switching back and forth from Credits view to Start Menu view would
also cause white-ish artifacts to be dispayed on screen. A crash could
randomly happen in this screen as well. This might be connected to the
previous issue though and have the same cause.
3. At least some font glyphs render very different than when playing the
game as standalone (from it's executable, without ScummVM). Like the
capital "S" seems to be rendered as a small case "s". This is the most
striking to me, but other glyphs are different too. I will be attaching
screenshots for this.
4. Some text overlaps out of its "container" and it does not look as it's
supposed to be. In the "standalone" launch the text fits in its containers
properly. I will be attaching screenshots for this too.
5. This is a minor glitch, but it is different than what the "standalone"
launch of the game does. Sometimes, when launching the game, after the
first logo animation for "Atom Brain Games", on ScummVM there is a brief
glimpse of the main character. On "standalone" launch this glimpse is not
there, and it's a smooth fade out/fade in to the Start menu screen. (Maybe
this is due to the debug mode being really slow, in which case it's
probably not a serious bug)
When testing with my MinGW x64 builds for cases 1 and 2, ScummVM would
either abruptly exit to desktop with no message at all or crash with a
"Segmentation fault".
When debugging with Visual Studio, at the point when the game crashed, the
code execution was either:
- In ags/lib/allegro.gfx.cpp, putpixel(), line 248-249, "case 4", and the
VS message was "Exception thrown at 0x00007FF652203AF3 in scummvm.exe:
0xC0000005: Access violation writing location 0x0000018FDFEACD34." This
was the most often one I got (probably the address locations would vary --
I didn't notice). When this happens, variable y has a value of "-1".
- In ags/engine/media/audio/sound.cpp, my_load_static_ogg(), lines 74-75.
I didn't get this more than once, so it could be a side effect of the
invalid memory access of the previous issue.
What seems to have solved issue 1 (and possibly issue 2, if they are
connected).
- I copied the extra conditions for "x < 0" and "y < 0" to our code in
putpixel() (allegro.gfx.cpp) from:
https://github.com/adventuregamestudio/ags/blob/bcf90697ac93080d0edac3e99727041a4e2b461a/Common/gfx/allegrobitmap.cpp#L349
Since this "fix", I did not get issues 1 nor 2. I could create a PR for
this, but maybe someone more familiar with the engine could do it -- even
without a PR. It's quite a simple fix, and it seems that the code for it
in the AGS source tree is from a really old commit (11 years ago).
--
--
Ticket URL: <https://bugs.scummvm.org/ticket/14258#comment:1>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list