Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#3101 closed defect (fixed)

BASS: v0.0303 missing/wrong characters in LINC terminal

Reported by: SF/njoly Owned by: eriktorbjorn
Priority: normal Component: Engine: Sky
Keywords: Cc:
Game: Beneath a Steel Sky

Description

While playing BASS on my v0.0303 floppy version; i noticed some characters problems in LINC terminal. One seems specific to the french language, but another is present also for english and german ...

- While playing with french language the 'á' character (0xe1) is incorrectly shown as '<' ('ionisé < 96%' vs. 'ionisé á 96%' in the screenshot).
- Il all languages (english/french/german), the '/' character is not displayed at all ... This leads to incorrect temperature display in the screenshot '2000000K1000K' vs. '2000000K/1000K'.

This game, run under DosBox emulation, does not show this small characters problems.

njoly@calamity [~/games]> uname -a
NetBSD calamity.sis.pasteur.fr 4.99.12 NetBSD 4.99.12 (CALAMITY) #6: Mon Feb 26 00:02:14 CET 2007 njoly@calamity.sis.pasteur.fr:/local/src/NetBSD/obj/i386/sys/arch/i386/compile/CALAMITY i386
njoly@calamity [~/games]> scummvm -v
Using configuration file: /home/njoly/.scummvmrc
ScummVM 0.10.0svn (Feb 27 2007 00:06:24)
Features compiled in: MP3 zLib
njoly@calamity [~/games]> scummvm -p sky sky
Using configuration file: /home/njoly/.scummvmrc
Looking for sky
Trying to start game 'Beneath a Steel Sky'
Found BASS version v0.0303 (1413 dnr entries)
[...]

Ticket imported from: #1669564. Ticket imported from: bugs/3101.

Attachments (2)

skyreactor.png (8.1 KB ) - added by SF/njoly 13 years ago.
Reactor status screenshot with characters problems
skyreactor2.png (91.9 KB ) - added by SF/njoly 13 years ago.
Reactor status screenshot with characters problems fixed

Download all attachments as: .zip

Change History (12)

by SF/njoly, 13 years ago

Attachment: skyreactor.png added

Reactor status screenshot with characters problems

comment:1 by eriktorbjorn, 13 years ago

It's probably because of our attempts at patching up the LINC character set to get rid of some other character glitches. See the patchLINCCharset() function in engines/sky/text.cpp

by SF/njoly, 13 years ago

Attachment: skyreactor2.png added

Reactor status screenshot with characters problems fixed

comment:2 by SF/njoly, 13 years ago

Thanks for the hint.

I had a look, and locally fixed the characters problems in this function.

- Add missing definition and path for the 'á' character:
const uint16 a_acute[] = {
0x0000, 0x1000, 0x2000, 0x0000, 0x3000, 0x0800,
0x3800, 0x4800, 0x3800, 0x0000, 0x0000, 0x0000,
0x0000, 0x3800, 0x7000, 0x7000, 0x7800, 0x3C00,
0x7C00, 0xFC00, 0x7C00, 0x3800, 0x0000, 0x0000
};
- Add 2 more patchChar() calls, only activated for v303 to avoid unexpected behaviour for other version.
if (SkyEngine::_systemVars.gameVersion == 303) {
patchChar(charSetPtr, 5, charHeight, 28, a_acute);
patchChar(charSetPtr, 5, charHeight, 98, slash);
}

I'm attaching a new snapshot, taken from patched ScummVM, where characters are correctly displayed like in the original game (under DosBox).

File Added: skyreactor2.png

comment:3 by fingolfin, 13 years ago

Owner: set to lavosspawn

comment:4 by fingolfin, 13 years ago

This patch looks sensible to me. Thanks njoly.

Torbjörn / lavosspawn, what do you think? Could one of you apply this patch_

comment:5 by eriktorbjorn, 13 years ago

It looks like our patching of the LINC character set is actually the wrong approach. Back when we first added support for BASS, it didn't work in DOSbox. Now it does, so I played 0.0372 (the only one I have the original EXE for) up to the point where you first enter LINC space. There was no problem with characters like '/', '<' or '>' at all.

So perhaps our text decoding is buggy?

comment:6 by eriktorbjorn, 13 years ago

I've just made a change that should fix this problem - could you please verify this? - and do away with the LINC charset patching completely.

Apparently, we were actually using the control panel font in the LINC terminals, and the LINC font in the control panel. (Well, actually we were using the control panel font in the control panel, but only because we deliberately used the "wrong" font.)

comment:7 by SF/njoly, 13 years ago

I confirm that the lastest revision (without LINC charset patching), fix the v0.0303 characters problems.

Thanks a lot.

comment:8 by fingolfin, 13 years ago

Owner: changed from lavosspawn to eriktorbjorn
Resolution: fixed
Status: newclosed

comment:9 by fingolfin, 13 years ago

Great work, Torbjörn, as usual.

And thanks for the reporting & testing, Nicolas.

comment:10 by eriktorbjorn, 13 years ago

Great! That charset patching hack always did bother me slightly, but until recently I just assumed it was a bug in the original game. Thanks for verifying that it works for you now.

Note: See TracTickets for help on using tickets.