Skip to content

What happens in the mod process?

OcculusXOcculusX Member Posts: 99
edited December 2013 in BGII:EE Mods
I don't know how to successfully run mods on my version of the mac. There was an easy-mod tool that was released on the forums for the mac, but it will not run on my mac [Wrong CPU Type Error] (mine uses an old 32-bit intel based processor). This means that if I am to install mods, I may need to do it all manually. I don't mind doing it manually, but I need more information from those who actually know what they are doing.

In the main resources folder I have a chitin.key file (what does this do)? I also have directories:

[1] data
[2] lang
[3] movies
[4] music
[5] scripts
[6] OSX-DungeonCrawl_v7 (A mod I would like to install)

Now, it looks like the way you would normally do this would be to run the Setup-DC binary. (Which I assume puts all the folders and data in the right places).

Now, for data storage formats (this is, in fact, a data driven game with an engine running on top of it... I think).
-- In the data file, I see ".bif" and ".BIF" files.

-- In the lang file, I see, "dialog.tlk"... this looks important, but it's written in binary. (Am I going to need to start hacking away at this with a hex editor?) Moving further in, I see .wav format sounds. (Good, something I recognize). I assume the dialog.tlk file handles the indexing and tells the Infinity engine what to do with the sounds and where to put them. What does it do?

-- In the movies file, I see, ".wbm" files. I don't recognize what these are, but I assume they are just frames with frame flipping directions with an audio and video compression technique used on them.

-- In the music file, I see, ".MUS" files and ".mus" files. There are also directories with names like "bsd", "mx0013", etc. In the directories, I see ".acm" files. What are these? What do they do?

