Results 1 to 19 of 19

Thread: Return of XIDX: with bug fixes and updates for M2TW.

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1

    Default Return of XIDX: with bug fixes and updates for M2TW.

    The Europa Barbarorum Team is proud to announce the return of one of the most venerable modding tools dating back to the early days of RTW: XIDX, with bug fixes and updates for M2TW. The “XIDX” project provides modders with a tool to assemble and disassemble IDX/DAT pairs of files as used in RTW and M2TW (including Kingdoms). Originally developed by Vercingetorix for use with Rome Total War versions of these archives on Windows only, the tool now compiles and runs on Linux as well (and should run on any proper POSIX x86 or AMD64 environment).

    The project is based on the source code of the XIDX program as published on the TWC. It has been heavily modified, the comprehensible change log is as follows:

    Features:
    • Add -m option for building Medieval II versions of supported pack types.
    • Add -b option for transparent suffix ('.bin') manipulation (useful with skeletons for avoiding name collisions).
    • Add -e option for assembly/disassembly of event packs.


    Bug fixes:
    • Port/fixes to build on Linux with GCC (tested with various versions >= 4.3.2)
    • Builds with GCC-Mingw32 and GCC-Mingw64 (tested with various versions >= 4.4.4)
    • Fix lurking segfaults on exit and inside the fork function of the XIDX shell.
    • Fix memory allocation, so the tool does not allocate lots of memory it never uses.


    Misc:
    Strip batch files, MS Visual Studio project file etc., added makefile.

    The program is available as both a source and a binary distribution from our FTP server. Both distributions are packaged as 7zip archives. Programs such as 7-zip can be used to extract these contents. (You can get 7-zip from here: http://www.7-zip.org/ or commandline equivalent p7zip from here: http://p7zip.sourceforge.net/ )

    XIDX-bin-dist.7z
    XIDX-src-dist.7z

    The program is made available under the GPL v.2 or later, copy of which is provided in licence.txt of either distribution. Below follows the summary:

    Terms of Use
    This software is free and there is no warranty what so ever. Use at your own risk.
    See licence.txt for a copy of the program licence.
    Copyright (C) 2004, 2005 Vercingetorix <vercingetorix11 at gmail dot com>
    Copyright (C) 2011 The Europa Barbarorum Team <webmaster at europabarbarorum dot com>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details at
    http://www.fsf.org/licensing/licenses/gpl.txt

    Comments, criticism, improvements and bug reports are welcome. Regards,

    The Europa Barbarorum Team.
    Last edited by therother; 02-02-2018 at 09:47.
    - Tellos Athenaios
    CUF tool - XIDX - PACK tool - SD tool - EVT tool - EB Install Guide - How to track down loading CTD's - EB 1.1 Maps thread


    ὁ δ᾽ ἠλίθιος ὣσπερ πρόβατον βῆ βῆ λέγων βαδίζει” – Kratinos in Dionysalexandros.

  2. #2

    Default Re: Return of XIDX: with bug fixes and updates for M2TW.

    Update with the following bug fixes:

    Bugs
    • Fully zero out the buffers before using them, instead of just assigning '\0' to the first byte. This makes valgrind a bit happier (quieter), which is a good thing.
    • Fix a bug in sound packing code. A 1 had crept in where a 4 should have been. Ouch.
    • Some code cleanup to have less code in a few macro's.


    Misc
    • Generate statically linked binaries for Windows. This has the benefit of actually working if the user doesn't have the MinGW version of a couple of DLLs installed on his system (which is likely). The system I used for testing of the previous release masked the problem because these DLLs were present...
    - Tellos Athenaios
    CUF tool - XIDX - PACK tool - SD tool - EVT tool - EB Install Guide - How to track down loading CTD's - EB 1.1 Maps thread


    ὁ δ᾽ ἠλίθιος ὣσπερ πρόβατον βῆ βῆ λέγων βαδίζει” – Kratinos in Dionysalexandros.

  3. #3

    Default Re: Return of XIDX: with bug fixes and updates for M2TW.

    Minor update, containing a few miscellaneous fixes and decided to call it 1.0:
    • Fix bug in generated file names when extracting event packs caused by not dividing the log(position in the pack) by log(10). This ensures that when you list the files (dir, ls, find) they will appear in the same order as they should be placed in the pack because of how lexicographic sorting works. (Simplifies repacking.)
    • Fix version reporting.
    • Some minor improvements to the readme.
    - Tellos Athenaios
    CUF tool - XIDX - PACK tool - SD tool - EVT tool - EB Install Guide - How to track down loading CTD's - EB 1.1 Maps thread


    ὁ δ᾽ ἠλίθιος ὣσπερ πρόβατον βῆ βῆ λέγων βαδίζει” – Kratinos in Dionysalexandros.

  4. #4

    Default Re: Return of XIDX: with bug fixes and updates for M2TW.

    Version 1.1 brings:

    Bugfixes
    Fix memory leak resulting from exit() in the usage info function.

    Misc
    Change naming conventions for binary blobs extracted from event (EVT) packs. Numbering now starts at zero for every "frame", rather than just at the beginning of the pack. This change would allow other tools to guess the event (bank) that corresponds to a given file name based on the number before the bin suffix.
    - Tellos Athenaios
    CUF tool - XIDX - PACK tool - SD tool - EVT tool - EB Install Guide - How to track down loading CTD's - EB 1.1 Maps thread


    ὁ δ᾽ ἠλίθιος ὣσπερ πρόβατον βῆ βῆ λέγων βαδίζει” – Kratinos in Dionysalexandros.

  5. #5

    Default Re: Return of XIDX: with bug fixes and updates for M2TW.

    New version available.

    Bugfix
    Version 1.2 fixes a memory/file descriptor leak when opening archives with the wrong archive type flag. (For example specifying the -a flag for animations packs when trying to list the contents of a sound IDX/DAT pair.)
    - Tellos Athenaios
    CUF tool - XIDX - PACK tool - SD tool - EVT tool - EB Install Guide - How to track down loading CTD's - EB 1.1 Maps thread


    ὁ δ᾽ ἠλίθιος ὣσπερ πρόβατον βῆ βῆ λέγων βαδίζει” – Kratinos in Dionysalexandros.

  6. #6

    Default Re: Return of XIDX: with bug fixes and updates for M2TW.

    New version available:

    Bugfixes
    • Fix non-virtual destructors
    • Skip packing of EVT blobs which do not conform to the filename conventions used by XIDX.
    • Fix error messages when packing an EVT blob fails
    • Improve file name parsing of EVT blobs (no longer limited to files from the current directory).


    Feature
    • Add makefile flag to skip cross compilation (MinGW targets).


    Reminder: beware of the data folder
    XIDX rewrites paths so they are relative to the root of the mod (or installation if you do not use a mod folder), and it assumes that the "root" data directory is the last "data/" in the path. This is pretty much necessary to make packing work by default on Windows (unless you wish to try you hand at this sort of thing, but it does mean that your last "data/" must be the right "data/". Otherwise the path will be written to an invalid value. Example: "mods\EBII\data\sounds\data\SFX\effect.wav" would be rewritten to "data\SFX\effect.wav" instead of "data\sounds\data\SFX\effect.wav". So if the game tries to load "data\sounds\data\SFX\effect.wav" because that is what you put in your code, it would fail. Easy workaround: do not have data folders inside your data folder, at least not in the parts that you want to pack with XIDX.

    This message does not apply to packing events, since the tool does not store filenames for those in generate IDX/DAT packs anyway. Note that for events you will want to sort filenames alphabetically so the filename convention for EVT blobs will guarantee that they appear in the right order. Example command for packing EVT blobs:
    Code:
    dir /S /A:-D /B /O:N "path/to/EVT/blobs/directory" "*.bin" | xidx -cbef "path/to/mods/my_mod/data/sounds/events"
    - Tellos Athenaios
    CUF tool - XIDX - PACK tool - SD tool - EVT tool - EB Install Guide - How to track down loading CTD's - EB 1.1 Maps thread


    ὁ δ᾽ ἠλίθιος ὣσπερ πρόβατον βῆ βῆ λέγων βαδίζει” – Kratinos in Dionysalexandros.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Single Sign On provided by vBSSO