Thank! Has understood. Overview my problem:
I end the fonts editor for my package of the editors on MoO2.
[see picture] For the tests, I have created full Russian fonts and looking, how they will be showing in the game. A problem that Russian characters are output not in all texts (see description below), and I can not create manual - how to use the not English fonts in the game.
In MoO2 used the raster fonts - it is matrixes of pixels for each character from ANSI table. ANSI character set - American National Standards Institute (ANSI) 8-bit character set used for to represent up to 256 characters (0-255 chars code) by using your keyboard. The first 128 characters (0-127) correspond to the letters and symbols on a standard U.S. keyboard. The second 128 characters (128-255) represent special characters, such as letters in international alphabets, accents, currency symbols, and fractions.
MoO2 not always load (or draw) pictures for 255 characters. Probably, it is an bug, because it is infrequent case. When such characters will be output, width of the character will be correctly, but there is no picture of the character (probably, it does not load in the array of characters pictures or are locked on draw).
In the credits (authors list) to output characters with codes 0-128! (but the code 128 should not be used for U.S. character set).
[see picture] For the test I have changed in a title of the "Biospheres" technology the first two characters on Russian (In files "Techname.lbx" and "Help.lbx"). All output correctly, except for a video with the scientist and header of the technologys description in the encyclopedia.
[see picture] [see picture]
I hope, that this bug can be corrected without recompilation EXE of the game. I.e. it is necessary to correct a constant, which used with cycle of loading (or drawing) characters picture. For example:
Code: Select all
------------------- -------------------
HEX ASM HEX ASM
------------------- -------------------
B980 MOV CX, 128 B9FF MOV CX, 255
... ... ... ...
... LOOP LABEL1 ... LOOP LABEL1
------------------- -------------------
(B980 replace B9FF)
or something similar. But now I can not find it. You can help me? You already disassembled the game and are oriented in its code. I can submit demanded files for the tests.