Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#5992 closed defect (fixed)

AGOS: Simon1 Amiga - Display problem with German letters

Reported by: SF/zaurak Owned by: Kirben
Priority: normal Component: Engine: AGOS
Keywords: Cc:
Game: Simon the Sorcerer 1

Description

Version:ScummVM 1.5.0git2166-g1452327 (Jan 30 2012 11:39:37)
System: Windows XP SP3
Game: Simon the Sorcerer, Amiga disk, German version

The letters ä, ö, ü and ß from the German alphabet aren't displayed correctly. See screenshots from Amiga and ScummVM.

Ticket imported from: #3492874. Ticket imported from: bugs/5992.

Attachments (3)

simon1-ger-amiga-scummvm.png (125.0 KB) - added by SF/zaurak 7 years ago.
ScummVM Screenshot
simon1-ger-amiga-amiga.png (50.7 KB) - added by SF/zaurak 7 years ago.
Amiga Screenshot
simon1-amiga-detection.png (50.2 KB) - added by SF/zaurak 7 years ago.
ScummVM detection

Download all attachments as: .zip

Change History (9)

Changed 7 years ago by SF/zaurak

ScummVM Screenshot

Changed 7 years ago by SF/zaurak

Attachment: simon1-ger-amiga-amiga.png added

Amiga Screenshot

comment:1 Changed 7 years ago by digitall

zaurak: Please confirm that your game is detected as "Simon1 (Floppy/German)" or similar i.e. the language has been correctly detected.

This should be accounted for by the german_simonFont data table in engines/agos/charset-fontdata.cpp

Unless this data is wrong or otherwise the font characters are not correctly display by Common code, then the issue is probably either that the version's language is not reported as German.

Changed 7 years ago by SF/zaurak

Attachment: simon1-amiga-detection.png added

ScummVM detection

comment:2 Changed 7 years ago by SF/zaurak

I re-added the game to ScummVM, to be sure. It is detected as Amiga AGA floppy German (detection screenshot attached), but the bug is still present. Do the Amiga versions use that charset-fontdata.cpp, too?

comment:3 Changed 7 years ago by digitall

This is tricky code to follow as it is fairly complex and tangled.. But I can't see any difference in the usage of fonts for Amiga in the function which uses these tables i.e. void AGOSEngine::windowDrawChar(WindowBlock *window, uint x, uint y, byte chr)

However, the string rendering code here has two different function paths, Amiga and Non-Amiga i.e.
void AGOSEngine::renderString(uint vgaSpriteId, uint color, uint width, uint height, const char *txt) - Non-Amiga
void AGOSEngine::renderStringAmiga(uint vgaSpriteId, uint color, uint width, uint height, const char *txt) - Amiga
Though neither seem to access the font table directly, it is possible that the code differences in the Amiga string rendering are causing the German font glyphs to be truncated, or that the string rendering code for Amiga fails to use the Non-English font data...

An AGOS dev with Amiga and Windows/DOS versions of Simon1 will need to investigate
(I only have Simon1 Win/DOS, so can't look at this).

comment:4 Changed 7 years ago by Kirben

Owner: set to Kirben
Resolution: fixed
Status: newclosed

comment:5 Changed 7 years ago by Kirben

The glitches were due to ScummVM lacking the extra font data required by the German Amiga version of Simon the Sorcerer 1.

I added the font data for the German Amiga version of Simon the Sorcerer 1 to ScummVM Git, use the next daily snapshot of ScummVM GIT.

comment:6 Changed 7 years ago by SF/zaurak

Works fine now, thanks!

Note: See TracTickets for help on using tickets.