Skip to content

Releases: craftablescience/sourcepp

v2026.1.3

03 Jan 19:38

Choose a tag to compare

  • kvpp
    • Integrate DMX parser from dmxpp, restructure its API to match existing kvpp classes
    • Add support for legacy DMX encoding versions (pre-v1)
    • Improve support for old DMX encoding versions (v1-v2)
    • Add support for modern DMX encoding versions (v9)
    • Add support for all possible srctools DMX encodings (*_unicode)
    • Replace usages of std::stoi/f with std::format
    • Remove unused escape sequences parameter from KV1Binary constructor
    • Change functions accepting file paths using std::string to std::filesystem::path for better unicode support
  • sourcepp
    • Allow building all C++ libraries as DLLs since they're getting a bit hefty
    • Change functions accepting file paths using std::string to std::filesystem::path for better unicode support
  • sndpp
    • Change functions accepting file paths using std::string to std::filesystem::path for better unicode support
  • steampp
    • Change functions accepting file paths using std::string to std::filesystem::path for better unicode support
  • toolpp
    • Change functions accepting file paths using std::string to std::filesystem::path for better unicode support
  • vcryptpp
    • Add Fairy Tale Busters ICE key to known codes constants
  • vpkpp
    • Add read/write support for APK (Axiom PacK)
  • vtfpp
    • Add read support for VBF v3 (Valve Bitmap Font)
    • Fix parsing semitransparent PSD image data
    • Fix A8 format not being considered transparent by image methods
    • Fix ImageConversion::resizeImageData crashing for compressed format padded images
    • Improve VTF::regenerateImageData to reduce data loss when resizing VTF by reusing previous mip data (or use closest larger mip to resize from)
    • Change functions accepting file paths using std::string to std::filesystem::path for better unicode support

v2025.12.4

04 Dec 16:45

Choose a tag to compare

  • bsppp
    • Write game lump internal offsets as relative for console formats
    • Write last empty game lump with a valid offset to match Valve behavior
    • Write empty lumps with their configured version to match Valve behavior
  • kvpp
    • Switch KV1Binary's void* type out for a uint32_t
    • Fix crazy template situation by untangling KV1 and KV1Writer into unrelated inheritance trees
    • Both of the above changes allowed for making Python bindings
  • sndpp
    • Near-total rewrite
      • Move RIFF parsing to generic implementation
    • Add support for parsing XWV v0 and v1
  • vpkpp
    • Add support for FGP v2
    • Fixes for editing FGP v3
    • Accelerate BSP, ZIP parser/writer by 3x on my system
    • Write PAK directory at the end of the file
    • Ensure PAK filenames are always null terminated
  • vtfpp
    • Add support for FRAMES format found in PS3 Orange Box
    • A8 color is assumed to be white instead of black when converting to RGBA8888
    • Add extra guards around creating compressed NPO2 textures which don't function ingame
    • Width/height accessors no longer include compressed format padding if present
    • Fix VTF reflectivity calculations possibly overflowing beyond 1.0, they are now maxed out at ~0.85 like intended
    • Fix not returning an error state from some VTF::create overloads
    • Remove NO_MIP flag if input VTF has this flag and multiple mips simultaneously

Full Changelog: v2025.11.05...v2025.12.4

v2025.11.05

06 Nov 04:39

Choose a tag to compare

What's Changed

Full Changelog: v2025.11.02...v2025.11.05

v2025.11.02

03 Nov 07:38

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v2025.09.28...v2025.11.02

v2025.09.28

28 Sep 16:06

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: https://github.com/craftablescience/sourcepp/commits/v2025.09.28