Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#5960 closed defect (fixed)

TOUCHE: Crashes in Spanish Version

Reported by: SF/edea86 Owned by: wjp
Priority: normal Component: Engine: Touche
Keywords: Cc:
Game: Touché: The Adventures of the Fifth Musketeer

Description

ScummVM version: tested in 1.2, 1.3 and 1.4, and crashes in all of them
Language: Spanish, Talkie version
Platform: Linux (Ubuntu 11.10)
ScummVM crashes and ends here:
-In Le Mans, inside the armory, when trying to grab the file that is on the wall
-In Le Mans, after examining the boot behind the curtain there is a dialogue, and it is in the crossroads when it crashes, right after Geoffroi asks Henri to take the talisman back to Fifi.

Ticket imported from: #3483383. Ticket imported from: bugs/5960.

Attachments (1)

touche-es.24 (4.1 KB ) - added by SF/edea86 8 years ago.
"Examine" the boot, it crashes after the dialogue in the crossroad

Download all attachments as: .zip

Change History (24)

by SF/edea86, 8 years ago

Attachment: touche-es.24 added

"Examine" the boot, it crashes after the dialogue in the crossroad

comment:1 by SF/edea86, 8 years ago

I forgot to copy the error:

"User picked target 'touche-es' (gameid 'touche')...
Looking for a plugin supporting this gameid... Touche Engine
Starting 'Touche: The Adventures of the Fifth Musketeer'
scummvm: engines/touche/graphics.cpp:74: static int Touche::Graphics::getCharWidth16(uint8): La declaración «chr >= 32 && chr < 32 + _fontSize» no se cumple.
Abortado"

And it also happens with the subtitles off.

comment:2 by digitall, 8 years ago

Summary: Spanish version: Crash in the crossroad (Le Mans)TOUCHE: Crashes in Spanish Version

comment:3 by digitall, 8 years ago

edea86: Could you please attach a text file to this bug with a file listing of your Touche datafiles including file MD5sums. The output of a tool such as http://www.md5summer.org or a recursive md5sum would be optimal.
This allows us to identify your language variant exactly and quantify the differences from the English version. I hope that one of our developers will have the same variant, unfortunately Touche is quite hard to get copies of, especially in language variants, so this might take a while to look at.

If you can do some interactive debug with us sometime in #scummvm on freenode, then this may get fixed... but without interactive access to the SP variant... this is very difficult to fix.

comment:4 by SF/edea86, 8 years ago

Thanks for checking into it.

According to the ScummVM wiki, the datafiles for the game are:
-TOUCHE.DAT
-OBJ
-V*

I tried the game with the minimum files needed, I also removed the voices files, and it still crashes the same way, so the problem (I guess) should be in either TOUCHE.DAT or OBJ which are the only files that I kept in the game folder.

I used the "md5sum" command in the Ubuntu terminal:

d3c81cb2f8f7eb4a4852f30264bde7ec OBJ

39e9d914996324e7662720b4d5fa4816 TOUCHE.DAT

comment:5 by digitall, 8 years ago

I ran MD5sums on my English version.
The OBJ file has the same MD5 as yours, but the english TOUCHE.DAT is 6de2714bef18056f93fcf6e160be8a66 (Not really surprising).

In order to progress, we will probably have to do some interactive debugging as I don't have the SP version.

If you are capable, get the latest development code and compile it... This will help:
http://wiki.scummvm.org/index.php/Git#Retrieving_the_code
http://wiki.scummvm.org/index.php/Compiling_ScummVM/GCC

When this is working, if you contact myself or another interested developer on the IRC channel #scummvm at freenode, we should be able to debug..

comment:6 by wjp, 8 years ago

See http://sourceforge.net/support/tracker.php?aid=2040311 for potentially relevant background info on the Spanish font table.

comment:7 by wjp, 8 years ago

I've just added some specific debugging code to help with this.
Could you try with the next nightly build (or compile from the latest git sources yourself), and run scummvm with

./scummvm --debugflags=charset

You'll get a lot of debugging output starting with 'stringwidth:' and 'raw:'. Please copy-paste the last two of those lines right before the error. They'll likely contain some characters missing in the in-game font. If that is the case, we'll be able to add them with this extra information.

