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:
- 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.
- 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.
- 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.
- 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.
- 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).
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).
The patch looks good and I committed it as is. This means issue 1 and possibly 2 should be fixed.
Issue 3 is likely the same as bug #12940.