Opened 16 years ago

Closed 3 years ago

#3707 closed defect (fixed)

SCUMM: accented characters not displayed in msg boxes

Reported by: SF/clemty Owned by: sev-
Priority: low Component: Engine: SCUMM
Version: Keywords:
Cc: Game: The Dig

Description

current SVN version, win32

When playing The Dig in German and hitting space, the pause message is "Pause. Bitte SPACE dr cken, um weiterzuspielen"

This problem exists because afaik the ScummVM GUI font which is used here does not have umlauts. The same issue does not occur in other SCUMM games since there the wording on this message is different (Sam and Max and CoMI don't utilize words with umlaut here).

As a workaround, the message could either be replaced with that from another game, or the "ü" could get expanded into "ue" on the fly.

screenshot attached

Ticket imported from: #1946611. Ticket imported from: bugs/3707.

Attachments (1)

umlaut.png (53.7 KB ) - added by SF/clemty 16 years ago.
German DIG missing umlaut in "pause" message

Download all attachments as: .zip

Change History (14)

by SF/clemty, 16 years ago

Attachment: umlaut.png added

German DIG missing umlaut in "pause" message

comment:1 by fingolfin, 16 years ago

Priority: normallow

comment:2 by fingolfin, 16 years ago

Actually, my stance is that we should remove any attempts to print the pause message in the game data files. We use a different pause dialog anyway, and the rest of the GUI is not localized either. So, my personal solution to this "bug" would be to change the pause dialog (and other dialogs) to simply use an english default message, and then one day we localize ScummVM (e.g. based on jvprat's patches for this).

comment:3 by sev-, 16 years ago

Agreed. With Japanese DIG and Russian games it produces all kinds of garbage-looking messages.

comment:4 by Kirben, 16 years ago

I disagree, it seems a waste to simply ignore the translated messages provided via data files.

Why not change the current code for displaying status messages, to match original games more closely ? using charset from the data files, so all status messages are displayed correctly.

It would be good to have status messages displayed in their correct location (the sentence line) for earlier (V1-V3) SCUMM games too.

I thought jvprat patches was focused on translating GUI messages of ScummVM, and not any in game message. Adding manual translation of any in game message, really sounds like a hack.

comment:5 by SF/clemty, 16 years ago

An alternative could be to manually add an "ü" character to the font, but this is also kinda hackish since it'd only work for this one version (and not for japanese and russian).

While adding strings to the engine to override those originally in the game might be hackish, BASS does this to work around translation bugs (of course here the issue lies with the original game)

I remember the SCUMM pause message looked more like the original (including fount?) before the high-res GUI was implemented. But mixing high-res save dialogs with low-res original pause message would look strange.

comment:6 by fingolfin, 13 years ago

Component: Engine: SCUMM
Game: The Dig

comment:7 by SF/simsaw, 13 years ago

I have checked today and this bug dates very, very long back. The last stable release that didn't have this bug was 0.7.1 (2005-03-27) and the first stable release that included it was 0.8.0 (2005-10-29). Unfortunately, I can't find out which exact commit caused it, because mingw32 was not supported at that time. However, it looks like the bug was caused by switching from in-game font for displaying the message to GUI font. If we would switch back again to in-game font, we would have solved the problem properly.

comment:8 by bluegr, 12 years ago

Summary: DIG: German "pause" message missing umlautSCUMM: accented characters not displayed in msg boxes

comment:9 by bluegr, 12 years ago

Updated description from duplicate bug #3538742.

Here is some extra information from that bug:

---------- Not sure if this is a SCUMM engine or GUI issue. This occurs in various SCUMM games, French DOS version, floppy or CD. I use the latest daily build of SCUMMVM, win 32.

Accented characters are not displayed in messages boxes, such as the pause message, or the F8 key Are_you_sure you_want_to_restart type message. Example: the pause message in MI1 is : "Jeu arrêté. Appuyez sur SPACE pour continuer." SCUMMVM displays : "Jeu arrt. Appuyez sur SPACE pour continuer."

The strings are correct in the resource files and are displayed correctly in DOSBox. This problem has been there forever in SCUMMVM, so this is not a regression. ---------- The problem here is that the original data files use some DOS charpage in the case of DOS versions (and maybe others for Amiga, Mac etc. versions), while our GUI fonts are either ISO-8859-1, ISO-8859-2 or ISO-8859-5. Since in fact there's no requirement on the GUI font we use, it's currently hard to impossible (for 3rd party translations using different char sets) to fix this.

There's a similar problem with filenames reported as bug #1193732 "GUI: non-english chars in directory names not supported".

comment:10 by bluegr, 11 years ago

Just wanted to say, that this occurs when the language.bnd file is loaded - the extra German characters are already missing from the text when it's loaded from the language.bnd file

comment:11 by lordhoto, 11 years ago

The language.bnd file contains the proper character. ScummVM also loads the file correctly. I added some simple output when LANGUAGE.BND is loaded and I get this entry (I output characters >= 128 as hex) for the pause string:

361: "Pause. Bitte SPACE dr\x81cken, um weiterzuspielen."

As you can see the umlaut of u (ü) is encoded as 81h, which is ü in Codepage 850 (https://en.wikipedia.org/wiki/Code_page_850#Code_page_layout).

comment:12 by criezy, 6 years ago

Bug #10319: FULL THROTTLE: Not understandable language in pause mode was closed as duplicate of this one.

comment:13 by sev-, 3 years ago

Owner: set to sev-
Resolution: fixed
Status: newclosed

This has been now implemented with U32 GUI.

Note: See TracTickets for help on using tickets.