Translating a Sword of Moonlight Game

From Sword of Moonlight Wiki
Revision as of 04:17, 30 June 2011 by Dragonking (talk | contribs) (Created page with "The text used in a Sword of Moonlight game is stored in several places. == In-game menu text == === som_db.exe === * This EXE controls the menu text seen when test playing a ma...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The text used in a Sword of Moonlight game is stored in several places.

In-game menu text

som_db.exe

  • This EXE controls the menu text seen when test playing a map (through the Map Editor). It also controls which fonts are used for all other text seen during test play, except "Formatted Message" events whose font is set in the event.
    • Standard Message Font You can change which font is used for standard message events (signs/NPC talk etc) by changing the font named at hex address 5835c. The picture below shows the custom "SoMG.ttf" Georgian font in use. Red highlight shows font-name's hex address and green shows the space available for the font's name.





    • Pop-Up Message Font You can change which font is used for in-game pop up messages ("Gold Obtained" "Empty" etc) by changing the font named at hex address 584ec.
    • Menu Text Font You can change which font is used for menu text ("EQUIP" "ITEMS" etc) by changing the font named at hex address 5a690.
    • Menu Text Text in test-play game menus is scattered in a few chinks throughout som_db.exe. You can find it by simply searching for phrase you want to change. One main chunk can be found starting at hex address 5ab18. To change this text, simply overwrite it with new words. This is usually done on the Right hand column of the hex editor.
      • If you are translating text to language that doesn't use the Roman alphabet, it will help to understand a few things about how text is encoded. In a computer program, text is usually "encoded" by using a unique number value to represent each letter. Basic English usually uses the ASCII encoding table where a=61, b=62 and so on. Other non-Roman alphabet text systems use different encodings. SoM simply reads the number-code and displays the corresponding symbol in the current font. If you enter a number value that is not assigned to a letter in the current font, it will usually display a "?" symbol. So make sure the "Menu Text Font" uses the same coding system as your text. To further complicate the matter, most hex editors will not display non-ASCII text correctly. If your text looks wrong in the hex editor, it should still show up correctly in game, as long as the number-codes are correct.

som_rt.exe

  • This EXE controls the menu text seen when playing a finished, compiled game. It also controls which fonts are used during a game, ex*cept "Formatted Message" events whose font is set in the event.
    • Standard Message Font You can change which font is used for standard message events (signs/NPC talk etc) by changing the font named at hex address 5733c.
    • Pop-Up Message Font You can change which font is used for in-game pop up messages ("Gold Obtained" "Empty" etc) by changing the font named at hex address 574cc.
    • Menu Text Font You can change which font is used for menu text ("EQUIP" "ITEMS" etc) by changing the font named at hex address 595f4.
    • Menu Text Text in game menus is scattered in a few chinks throughout som_rt.exe. You can find it by simply searching for phrase you want to change. One main chunk can be found starting at hex address 59a78. To change this text, simply overwrite it with new words. This is usually done on the Right hand column of the hex editor.