Fo2: when master.dat is set to a different language (for modders & users)

Discussion in 'Fallout General Modding' started by Muttie, Oct 7, 2019.

  1. Muttie

    Muttie It Wandered In From the Wastes

    186
    Oct 9, 2017
    NOTE: This may only be a problem of a few (I think: French & German only, and possibly also only CD and not GoG or Steam versions, but I never seen/used either of those two). However, it can cause a lot of problems at the user end, while Modders can easily make most of these problems go away by setting up their mods with this in mind. See the last point for modders.
    Anyway, the following are my notes while experimenting with this. Not sure how interesting/important this is tbh, but...


    This is something that had me occupied for a while (actually since 2017).
    Many mods will tell you that you need to name the data/text/english folder to the language set in fallout2.cfg and the one used by your master.dat. If you don't then you will experience crashes and text errors.
    However, this does not always work, or turns out to be rather difficult, especially with mods that put all their files in a .dat format or have incomplete msg sets.

    I experimented a little and it seems there are two language specific areas in master.dat that's “data/art/splash” and “data/text”.
    The first is irrelevant as the english version of splash is present in master.dat. The only issue you will have is that not setting fallout2.cfg to English will result in overruling any new splash screens provided by a mod. This can be fixed by adjusting cfg to English or by putting the mod's “splash” folder in a folder named after the language set in the cfg.
    Second, the more important folders are those under data/text/english.
    If anything in the “game” folder is not available, Fo2 will fail to load, crash and if lucky have missing text only (I deleted entire sections of COMBATAI, and it only resulted in those lines not being used anymore, however, when an entire msg is missing, it's usually a crash). So the most important thing is to have a complete “game” folder in data/text/english. If you do, you can set cfg and data/text to another language and the mod should at least run.
    The other are “cuts”, “dialog” and credits/quotes. Anything missing in these folders should result in missing text and dialogue being replaced by “error” messages only, but no crashes, so it's not critical, only important.

    SETTING UP FO2 IN A DIFFERENT LANGUAGE (USER END)
    Although you can set Fo2 to the language of your master.dat, it may be better to always set up your Fo2 version as “English”.
    The greatest advantage of setting Fo2 to English is that you don't have to rename every single data/text folder of the Appearance mod (sigh). Consequently, I would suggest to set your fallout2.cfg to English, and to make sure your game has a complete set of data/text/english files (which language those msg files use in particular is irrelevant, as long as they are under a folder named English). You just have to make sure that they are not overruling any mod files.
    (Note: Setting Fo2 to English will also set your keyboard to English. Which isn't a big deal in Fo2, however, if you have failing hotkeys, check if it's your localized keyboard. But I'm not aware of any problems, yet.)
    It isn't hard to set Fo2 to a different language if the mod uses an accessible data/text, just get a translation pack (https://nma-fallout.com/resources/translation-packages.58/) (or any other complete set of data/text) and put it in data/text of your Fo2/Mod installation and set the cfg to the same language as data/text*. Just do this before installing the mod (so the mod can overwrite those files if necessary), or do not overwrite any files of the mod (if already installed) but only fill the gaps.
    If the mod has everything in a dat file, and that dat file has an incomplete “game” folder (in data/text/english), you're buggered (i.e. you can't set cfg to English (because your master.dat isn't) and simply putting all vanilla files in data/text (and name it after the language used in the cfg & master.dat) will overrule the mod's files in the .dat (which is set to English). In that case you have to unpack the mod's .dat, check what files the mod provides (in data/text) and then fill in the gaps by a creating a data/text folder tree with the missing files* (or a complete set if extracting the mod's files from .dat and integrating them in data/text). This is a pain and very much the scenario modders should try to avoid.
    Otherwise it may be recommended to put “splash” into a folder named after the language used in cfg, so that the mod's splash screens will be used (splash is in data/art). However, this is only necessary when your Fo2 version is not set to English.
    Last but not least, “premade” does not seem to be put in a language folder. So it doesn't need to adjust. Hurray.

    *For clarification (if needed): A fallout installation has the following folder tree: data/text/english and in that “language” folder are three folders: “cuts”, “dialog” and “game” and two single files (quotes and credits). Those three folders and files (under the “language” folder) need to be complete, and the “language” folder needs to be the same language as the one set in fallout2.cfg.


    Funny enough, you can also set up your Fallout 2 version as:
    cfg: language=bollocks
    data/art/bollocks/splash
    data/text/bollocks
    Which works, too, :lol: (keyboard defaults to “english” in this case)


    FOR MODDERS:
    When you put together the mod, make sure that data/text/game is a complete set (31 files). And preferably have all files your mod uses present in data/text/cuts and data/text/dialog. As long as you do this your mod should never cause any issues with master.dat being set to a different language (i.e. you can remove that factor from the equation entirely and have the mod defined by cfg and data/text only). In this case your mod should probably also provide a cfg file.
    You should especially provide a complete set when your mod has packed all mod files in a .dat format as an incomplete set would require the user to crack that .dat open and create a complete set under data/text. Which is a hustle and not everyone is up to it. Besides, it's easy to avoid, just provide a complete data/text set with your mod.

    A complete set:
    Most mods already provide most msgs used (new dialogue etc. and don't need the vanilla versions), however, there are a few “basic msgs” which every incarnation of Fo2 seems to use, and some mods don't include those if they haven't made any changes to them.
    Of all these basic “msgs” the game folder is the most important one. And must be complete. I did some testing, and I'm fairly certain there is not a single msg in that folder that Fo2 doesn't require at some point. And if failing to find it, it crashes.
    The second most important files, are some generic msgs in dialog (door.msg, Ktgoo.msg or the Ec... msgs (aka encounter)) and possibly the txt files in cuts (providing subtitles, especially for deaths).
    I've started to do a list, what those “basic msgs” are, but it isn't finished yet. Besides, it also varies from mod to mod tbh (i.e. not every mod uses Ktgoo). However, by adjusting language to bollocks (see above), you can determine which generic files of Fo2 are used by your mod (i.e. if set to bollocks, and all files in data/text/bollocks are mod files only, you will encounter “error” messages in-game each time the game tries to pull anything that isn't bollocks (i.e. a msg file from master.dat). This way you can determine in-game if your mod has a complete msg set or not. If unsure, you can also provide a complete set of Fo2 msgs, or wait until someone reports an “error” bug (caused by a door, encounter or nuka machine etc.). Just make sure the “game” folder is complete, that's the most important thing.

    Translators can translate the msgs, and put them in the English named folders, i.e. a translation would not have to mess with a mod that is set up as English. The only inconvenience would be that the version wouldn't be marked as “localized” anymore. However, you can also add the “language” somewhere in misc.msg (like an addition to line 20) or similar.
    Anyway, all this may not be such a big deal, but providing a complete msg-set (and a cfg set to English) will reduce errors and user problems (and it only adds a few kb to the mod).

    Hope this helps.
     
    Last edited: Oct 7, 2019
    • [Rad] [Rad] x 1
  2. Mr.Stalin

    Mr.Stalin Agent of Enclave Modder

    278
    Oct 29, 2015
    It's much easier than it is written above. :)
    use sfall config
    Code:
    [ExtraPatches]
    PatchFile99=mods/your_lang_data_folder
     
    • [Rad] [Rad] x 2
  3. Muttie

    Muttie It Wandered In From the Wastes

    186
    Oct 9, 2017
    I found a small oddity. I was opening .dats and apparently Fo1 master.dat has an additional “language” folder: data/art/language/intrface. However, that folder only contains translated frms (about 46). The rest (a complete English set; 323 files, incl the 46) is still in data/art/intrface of the same master.dat.
    The weird thing is, when set to “language” it uses the few translated frms in data/art/language/intrface over “data/art/intreface”, but accesses data/art/intrface for everything else. Which is rather peculiar.

    I tested it and the same works for Fo2.
    You can create “data/art/language/intrface” put any number of frms into it and Fo2 will use:
    “data/art/language/intrface” over
    “data/art/intrface” over
    “master.dat”
    This is something that may be utilized by translators perhaps. Although, I don't really see much practical use for it, yet...

    Anyway, it was kind of interesting that Fallout can access “intrface” and “language/intreface” at the same time. Something they seem to have included for Fo1, but didn't use in Fo2 it seems (although it's possible).

    I also tested this with skilldex and it works the same way. I had Fo2 use a frm from “data/art/language/skilldex” and another from “data/art/skilldex”, both overwriting master.dat.

    However, the weird thing is, this does not work with "Splash" :confused:. Nor does it work with the “text” folder, or "premade" folder. So it seems this is restricted to the art folder, and even there seems to be odd exceptions (like splash). It's rather bizarre.
    For example, set cfg to “bollocks” and all splash screens and msgs not in a “bollocks” folder will be ignored. But at the same time, Fo2 has no issue using “bollocks/skilldex” and “skilldex” at the same time.
    Realizing that this is possible (and implemented), they never should have locked anything of the English version behind a “language” folder, but run it as: language/translation first, else default to English, as it does with intreface apparently. Seems much more elegant.


    P.S. One way to possibly use this is to put new frms (for testing and such) into “data/art/language/intrface”, which may avoid the hustle of having to overwrite or rename frms in “data/art/intrface”. That may be a practical use.
    Note: This does not work when the cfg is set to “English” (for some reason), use “bollocks” (or something more family friendly, like “TaxReturn”) instead.
    In addition, hi-res doesn't seem to accept files like “hr_iface...” files that are in “data/art/language/intrface”, so those still need to go into “data/art/intreface”. At least I tried a death.frm and hi-res didn't fix the colours/glitches until I put in “data/art/intreface”.
     
    • [Rad] [Rad] x 1