Skip to content

Releases: iMrShadow/TelltaleToolKit

0.2.1

29 May 11:50
544af6d

Choose a tag to compare

Changelog

Fixed

  • Data files were copied to the output folder (#20)

0.2.0 + TelltaleToolKit Database Generator

28 May 12:17
2086dd2

Choose a tag to compare

This is the 2nd release of the library. The API is currently unstable and buggy. If you run into any issues, please open an issue.

The API has been significantly changed - expect heavy breaking changes when migrating from 0.1.0.

This release features a lot of additions and improvements. The biggest changes are the Toolkit API, the new game-specific working environments with support for resource contexts, hashdatabases, archives API and more types support. The data folder is now included by default. Many thanks go to the various contributors who helped the project move further.

This release also comes with a new CLI tool - "TelltaleToolKit Database Generator" that's used for generating new files in the data folder. More information can be found below.

Changelog

TelltaleToolKit

Added

  • Toolkit singleton class that acts as an entry point to the library.
    • Global registry for game profiles, metaclasses, and symbol resolution.
    • Centralized archive loading with automatic format detection.
    • Object serialization/deserialization for MetaStream files.
    • Must be initialized with Toolkit.Initialize() before use.
    • Logging support.
  • HashDatabase class - Thread-safe, in-memory symbol resolution database.
    • Stores CRC64 -> Symbol name mappings with concurrent dictionary.
    • Supports batch imports from text files and directories.
    • Event-driven architecture with SymbolsCleared, SymbolAdded, SymbolRemoved.
    • Export functionality to tab-separated value files.
    • Read-only mode support for immutable databases.
  • Workspace class - Game-specific working environment.
    • Created from a GameProfile via Toolkit.CreateWorkspace().
    • Manages prioritized resource contexts, similar to Telltale Tool.
    • Handles file extraction with proper override order (higher priority wins).
    • Provides game-specific metaclass lookup and symbol resolution.
    • Default MetaStream configuration derived from the game profile.
    • Can create resource contexts from Lua resdesc files.
  • IFileProvider interface - Common abstraction for file sources.
    • Implemented by ArchiveProvider, FolderProvider, and LooseFileProvider.
    • Supports lookup by both CRC64 and filename.
    • Enables composable, priority-based file systems.
  • ResourceContext class - Named collection of file providers with explicit priority.
    • Can be enabled/disabled at runtime.
    • Automatically disposed when removed from workspace.
    • Can contain archives, subfolders and regular files.
  • Symbol resolution improvements.
    • Workspace-level LocalHashDatabase for game-specific symbols.
    • Automatic fallback: global DB -> workspace DB -> mounted file names.
    • Batch resolution with ResolveSymbols().
  • Various new T3Types for compatibility with MTRE, MSV5 and MSV6 games.
  • Support for resdesc (#1).
  • Support for container streams (#18).
  • Experimental support creating archives. (#18)
  • Experimental PropertySet serializer.
  • Helper methods for T3Texture and PropertySet.
  • Serializers for D3DMesh related classes.
  • Some animation/skeleton related types in the type registry.
  • New contributors in README.md.

Changed

  • GameDescriptor renamed to GameProfile to better reflect its purpose.
  • GameContext renamed to Workspace for clarity.
  • Some class members now have default values.
  • Renamed TelltaleFileEntry to ResourceEntry to match Telltale's naming.
  • Renamed, reorganized and refactored various classes in TelltaleArchives. (#18)
  • Refactored Symbol. (#14)
  • NuGet related metadata in TelltaleToolKit.csproj.
  • Package the data folder as ttk-data.

Removed

  • TTKContext singleton class. It has been replaced by Toolkit.
  • TTK static class. Functions are replaced by the ones in Toolkit.
  • Default static class member in MetaStreamConfiguration.

Fixed

  • Due to the heavy refactoring, most old bugs do not apply to this version.
  • Various bugs regarding loading and saving have been fixed.

TelltaleToolKit Database Generator

This is a CLI tool that scans through each ttarch/ttarch2 file in a game's directory, and generates JSON files in the "data/game_profiles" and "data/versiondb" folders.
Those JSON files are used by TelltaleToolKit to add individual support for other games.
You can submit the new files either here, or open a pull request in the repo.

Example usage in Windows Powershell:
./TTKDatabaseGenerator.exe --slug the-walking-dead-season-2-2013 --game-path "path\to\The Walking Dead Season Two" --key Twds2

When ran (like the example), the following files are generated:

  • "data/game_profiles/the-walking-dead-season-2-2013.json" - general data configuration like metastream, ttarch or lua versions used in the game.
  • "data/versiondb/the-walking-dead-season-2-2013-NEW.vdb.json" - a mapping between types and their CRC32s.
  • "data/versiondb/the-walking-dead-season-2-2013-UNSUPPORTED.vdb.json" - class descriptions that need to be added and implemented in "global.vdb.json"
  • "data/versiondb/the-walking-dead-season-2-2013-UNSUPPORTED-TYPES.csv" - unregistered types represented by a CRC64 with their corresponding CRC32

"data/versiondb/the-walking-dead-season-2-2013-NEW.vdb.json" has to become "data/versiondb/the-walking-dead-season-2-2013vdb.json" to be usable by the library.

The format for slug names is: [slug-title]-[year]-[month?]-[platform?]-[demo?]. Slug-title and year are mandatory, the rest are applied when deemed necessary.

For help, use ./TTKDatabaseGenerator.exe -?

0.1.0

30 Sep 20:17

Choose a tag to compare

This is the first alpha release of the library. The API is currently unstable and buggy. If you run into any issues, please open an issue.

Changelog

Added

  • .ttarch and .ttarch2 extractors for all games which do not use Oodle compression. The extractors do not automatically decrypt Lua files.
  • Initial support for the following file formats: .aam, .amap, .anm, .aud, .chore, .d3dmesh, .d3dtx, .dlg, .dlog, .dss, .font, .imap, .landb, .lanreg, .lang, .langdb, .langres, .ldb, .locreg, .look, .note, .overlay, .ptable, .prop, .rules, .save, .scene, .skl, .style, .tmap, .vox, .wbox. Currently most serializers are unfinished and unreliable, especially in writing mode. Over time, they will get polished and refined.
  • Registration system for types, metaclasses, type serializers and game descriptors (game configurations).