comment:8 by wjp, 8 years ago

Looking a bit closer at the specific numbers in #2040311, the Spanish version is probably just using the code page 850 encoding.

comment:9 by wjp, 8 years ago

Owner: set to wjp
Resolution: fixed
Status: newpending

comment:10 by wjp, 8 years ago

If this is indeed CP850, this is now fixed by e8ef680400. Edea, could you verify it is working properly in the next nightly build or a compile from latest git sources? If it no longer crashes, please also double check that there are no wrong letters in the sentence that used to crash ScummVM.

comment:11 by SF/edea86, 8 years ago

Status: pendingnew

comment:12 by SF/edea86, 8 years ago

Thank you for working on it!
I'll try it as soon as I actually learn how to compile...

comment:13 by digitall, 8 years ago

edea86: If you really have trouble doing that, you can use a precompiled daily build from here instead:
http://buildbot.scummvm.org/builds.html

comment:14 by wjp, 8 years ago

Status: newclosed

comment:15 by SF/edea86, 8 years ago

Sorry, I hadn't had the time to test it until now.
I've downloaded today's build (1.5.0git2626-gb918149), Debian 32bits version since I am using Linux Mint.
I've tried to grab the file in the armory and it still crashes, error is slightly different (it says 71 instead of 74):

~/Juegos/debian-x86-master-b918149e $ ./scummvm
User picked target 'touche-es' (gameid 'touche')...
Looking for a plugin supporting this gameid... Touche
Starting 'Touche: The Adventures of the Fifth Musketeer'
Connected to Alsa sequencer client [14:0]
ALSA client initialized [128:0]
scummvm: ../../src-master/src/engines/touche/graphics.cpp:71: static int Touche::Graphics::getCharWidth16(uint8): La declaración `chr >= 32 && chr < 32 + _fontSize' no se cumple.
Abortado

comment:16 by wjp, 8 years ago

That's too bad. Have you had a chance to try the debugging mode I suggested earlier?

Repeating here for convenience:

./scummvm --debugflags=charset

You'll get a lot of debugging output starting with 'stringwidth:' and
'raw:'. Please copy-paste the last two of those lines right before the
error. They'll likely contain some characters missing in the in-game font.
If that is the case, we'll be able to add them with this extra information.

comment:17 by wjp, 8 years ago

Resolution: fixed
Status: closednew

comment:18 by SF/edea86, 8 years ago

"Coger" is the last word I see before ScummVM closes:

stringwidth: Coger
raw: 43 6F 67 65 72
stringwidth: Son de tama�os diferentes.
raw: 53 6F 6E 20 64 65 20 74 61 6D 61 A4 6F 73 20 64 69 66 65 72 65 6E 74 65 73 2E
stringwidth: Son de tama�os diferentes.
raw: 53 6F 6E 20 64 65 20 74 61 6D 61 A4 6F 73 20 64 69 66 65 72 65 6E 74 65 73 2E
stringwidth: �M�sieu! �No toqu�is mis herramientas!
raw: AD 4D EF 73 69 65 75 21 20 AD 4E 6F 20 74 6F 71 75 82 69 73 20 6D 69 73 20 68 65 72 72 61 6D 69 65 6E 74 61 73 21
scummvm: ../../src-master/src/engines/touche/graphics.cpp:71: static int Touche::Graphics::getCharWidth16(uint8): La declaración «chr >= 32 && chr < 32 + _fontSize» no se cumple.
Abortado

Missing characters are "ñ", "é" and "¡", not sure what is wrong with what should be "Monsieur"

comment:19 by wjp, 8 years ago

I added the missing character in that last string as well. It was using an apostrophe-like character in ¡M'sieu!

(The broken characters in that console debugging output are not really related to what you see in ScummVM itself, by the way. It's just using a different charset than your terminal.)

comment:20 by digitall, 8 years ago

edea86: Can you download the latest daily build, which includes wjp's fix and confirm here if this has fixed both reported crashes? If so, we can then close this bug.

comment:21 by SF/edea86, 8 years ago

Tested both crashes in today's build and both are fixed now!
Thank you very much!

comment:22 by wjp, 8 years ago

Excellent. Thanks for the bug reports and testing the fixes.

comment:23 by wjp, 8 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.