Opened 13 months ago

Closed 2 months ago

#11033 closed defect (fixed)

WME: Save text input broken

Reported by: raziel- Owned by: lolbot-iichan
Priority: normal Component: Engine: Wintermute
Keywords: has-pull-request Cc:
Game: Wintermute

Description (last modified by raziel-)

ScummVM 2.1.0git (Jul 27 2019 18:57:01)
Features compiled in: Vorbis FLAC MP3 RGB zLib MPEG2 Theora AAC A/52 FreeType2 JPEG PNG cloud (servers, local)

I have a recurring issue with saving games in most (if not all) WME games that use text input for save lists.

1) The BACKSPACE key produces a special char which some of the games cannot display, others display some sort of BOX in different sizes. (see screenshot)

2) If there is a save state, the initial BACKSPACE will, on one press, delete the whole name (while also producing that special, sometimes hidden, char). The deletion of the whole save game name might be by design, though. e.g. Corrosion just has a black space underneath the game screen and no indication (also no change in the pointer when hovering it over that list) on where to click at. (see screenshot)

[ 3) Bad lists design. I cannot see where to click to, to add a new save, maybe this is intended, maybe something is not drawn in ScummVM? (I don't know how the original engine does it, so i can't really comment on it) --- see below]

I CAN use the cursor keys to move around and use DEL to delete those special chars.
It's a little tricky to do so if the special chars are hidden, but it is reproducable all the time.
e.g. in ritter, if i press BACKSPACE three times, i need to press cursor left four times to reach the save game name and be able to delete it. The cursor does not move then though until i reach the name of the save game.

I guess the special chars being visible or not depends on the font used by the game?

Tested games working/not using text inpu (which issue)t:

[Corrosion (3) -- see below]
Dirty Split
Escape from the Mansion
James Peris

Tested games that display this issue (which issue):

1 1/2 Ritter (1,2) - invisible special char
Bickadoodle (1,2)
Chivalry is not dead (1,2) - invisible special char
Dead City (1,2,3)
Five Lethal Demons (1,2) - invisible special char
Five Magical Amulets (1,2)
Helga deep in trouble (1,2) - invisible special char

AmigaOS4 - PPC - SDL - BE
gcc (adtools build 8.3.0) 8.3.0

3) was because of outdated save states.
They won't show up in newer ScummVM binaries.
--empty-- slots are visible, once i delete the outdated save states.

Attachments (2)

Bickadoodle (Version 1.2_Windo_000.png (1.0 MB ) - added by raziel- 13 months ago.
Corrosion_ Cold Winter Waiting_000.png (967.6 KB ) - added by raziel- 13 months ago.

Download all attachments as: .zip

Change History (10)

comment:1 by lolbot-iichan, 8 months ago

I cannot reproduce "3) Bad lists design" with Windows builds.
I see visible lines with word "empty" both at Normal and Enchanced Edition of Corrosion, using both latest ScummVM 2.2.0git and released ScummVM 2.0.0.

HOWEVER, I found an interesting glitch:

  1. Run Corrosion with ScummVM 2.0.0
  2. Save game at some slot and exit
  3. Run Corrosion with ScummVM 2.2.0git
  4. Open load menu

Expected result: something is written at slot that was used at step 2 to store a savegame
Actual result: slot is empty, there is neither actual description, nor word "empty" written.

Maybe this is the actual bug that you reproduced? Anyway, I suggest splitting it into separate bug since it is not related to Backspace input.

Last edited 8 months ago by lolbot-iichan (previous) (diff)

comment:2 by raziel-, 8 months ago


Were you able to confirm the other two cases?
And what about ScummVM 2.1.0?

I can confirm that the "bad lists design" seems to be a regression.

Will try to bisect it, but maybe someone else can do that instead, because i'll need to do it manually (git does not feature "automated" bisection on my platform)


comment:3 by raziel-, 8 months ago

Description: modified (diff)

comment:4 by raziel-, 8 months ago

Nevermind my comment above.
I had so many old save states that i never really reached an "empty" slot on my quick tests.
Now i did and the empty slots show up fine.
Old save states deleted and all is fine for 3).

comment:5 by lolbot-iichan, 8 months ago

Keywords: has-pull-request added
Owner: set to raziel-
Resolution: fixed
Status: newclosed

Were you able to confirm the other two cases?

Yes, I reproduced them on Windows and fixed this in

"BACKSPACE key produces a special char" bug is fixed, as well as handling Ctrl+A and Enter during input.

"initial BACKSPACE will, on one press, delete the whole name" is original behaviour, it's like when you click on adress string on Firefox and press backspace: the whole address is removed. It has the same workaround: before initial backspace press Left Arrow key, then press Right Arrow key, so that selection would reset and caret would return to initial position.

Actualy, WME Engine support text selection highlighting and it is visually obvious in some games (e.g. Bickadoodle) that text is selected and would be removed on initial input. This is done by providing different fonts at FONT_SELECTED and FONT properties for WINDOW::EDIT object of interface\system\savename.window file.

I guess, we can close current defect as fixed and create a new defect tagged "original", stating that text selection is invisible in some games. I believe that it would be possible to implement a small workaround for text selection in them, but it's a low priority feature.

Last edited 8 months ago by lolbot-iichan (previous) (diff)

comment:6 by lolbot-iichan, 8 months ago

Status: closedpending

comment:7 by lolbot-iichan, 8 months ago

Created #11287 for text selection issue. Checked all the games you listed - 1 1/2 Ritter and Bickadoodle are not affected, they have dedicated FONT_SELECTED variant different from usual font. Other games are affected - listed them at #11287.

comment:8 by lolbot-iichan, 2 months ago

Owner: changed from raziel- to lolbot-iichan
Status: pendingclosed

Assuming fixed. Let me know if any issues other then selector-related are still reproducable.

Note: See TracTickets for help on using tickets.