-- Finally, In the scripts file, I see, ".BS" files and these are written in ASCII. But without a table telling me what most of these numbers are... (I suppose that I could just change the numbers blindly and see what happens, but this doesn't seem wise).

There are lots of differences between the data types that I see in the actual game folders, and the data that I see in the mod file. In the mod file, I see (.are, .tis, .MOS, .cre, .d, .tra, .baf, .sto) files. Files such as these are also present in older versions of the game for windows. Can the Enhanced Edition Infinity Engine still read these?

Is anyone willing to give me some advice? I have a working version of the command line tool WeiDU for my mac that I managed to compile last night.

I will read through this:

http://weidu.org/WeiDU/README-WeiDU.html

Comments

  • OcculusXOcculusX Member Posts: 99
    Ok, some observations:

    In my resources folder I have weidu parked.

    I just tried to run:

    ./weidu --biff data/hexxat.bif

    -> Which is supposed to enumerate all the contents of a bif file. I didn't know what this was supposed to mean exactly. But apparently it spits out over a thousand entries like this:

    [DATA/HEXXAT.BIF] contains HEXXATDR.0x3FF at index 0
    [DATA/HEXXAT.BIF] contains O700000.PVRZ at index 1
    [DATA/HEXXAT.BIF] contains O700001.PVRZ at index 2
    [DATA/HEXXAT.BIF] contains O700002.PVRZ at index 3
    [DATA/HEXXAT.BIF] contains O700003.PVRZ at index 4
    [DATA/HEXXAT.BIF] contains O700004.PVRZ at index 5
    [DATA/HEXXAT.BIF] contains O700005.PVRZ at index 6
    [DATA/HEXXAT.BIF] contains O710000.PVRZ at index 7
    [DATA/HEXXAT.BIF] contains O710001.PVRZ at index 8

    Included is: (.bmp, .pvrz, .wav, .mos, .are, .wed, .bcs, .dlg, .cre, .itm, .spl, .vvc, .tis) files. This must mean that .bif files are like an archiving mechanism, kind of like .tar files. (If I say something stupid, please tell me so and correct me).

    By the way, if you do this; backup baldurs gate II. You might destroy something by accident. (I haven't, yet, but that doesn't mean that I won't). Weidu is a powerful tool. It will be interesting to see what all it can do.

    Weidu seems to have it's own scripting language, the scripts are written as ".d" files. Then weidu can be run on the ".d" files and convert them to any of the file formats included above. What are it's limitations? How can I create my own .bif files? How are these related to the chitin.key? Mysterious, mysterious. I would love to have someone tell me and not have to continue stumbling around in the dark.
  • OcculusXOcculusX Member Posts: 99
    edited December 2013
    Some more observations:

    ./weidu --list-biffs

    Prints a list of all biffs in the chitin.key. Beautiful!!! This means that the chitin.key contains a list of biff files! Why does it contain a list of biff files? What does the Infinity Engine do with them? I don't know. But I would imagine it does something!

    This probably means that if you want to make a change to game. You can change hexxat, for instance, and make her romance-able by males, for instance by blowing up her ".bif" file; there may be a global variable that her file checks to see the main character's gender; if it is female, she starts putting on the charm, if it is male, she doesn't. After you make the necessary changes; you might repackage all of the changes you made into a new "hexxat.bif" file and have it replace the old one. You would probably need to update the chitin key (both the ".bif" list, and the resources list). Then voila. You have a vampire who gets all hot and bothered by boys.

    ./weidu --list-files

    Generates a list of all resources that are seen in the chitin.key. The more I play around with this, the more I suspect that the chitin.key plays a valuable role in what makes it into and out of the game. This is probably a list of all the resources in all the .bif files in the chitin.key. So, how do I add a resource to the chitin.key? How do I alter the displays on the opening menu? How much of the information is driven by the data vs how much is hard-coded into the infinity engine? I don't know.

    Again, correct me when I make a wrong statement, I'm sure I've made a few by now.
  • OcculusXOcculusX Member Posts: 99
    Weidu can obviously read .bif files and see their contents; can it create .bif files? I don't know, but my google fu found something that can:

    http://nwvault.ign.com/View.php?view=Other.Detail&id=1520

    This may be neverwinter nights specific... and windows centric, but I've got wine. I might still be able to use this tool. ".bif" files, what is your history? Where did you come from? Are you a bioware invention? Or did you come from somewhere else?
  • OcculusXOcculusX Member Posts: 99
    edited December 2013
    There is no need to blow up and reassemble .bif files with Weidu.

    Running this:
    ./weidu --biff creature.bif

    This will list all of the monsters in the game. On that list is the red dragon: or "dragred.cre".

    Running this:
    ./weidu --biff-get dragred.cre

    Will create a copy of dragred.cre in your current directory. What this means is that you can alter the red dragon information without damaging the underlying file. Furthermore, this suggests that there is probably a way to "destructively replace" an old file with a new file. Isn't that nifty? Well, yes, but you also need to be careful with this kind of thing.

    More information on the .cre format can be found here:
    http://iesdp.gibberlings3.net/file_formats/ie_formats/cre_v9.htm

    Does software exist to alter this format directly?
    Post edited by OcculusX on
  • IsayaIsaya Member, Translator (NDA) Posts: 752
    edited December 2013
    WeiDU is a tool allowing to create and install mods. It includes the ability to create several types of game files (DLG, BCS) and ability to patch all of them (more or less). You can also creates bif files with it.
    There are other tools required to create most types of files (CRE included). Look for DLTCEP and Near Infinity in this list.

    If you're just trying to install mods and you're already able to run WeiDU, I believe you might find instructions on how to proceed in this thread.
    Just ignore the following part of the tutorial as this is not needed anymore provided you use a version of beyond 232 (current is 236).
    If you don't want to copy the dialog.tlk every time you install a mod type:

    ln -s lang/en_us/dialog.tlk dialog.tlk

    Remember to change en_us according to your language folder.
    Weidu 232 and beyond will instead ask you to tell which language you selected in the game and will internally behave as if this link or copy was actually made.
  • lansounetlansounet Member Posts: 1,182
    You should probably visit the WeiDU website and IESDP before reinventing the wheel ^^
  • WispWisp Member Posts: 1,102
    edited December 2013
    If you have a 32-bit Mac version of WeiDU and want to install Dungeon Crawl, you have everything you need. Just run WeiDU with the name of the TP2 file as an argument. Refer to the command-line section of the WeiDU readme for more information. WeInstall offers a greatly improved CLI for WeiDU.

    If you want to change Hexxat's romance to be available for dudes as well, you can easily do so with the TP2 actions COPY_EXISTING and REPLACE_TEXTUALLY. You may be interested in reading this.

    Manually biffing and unbiffing files is the wrong answer to almost everything.
  • OcculusXOcculusX Member Posts: 99
    Wisp, by the way; I noticed this:

    http://forum.baldursgate.com/discussion/21345/wanted-person-who-compiles-programs#latest

    Do you need me to provide you with my 32 bit version of Weidu for the intel based macs? The reason why I have one is because I compiled it from the ocaml source code.
  • OcculusXOcculusX Member Posts: 99
    After running the command:

    From the Resources directory:

    >> ln -s lang/en_us/dialog.tlk dialog.tlk

    and... from the override directory:

    >> pwd
    /Applications/Baldur's Gate II - Enhanced Edition/Game Data/00782/BaldursGateIIEnhancedEdition.app/Contents/Resources/override/OSX-DungeonCrawl_v7/DC

    and...

    >> ../../../weidu Setup-DC.tp2

    [../../../weidu] WeiDU version 23600
    [../../../chitin.key] 185 BIFFs, 59859 resources
    [../../../dialog.tlk] claims to be writeable.
    [../../../dialog.tlk] claims to be a regular file.
    WARNING: parsing log [WeiDU.log]: Sys_error("WeiDU.log: No such file or directory")

    Choose your language:
    0 [English]
    1 [Russian]
    2 [German (Translated by Gerri)]
    3 [Italian (Translated by Ilot)]
    4 [Polish (Translated by Aristo)]
    0
    Using Language [English]
    [English] has 1 top-level TRA files
    ERROR: could not match a directory in ../../../dialog.tlk
    ERROR: problem parsing TP file [Setup-DC.tp2]: Not_found

    FATAL ERROR: Not_found

    Press ENTER to exit.

    What's the deal? I pointed it to the dialog.tlk file with the ln command above.
  • WispWisp Member Posts: 1,102
    OcculusX said:


    What's the deal? I pointed it to the dialog.tlk file with the ln command above.

    Don't do that. It's obsolete. Also, you are running WeiDU from the wrong directory. Place your mods in the directory that contains the file chitin.key and run WeiDU from there. Also, I'm not familiar with how Dungeon Crawl is organised, but it looks like you have one too many directories there as well. The directory you want is likely the "DC" one.

    If you want to provide a 32-bit Mac build, you are very welcome to.
  • OcculusXOcculusX Member Posts: 99
    For those who wish to use a 32 bit version of WeiDU for the intel based mac (built on Mac OSX 10.6.8):

    https://www.dropbox.com/s/00u6fr33ncqsk5e/weidu-osx-intel.2013-03-17
  • WispWisp Member Posts: 1,102
    edited December 2013
    @OcculusX
    Can you build the osx_zip target? I'll then upload it to weidu.org.
    If you can upload your build of elkhound, that'd would also be swell.
  • OcculusXOcculusX Member Posts: 99
    edited December 2013
    The above weidu executable is wrong. The one above was not my build.

    But this one is:

    https://www.dropbox.com/s/9ye0v4z8dy1fjrc/weidu-osx-intel-12-27-2013

    Here is the build for elkhound:

    https://www.dropbox.com/s/1qoddgczwb68m3m/elkhound

    Here is the build for osx_zip:

    https://www.dropbox.com/s/acaeslwjzyjnwxs/WeiDU-Mac-236.zip
  • WispWisp Member Posts: 1,102
    @OcculusX
    Do you think you can build TISPack and MosPack as well? They are utilities occasionally used to install mods but to my knowledge they are not available for x86 OS X. Both are written in standard C and require zlib and libjpeg (Independent JPEG group's JPEG library).
  • OcculusXOcculusX Member Posts: 99
    edited January 2014
    Sure, I'll see what can do.

    Hmm... for MosPack, the executables are definitely broken for my cpu type. Here is a file containing the binaries generated from my build process:

    https://www.dropbox.com/s/uc3zk46zzxux4r6/osx.tar.gz




    The executables provided in the macosx directory for tispack seems to run just fine. No compilation required on my mac, but I don't think they will work on the newer 64 bit macs.

    >> ./tispack

    Usage: tispack [-s] [-q quality] [-o outfile.tiz] [-e] [-V] infile.tis

    args:
    -s Be silent. Supply twice for really silent.
    -q quality Set the compression quality, between 1-100.
    With quality 1-99 lossy compression is used,
    with quality 100 non-lossy compression is used.
    The default is 75.
    -b blur Set the amount of blur used with lossy compression,
    between 1-100. The default is no blur.
    -o outfile.tiz Select output file. The default is .tiz.
    -e Do not halt on errors.
    -V Print version number and exit

    >> ./tispack -V
    tispack 0.91 (C) Per Olofsson 2004


    >> ./tisunpack

    Usage: tisunpack [-s] [-f] [-o outfile.tis] infile.tiz

    args:
    -s Be silent. Supply twice for really silent.
    -h Don't write the 24-byte tis header.
    -f Force overwrite of existing output file.
    -d Dither 24-bit tiles.
    -o outfile.tis Select output file. The default is .tis.
    -e Do not halt on errors.
    -V Print version number and exit

    >> ./tisunpack -V
    tisunpack 0.91 (C) Per Olofsson 2004





    Post edited by OcculusX on
  • WispWisp Member Posts: 1,102
    @OcculusX
    The MosPack binaries are x86-64 and the TISPack binaries included in the download at PPG are PPC (there are x86-64 ones as well, but they aren't included here). TISPack runs on your system due to Rosetta, but as you probably know, Apple discontinued that past some version of OS X. However, Rosetta may cover all x86 Macs, so maybe x86 binaries are not needed.

    Thanks.
  • OcculusXOcculusX Member Posts: 99
    @Wisp

    "TISPack runs on your system due to Rosetta, but as you probably know, Apple discontinued that past some version of OS X. However, Rosetta may cover all x86 Macs, so maybe x86 binaries are not needed."

    I didn't know that, actually.

    Well, I have tispack compiled here, just in case:
    https://www.dropbox.com/s/ngoybm7r0l3jgkv/tis.tar.gz
  • WispWisp Member Posts: 1,102
    Thanks.
Sign In or Register to comment.