Opened 3 years ago

Last modified 3 years ago

#12623 new feature request

TRECISION: œ (o+e ligature) missing from French subtitles

Reported by: Kurufinwe21 Owned by: Kurufinwe21
Priority: normal Component: Engine: Trecision
Version: Keywords:
Cc: Game: Nightlong: Union City Conspiracy

Description

ScummVM 2.3.0git18721-g8c0c91fe94 (Jun 12 2021 03:56:50) on Windows 10 21H1 64-bit.

Playing Nightlong (Windows, French version, i.e. English voices with French UI/subtitles).

In the cutscene when you first enter the liquor store, the French subtitles read: "Ça vous dérange si je jette un coup d'il ?" It should be "Ça vous dérange si je jette un coup d'œil ?"

I don't know if the character (œ, a ligature of o and e) is missing from the subtitles or from the font used by the game. As shown in the screenshot, other special characters, such as Ç and é, are displayed correctly.

I cannot remember if the problem happened with the original interpreter.

I'm attaching a screenshot and a save.

Attachments (6)

scummvm-nl-win-fr-00002.png (208.6 KB ) - added by Kurufinwe21 3 years ago.
Screenshot
nl-win-fr.003 (42.5 KB ) - added by Kurufinwe21 3 years ago.
Savegame. Enter the liquor store on the right to start the cutscene.
OEmockup2.png (16.9 KB ) - added by Kurufinwe21 3 years ago.
Mockup of suggestions
nl-win-fr.008 (38.1 KB ) - added by Kurufinwe21 3 years ago.
Save at the beach.
image-20210701-222533.png (24.0 KB ) - added by Strangerke 3 years ago.
shadows.png (35.5 KB ) - added by Kurufinwe21 3 years ago.
More text with shadows

Download all attachments as: .zip

Change History (16)

by Kurufinwe21, 3 years ago

Attachment: scummvm-nl-win-fr-00002.png added

Screenshot

by Kurufinwe21, 3 years ago

Attachment: nl-win-fr.003 added

Savegame. Enter the liquor store on the right to start the cutscene.

comment:1 by Kurufinwe21, 3 years ago

I've just checked, and this also happens with the original interpreter. It happens for every instance of œ and Œ, not just the one line I pointed out in the initial report.

I don't know if fixing this is feasible, or even within ScummVM's scope. The character is only used about a dozen times throughout the game, and players can easily figure out what's going on from context. The most egregious case is probably the turtle egg on Rocas Perdida, where you end up with an item labelled "uf" (instead of "Œuf") in your inventory.

comment:2 by Strangerke, 3 years ago

Fix provided in commit 4001ae8f4011dc7660abbc3832924bdf218af1a1

I only tested the sentence in the coktail shop (coup d'œil).
The character is a bit small (just like when you type alt-0156 in a text editor) but that's the best I could do with a character width of 9 characters (7 if you don't count borders). The 'æ' character in the original font is looking similarly small. I also added the 'Œ' character, I'm not sure if it's used...

Tests are possible either by building your own executable based on master, or by using tomorrow's daily build.

Version 1, edited 3 years ago by Strangerke (previous) (next) (diff)

comment:3 by Strangerke, 3 years ago

Owner: set to Strangerke
Resolution: fixed
Status: newclosed

comment:4 by Strangerke, 3 years ago

Resolution: fixedpending

comment:5 by Strangerke, 3 years ago

Owner: changed from Strangerke to Kurufinwe21
Resolution: pendingfixed
Status: closedpending

comment:6 by Kurufinwe21, 3 years ago

Resolution: fixed
Status: pendingnew

This is really nice! It could be left as-is, and it'd be much better than the previous situation (both in ScummVM and with the original interpreter).

Still, I'd like to suggest a few tweaks, if possible. The upper-case glyph looks more like CE than Œ. I made a quick mock-up in GIMP, changing a few pixels to make it look better.

While making this, I also noticed that, normally, shadows are only used on pixels adjacent to the yellow pixels, not in diagonal. So I've also corrected that for both the uppercase and lowercase glyphs.

If I'm understanding the code correctly, my suggestions correspond to:

	static const int8 fix140[67] = {
		2, 6, 0, 1,
		1, 1, 6, 0, 1,
		0, 1, 1, 0, 2, 2, 0, 2, 0, 1,
		0, 1, 1, 0, 2, 2, 0, 1, 0, 2,
		0, 1, 1, 0, 2, 3, 0, 1, 0, 1,
		0, 1, 1, 0, 2, 2, 0, 1, 0, 2,
		0, 1, 1, 0, 2, 2, 0, 2, 0, 1,
		1, 1, 6, 0, 1,
		2, 6, 0, 1,
		9
	};

	static const int8 fix156[54] = {
		9,
		9,
		2, 2, 0, 1, 2, 0, 2,
		1, 1, 2, 0, 1, 2, 0, 1, 0, 1,
		0, 1, 1, 0, 2, 1, 0, 2, 1, 0, 1,
		0, 1, 1, 0, 2, 4, 0, 1,
		0, 1, 1, 0, 2, 1, 0, 3, 0, 1,
		1, 1, 2, 0, 1, 3, 0, 1,
		2, 2, 0, 1, 3, 0, 1,
		9
	};

