Opened 3 months ago

Last modified 7 days ago

#13412 new defect

AGS: Zniw Adventure issues and crash (segmentation fault)

Reported by: antoniou79 Owned by:
Priority: normal Component: Engine: AGS
Version: Keywords: Zniw Adventure, fonts, crash
Cc: Game:

Description (last modified by antoniou79)

This is tested on Windows 10 x64 21H2 (19044.1620) using ScummVM latest development build from master (2.6.0git)

I'm logging the issues I've experience in the game that also exist in the demo that is available on the IndieDB web site (https://www.indiedb.com/games/zid-zniw-chronicles-zniw-adventure/downloads).

In short the issues are:

  • A segmentation fault in the "Extras" in-game option (only in the Demo as far as I can tell!).
  • (new) In the full game the Extras menu is not displayed properly (Extras menu buttons are wrongly overlayed over main menu buttons that should be hidden)
  • Fonts or glyphs looking different (bolder or more cleanly defined) than when running the game or demo without ScummVM.
  • Main character's outline is also more bold and cleanly defined when running the game or demo without ScummVM
  • There's a glitch happening in the in-game Credits, when moving to the next credit screen.

Steps to reproduce the *segmentation fault* issue:

  • Launch the demo, choose a language from the start screen
  • Choose one of the "Forest Demo" or "Cave Demo".
  • When you gain control of the main character, press Esc to bring the native in-game menu.
  • Click on the "Extras" option. The segmentation fault may happen immediately at this point, but it may not and the Extras dialogue window will be displayed.
  • If the Extras dialogue window is displayed, move randomly the cursor around within that window. The segmentation fault occurs always for me -- I think it's some area that triggers it.

Debugging the segmentation fault issue with Visual Studio points to putpixel() from engines\ags\lib\allegro\gfx.cpp, when its x, y argument values are outside the width, height limits. This putpixel() call is done by alfont_textout_ex() in engines\ags\lib\alfont\alfont.cpp.

Putting a CLIP in the two lines here:
https://github.com/scummvm/scummvm/blob/d719e83783a530e6e272ddd0207edaf33fb37ed0/engines/ags/lib/alfont/alfont.cpp#L2177
fixes the segfault, but this may not be the right solution -- since it causes some new glitches in the credits (not shown in this ticket).

I am attaching screenshots from the rest of the issues (bad font rendering, bad character outline, credits glitch).

Note: The issue with in-game fonts black outline not being drawn below the glyph's "baseline" was fixed by one the commits by DreamMaster, a few weeks ago, in the process of synching the AGS engine with upstream code.

Attachments (8)

textWithScummVM.png (99.9 KB ) - added by antoniou79 3 months ago.
textWithoutScummVM.png (82.8 KB ) - added by antoniou79 3 months ago.
textWithScummVM01.png (177.4 KB ) - added by antoniou79 3 months ago.
textWithoutScummVM01.png (152.3 KB ) - added by antoniou79 3 months ago.
charactersWithScummVM.png (99.1 KB ) - added by antoniou79 3 months ago.
charactersWithoutScummVM.png (78.1 KB ) - added by antoniou79 3 months ago.
creditsGlitchWithScummVM.png (176.6 KB ) - added by antoniou79 3 months ago.
agsZniwSettings.png (33.7 KB ) - added by antoniou79 3 months ago.

Download all attachments as: .zip

Change History (15)

by antoniou79, 3 months ago

Attachment: textWithScummVM.png added

by antoniou79, 3 months ago

Attachment: textWithoutScummVM.png added

by antoniou79, 3 months ago

Attachment: textWithScummVM01.png added

by antoniou79, 3 months ago

Attachment: textWithoutScummVM01.png added

by antoniou79, 3 months ago

Attachment: charactersWithScummVM.png added

by antoniou79, 3 months ago

by antoniou79, 3 months ago

comment:1 by antoniou79, 3 months ago

Description: modified (diff)

It seems that the segmentation fault in the Extras screen only happens in the Demo. I cannot reproduce it with the full game (GOG version).

comment:2 by antoniou79, 3 months ago

Also attaching the AGS setup settings I'm using for the full game (where the screenshots are taken from), in case scaling and renderer are relevant to the issue(s).

by antoniou79, 3 months ago

Attachment: agsZniwSettings.png added

comment:3 by antoniou79, 3 months ago

Video showing the credits' glitch:
https://youtu.be/Y5M4S5jwNQc

comment:4 by antoniou79, 2 months ago

Re the fonts issue. Looking at another bug ticket (https://bugs.scummvm.org/ticket/13437) about the font discrepancy for Maniac Mansion Deluxe, I wonder if the issue is as "simple" as some bug that causes the engine to choose the wrong font ie. a completely different font name/file than the one it's supposed to, and not a font rendering issue.

comment:5 by antoniou79, 7 weeks ago

One of the recent commits (during last week, most likely) broke the UI in the credits tab for the demo and the main game. Now the arrows are missing, only "<" and ">" symbols appear at the edges of the tab, and also the "X" button is missing to close the tab. The attached video shows how the Credits tab was before.

Also, the UI for Extras in the main game, from the main menu, is now broken. It loads its panel, but the buttons from the main menu stay overlayed on the panel, obscuring it. Those buttons shouls disappear when clicking on "Extras".

The reported bugs in the OP of the ticket, still persist.

comment:6 by antoniou79, 9 days ago

Description: modified (diff)
Keywords: fonts crash added

Quick update; the reported issues are still in the recent development build 2.7.0git (master HEAD) and stable RC 2.6.0.

comment:7 by antoniou79, 7 days ago

Recent AGS commits, (today's commits, since I checked yesterday) fix the segmentation fault in the Extras screen of the Demo version (first bullet point in the ticket OP) in the development branch 2.7.0git that I've tested. Good work!

Also the glitch in the credits screen is somewhat fixed. Still glitchy -- and missing navigation button and Back (X?) button) but looks better.

The bug with the overlays in the Extras screen (second bullet point in the ticket OP) in the full game persists.

Note: See TracTickets for help on using tickets.