Unfortunately, I'm not set up to compile ScummVM (or anything) on my current computer, so I can't test those changes myself. I'm attaching a save at the beach, where the turtle egg displays both the uppercase and lowercase glyphs (on the hotspot label, and when looking at it, respectively).

by Kurufinwe21, 3 years ago

Attachment: OEmockup2.png added

Mockup of suggestions

by Kurufinwe21, 3 years ago

Attachment: nl-win-fr.008 added

Save at the beach.

comment:7 by Kurufinwe21, 3 years ago

Also, I forgot that, in the code snippets above, the sizes of the arrays need to be updated, and also when those arrays are used later on.

So it should be:

	static const int8 fix140[69] = {
		2, 6, 0, 1,
		1, 1, 6, 0, 1,
		0, 1, 1, 0, 2, 2, 0, 2, 0, 1,
		0, 1, 1, 0, 2, 2, 0, 1, 0, 2,
		0, 1, 1, 0, 2, 3, 0, 1, 0, 1,
		0, 1, 1, 0, 2, 2, 0, 1, 0, 2,
		0, 1, 1, 0, 2, 2, 0, 2, 0, 1,
		1, 1, 6, 0, 1,
		2, 6, 0, 1,
		9
	};

	static const int8 fix156[64] = {
		9,
		9,
		2, 2, 0, 1, 2, 0, 2,
		1, 1, 2, 0, 1, 2, 0, 1, 0, 1,
		0, 1, 1, 0, 2, 1, 0, 2, 1, 0, 1,
		0, 1, 1, 0, 2, 4, 0, 1,
		0, 1, 1, 0, 2, 1, 0, 3, 0, 1,
		1, 1, 2, 0, 1, 3, 0, 1,
		2, 2, 0, 1, 3, 0, 1,
		9
	};

	delete _fonts[140]._data;
	delete _fonts[156]._data;
	_fonts[140]._width = _fonts[156]._width = 9;
	_fonts[140]._data = new int8[69];
	_fonts[156]._data = new int8[64];

	memcpy(_fonts[140]._data, fix140, 69);
	memcpy(_fonts[156]._data, fix156, 64);

(Once again, I cannot test this myself.)

comment:8 by Strangerke, 3 years ago

Thanks for you tests and for your suggestions. The uppercase OE you suggest is much better indeed. I nevertheless have a little problem with the shadows. I made the oe and OE based on the original ae and AE characters.

I add them in the next attachment. Is there a way to discuss directly (discord, irc, email, whatever) to spare some time?

Last edited 3 years ago by Strangerke (previous) (diff)

by Strangerke, 3 years ago

Attachment: image-20210701-222533.png added

comment:9 by Kurufinwe21, 3 years ago

I don't feel strongly either way about the shadows. As I was touching up the Œ, I just noticed that that was how the shadows seemed to work for the three letters I was looking at (u, f and s). I haven't done a comprehensive survey of the rest of the alphabet.

Going through my screenshots now, it seems like that the shadows work as I said except for a few cases. I'm attaching a screenshot with another line of text. You can see that the shadows are always adjacent to the yellow pixels, except on one character: à. But that character looks weird: the shape of the a isn't even consistent with the unaccented letter!

This bug's original screenshot displays the same thing: every letter uses the same logic for the shadows (just adjacent pixels), except for the Ç, which also has them in diagonal.

If I had to venture a guess, I'd say Trecision started with a font that only had the ASCII characters. Then they (or whoever was in charge of the translations) added the non-ASCII characters by hand (forgetting œ and Œ in the process), but they did it a bit carelessly and added shadows without trying to exactly match the logic used in the original font.

Anyway, I don't think anyone will pay attention to the shadows (I certainly wouldn't have if I hadn't blown up the picture to touch up the Œ), and I'm not advocating that anyone try to fix all the non-ASCII characters in the game. But since œ and Œ are getting added, might as well make them consistent with the "correct" part of the font, I guess?

If you want to discuss this some more, you can reach me at (my-user-name-here)-at-yahoo-dot-com, though I don't think I have much more to say about it all.

by Kurufinwe21, 3 years ago

Attachment: shadows.png added

More text with shadows

comment:10 by bluegr, 3 years ago

Type: defectfeature request

So this is no longer a bug/defect, but a feature request. Changing its type

Thanks for your feedback! :)

Note: See TracTickets for help on using tickets.