ValveResourceFormat

🔬 Valve's Source 2 resource file format parser, decompiler, and exporter.

MIT License

Stars
1.4K
Committers
35

Bot releases are visible (Hide)

ValveResourceFormat - 9.0 Latest Release

Published by github-actions[bot] 7 months ago

View commits since 8.1

Highlights

Added support for dynamic shadows and light probes

9.0 8.1

Improved rendering of clip brushes and physics groups

Added support for exporting and rendering hitboxes
As you can also notice, we also have a better lighting setup and background (dark/light) in the model viewer. You can move light by holding Ctrl and left mouse button.

Capture transparent screenshots from model viewer
When you press Ctrl+C, it will copy a transparent PNG to the clipboard.

GUI

  • Added support for rendering model hitboxes
  • Added support for picking objects in the 3d skybox
  • Added support for idleanim in animated entities
  • Added support for SteamVR workshop addon dependencies
  • Added support for light probes in map viewer
  • Added dynamic shadows
  • Added fancier background for model/single-node viewer
    • Allows switching to light background
    • Removed setting to change background color
  • Added a few new asset type icons
  • Model viewer now has a static light angle which can be moved with mouse while holding Ctrl and left mouse button
  • Opening entity info dialog no longer blocks the main window, switches to other entities upon click
  • Improved rendering of physics groups (clips)
  • Fixed multiple cameras in map viewer when they have same name
  • Fixed VBIB hash collisions
  • Fixed drawing occluder meshes in map viewer
  • Fixed double click opening files in inner map vpks
  • Fixed rendering mod2x overlays
  • Fixed not drawing tools materials in material viewer

CLI

  • Fixed "Enumeration already finished"

Library

  • Serialization.NTRO has been removed, instead all NTRO files are upconverted to KV3
  • Added vcdlist reading and decompilation (ChoreoExtract)
  • Added IFileLoader.LoadFileCompiled
  • Added more data to vmdl exports
  • Fixed a few issues with exporting maps from older games
  • Fixed shader files incorrectly disposing stream in some cases
  • Fixed broken animations when exporting vmdl
  • Fixed Angle Shear Vector for light_barn entity in vmap
ValveResourceFormat - 8.1

Published by github-actions[bot] 9 months ago

View commits since 8.0

GUI

  • Added outline to FPS counter
  • Switched OpenGL buffer APIs to more modern direct state access APIs
  • Double-clicking particle entity in map viewer will now open the particle itself
  • Enabled logging of high severity OpenGL debug messages
  • Fixed double-click to expand folders in package tree view opening files incorrectly
  • Fixed creating animation texture for models with no bones
  • Fixed a couple of rendering bugs on specific graphics drivers
  • Fixed compatibility with some old files

Library

  • Added GetArray support for NTROValue<NTROStruct>
ValveResourceFormat - 8.0

Published by github-actions[bot] 9 months ago

View commits since 7.0

Highlights

Model viewer now supports morphs

https://github.com/ValveResourceFormat/ValveResourceFormat/assets/613331/580a7bd9-820d-4a7e-a0c8-288d325d5f63

Texture viewer has been rewritten
It is now more powerful and faster.

https://github.com/ValveResourceFormat/ValveResourceFormat/assets/613331/94fea9f7-a159-40e6-9f6d-808f306b56ac

GUI

  • New texture viewer with more features
    • Hardware accelerated decoding and rendering
    • Smoother mooving and scaling experience
    • Support SVG files
    • Switch channels, opaque, transparent, or opaque with split alpha, mip levels, depth, cubemap faces
    • Cubemaps allow switching between individual face, cube projection, and equirectangular projections
    • Save (Ctrl-S) or copy (Ctrl-C) to save currently visible texture
  • Textures are now decoded with GPU for faster exporting and more correctness
  • Creating new vpk now uses rudimentary editing ui where you can add or remove files before saving
  • Added morph composite rendering
  • Added Ctrl-C keybind for any model/map viewer which copies current viewport to clipboard
  • Added confirmation dialog when trying to open over 5 files in the default app
  • Improved physics/clip brush rendering
  • Fixed cubemap fog rendering on maps like de_inferno
  • Partially fixed Half-Life: Alyx character animations to play correctly
  • Multiple improvements and fixes to our shaders
  • Renderer now uses separate framebuffer for more precise depth buffer
  • Renderer now uses reverse-Z and infinite far plane
  • Replaced our default HDRi cubemap in the model viewer
  • Converted all textures to immutable storage
  • 3D skybox is now prescaled to simplify some things and avoid jittering on some maps like de_mirage
  • FPS counter is now rendered with OpenGL with addition of CPU and GPU times (can be disabled in settings)

CLI

  • Added support for dumping closed captions
  • Used array pool during vpk dump for less memory use in certain cases
  • --vpk_verify now verifies hashes of every archive (or every file checksum if hashes are unavailable)

Library

  • Added model morph flex rules
  • Reduced png encoder zlib compression to 4 (from default 6) for faster encodes
  • Added ClosedCaptions.ToString
  • Added Texture.RetrieveCodecFromResourceEditInfo to get specific decoder instructions
  • Added Dota herolist resource type
  • Added skeleton to vmdl export
  • Added animation root motion to vmdl export
  • Added extracted animations as simple AnimFile nodes to vmdl export
  • Added mipLevel parameter to Texture.GenerateBitmap
  • Removed GetDecompressedTextureAtMipLevel(mipLevel)
  • Map decompiles now include particle snapshots
  • Map decompiles now set aggregate props contribute to vis and disable merging
  • Split aggregate draw calls in map export for correct tints
  • Renamed VTexExtraData.DATA_METADATA to METADATA
  • Optimized RubikonPhysics.Shapes.Mesh.Triangle to be a XYZ struct
  • Fixed game file loader not finding main game vpks when opening a file from {game}_addons folder
  • Fixed decoding issues with certain RGBA16161616F textures
  • Fixed some textures exporting as 1x1
  • Fixed jittery animations caused by CompressedDeltaVector3 and CompressedAnimVector3 decoder
  • Added IHardwareTextureDecoder which is implemented by the GUI
  • Switched to System.IO.Hashing.Crc32
  • Optimized memory allocations in multiple places, including BinaryKV3 reading
  • KVObject now has a debugger display
ValveResourceFormat - 7.0

Published by github-actions[bot] 11 months ago

View commits since 6.0

Highlights

This release targets .NET 8. This release is mostly bug fixes.

Exporting a folder now has a dialog asking which file types you want to export

VPK viewer now calculates recursive folder size, and allows sorting by column

GUI

  • Added a dialog to select which file types to extract
  • Added foliage params rendermode
  • Added column sorting in the list view in the VPK viewer
  • Folders in VPK viewer now calculate full recursive size
  • Improved CS2 texture blending
  • Embedded brdf lut texture so files outside of game contexts render correctly
  • Fixed model and material viewer to load BRDF texture
  • Fixed rendering issue with old AMD drivers (from unbound texture)
  • Fixed child entities to load from point_template entity for correct position
  • Some performance improvements related to the new text editor
  • Insert newly opened tabs next to current selected tab
  • Lower camera speed in material viewer
  • Double clicking a string in entity dialog will now try to open a file if it exists
  • Reload active tab with F5 or Ctrl+R
  • Added debug ui to change parameters in material viewer

CLI

  • Fixed extraction exiting early after exporting one file

Library

  • Added animations exporting in vmdl exporter
  • Added a default blendweights stream when VBIB has only blendindices in vmdl exporter
  • Changed RnHull Vertices to contain indices, move positions to VertexPositions
  • Fixed texture parameters with ChannelCount=0 in shader data provider
  • Fixed DMX physics meshes from crashing resourcecompiler by adding some blank vertex normals
  • Fixed some bugs in shader parser
  • Fixed nested VfxEval branches
  • Fixed nullref in some vmap decompiles
ValveResourceFormat - 6.0

Published by github-actions[bot] about 1 year ago

View commits since 5.0

Highlights

The GUI application was renamed to Source 2 Viewer, including a new icon by Gabe Follower, and website was redesigned.

Improved frame times

We have optimized away a lot of heap allocations during frame rendering, which practically removes garbage collection.
We have also reduced memory usage by not keeping some things in memory after loading them.

Register VPK file association

It is now possible to make Windows Explorer open vpk files in Source 2 Viewer with a single click of a button.
This also registers vpk: protocol handler (used by Source 2 workshop tools), so links like vpk:path/to/pak.vpk:file/inside/thing.vmdl_c will open directly to that file.

As a reminder, you do not have to look for _dir.vpk file, if you open any numbered archive (like _001.vpk), it will correctly open _dir.vpk

Create VPK archives from a folder on disk in a single click

Our ValvePak library gained functionality to pack files into a new VPK archive,
and to dogfood (?) this code, we have added this as a feature in Source 2 Viewer.

Added fog rendering

Fog No fog (old)

New text viewer

We have replaced our basic text viewer with a more advanced one, it has an improved find window (Ctrl+F), and allows folding matching brackets.

Bookmarks in explorer

You can now add files to bookmarks.

GUI

  • Removed a lot of heap allocations during frame rendering
    • Stabilizes frame times and FPS due to no garbage collection
  • Reduced heap memory size up to 2x in some cases
  • Multiple improvements to rendering performance
  • Added support for rendering gradient and cubemap fog in map viewer
  • Added an option to create VPK archives from a folder on disk (in File menu)
  • Added a button to register VPK file association and vpk: protocol in Windows Explorer
  • Added a button to validate VPKs by verifying hashes and checksums (right click on the root vpk)
  • Added bookmarks in explorer tab (right on a file)
  • Added a button to check for updates
  • Added a checkbox to view skeleton in model viewer
  • Added panning and zooming in texture viewer
  • Added entity lines similar in map viewer similar to Hammer (path_track for example)
  • Added basic support for rendering smart prop files (vsmart)
  • Added setting to toggle vsync (also enabled by default)
  • Added button to clear console history in console tab context menu
  • Added a checkbox to render wireframes
  • Replaced text tabs with a better text box which has line numbers and folds
  • Allow exporting vmap_c into glTF (by loading vwrld)
  • Moved settings.txt to %LocalAppData%/Source2Viewer/settings.vdf
  • Moved recover deleted files button to vpk context menu
  • Audio player volume will now be remembered in the settings file
  • Improved infinity grid axis lines
  • Improved rendering overlays in map viewer
  • Cursor will now wrap around the viewport while dragging (similar to Blender)
  • Fixed shader variants loading twice in map viewer
  • Fixed tinted aggregate meshes in map viewer
  • Fixed sun color and brightness
  • Display workshop addon title in bookmarks and recent files
  • Hide bakeresourcecache.vpk files in explorer
  • Multiple vpk: are now supported when passed in as arguments to the exe
  • Improved skybox loading
  • Enabled ServerGarbageCollection

CLI

  • Improved file loader to be on par with the GUI, exporting maps to glTF will now discover assets from other VPKs and files on disk
  • Added --stats_vbib to collect vertex attributes
  • Expanded tools_asset_info file dump, and --tools_asset_info_short to only print filenames

Library

  • Added GameFileLoader which was only previously available in the GUI
    • Automatically discovers game content on disk by finding gameinfo.gi files
  • Rewritten how glTF attributes are exported (custom accessors are now prefixed with underscores as per the spec)
  • Implemented exporting multi-depth and cubemap textures into individual files
  • Textures will now extract raw PNG and JPEG data without re-encoding them with Skia
  • Simplified prettifying panorama stylesheet (vcss) files
  • Added PanoramaDynamicImages.ToString (vdpi)
  • Added STAT block
  • Added DXBC and SPRV block support in s&box shaders
  • Recreate some nodes from embedded $keyvalues and refAnimIncludeModels in model extract
  • Changed model extract to use modeldoc28 format instead of modeldoc32
  • Fixed Texture keeping a reference to resource stream even after it was disposed
  • Fixed extracting RGBA16161616(F) formats
  • Fixed crash with missing friendly shape name in vphys extract
  • Fixed decompressing normals
  • Fixed normals exporting in orange color
  • Fixed RTX shader parsing
  • Fixed "missing texture" reflections by removing compiler-filled properties in relfection probes
  • Fixed broken vertex buffers in map decompilation
  • Fixed missing bones in glTF export if they were never directly used
ValveResourceFormat - 5.0

Published by github-actions[bot] about 1 year ago

View commits since 0.4.0

Highlights

We have shifted our versioning scheme, so instead of this release being 0.5.0, it is 5.0.

Added vmap decompilation

normals are fixed in the unstable build

Improved rendering quality

VRF CS2

Improved physics rendering (clip brushes and triggers)

Player clips Bomb plant

GUI

  • Model/map viewer improvements
    • OpenGL 4.6 is now required
    • Many improvements to the rendering quality, including:
      • Improved PBR calculations
      • Blended cubemaps
      • Better lightmaps
      • Cloth shading
      • Fixed self illuminated materials
      • Fixed mipmaps not working on nvidia
      • Skyboxes can now be tinted and rotated
      • BRDF table lookup
    • Vastly increased support for particle operators and many other fixes to the particle system
    • Grid in model and particle viewer is now drawn as an infinite pane
    • Added speed trackbar in particle viewer to slow down particles
    • Pressing F11 will go into fullscreen view
    • Double clicking an entity now opens the entity info dialog
    • Double right clicking will open a model in a new tab
    • Opening vmap_c files will now open the map viewer, same as vwrld_c
    • Selecting cubemaps now draws its bounds
    • Multiple nodes can be selected while holding ctrl
    • Selected nodes now show their rotated bounding box
    • View and lighting constants are now uploaded as uniform buffers
    • Known entities will now draw as 16x16 cube instead of obsolete sprite
    • Anti-aliasing can now be configured in settings
    • Added setpos and getpos buttons
      • These reflect the commands in Source games, getpos in game, click setpos in VRF and vice versa
  • Explorer improvements
    • All vpk files are now found even for non-Source 2 games
    • Games are scanned on a separate thread to improve performance (on slow disks)
    • Games now display an icon
  • Added a button in material viewer to open relevant shader zframe
  • Shader bytecode is now decompiled with SPIR-V reflection
  • Bug fixes
  • Improved shader situation (for VRF developers)
    • Implemented shader hot reloading
    • Rewritten how shaders are preprocessed
    • Shader error dialog now reports affected error line

Library

  • Added vmap_c decompilation
  • Added vmdl_c decompilation to modeldoc vmdl
  • Fully implemented reading (readonly_)tools_asset_info.bin files
  • Added support for plain-text vjs and vts file formats.
  • Added support for new normals compression format in Counter-Strike 2
    • Fixed keyvalues 3 text serialization not escaping keys
  • glTF export improvements
    • Fixed a crash in glTF material exporting
    • Skip +/-inf bone scales
    • Improved CS2 weapon model exporting
ValveResourceFormat - 0.4.0

Published by github-actions[bot] over 1 year ago

View commits since 0.3.2

Highlights

Added file explorer feature

Map viewer now uses baked lightmaps and paralax corrected cubemaps

Added entity information window (double right-click an entity)

GUI

  • Added explorer feature
    • Automatically discovers Source 2 game VPK archives from your Steam library
    • Discovers workshop content for these games
    • Keeps track of recently opened files
  • Map viewer improvements
    • Renderer now uses baked lightmaps and paralax corrected cubemaps
    • Overlays are now rendered
    • Skybox texture is now rendered (from env_sky)
    • Aggregate meshes are now split into individual scene nodes for better culling
    • Group physics nodes by collision attribute groups
    • Better support for Counter-Strike 2 maps
    • Double right-clicking an entity will now popup a window that displays entity data
    • Fixed sprites rendering twice
  • Texture viewer improvements
    • Texture viewer now draws unwrapped cubemaps
    • Added view channels context menu
  • Added setting to change field of view
  • Multiple fixes to particle rendering
  • Search paths in settings now accepts gameinfo.gi which automatically finds all the relevant vpk files
  • GUI now targets .NET 7

Library

  • Texture.GenerateBitmap now accepts specific depth and cubemap face arguments
  • Added physics shape parsing in PhysAggregateData
  • Added support for keyvalues3 entity lumps
  • glTF exporting improvements:
    • Materials and textures are now exported asynchronously which speeds up the export
    • Materials now load Valve shaders to get correct texture inputs
    • Improved ORM texture packing
    • Fixed morph data exporting with incorrect vertex offsets
ValveResourceFormat - 0.3.2

Published by github-actions[bot] over 1 year ago

View commits since 0.3.1

GUI

  • Improved deleted file recovery in vpks
    • Recover possible file path and names
    • Recover files in archives in trailing data after last possible entry for that archive
  • Replaced "Show triggers" and "Show entity colliders" with a list of entities that can be toggled individually
  • Fixed winforms message events not processing while OpenGL is active (was causing controls to not refresh)
  • Added a setting to specify max texture size (default to 1024) to reduce VRAM usage when opening big maps
  • Added Ctrl+F support to search text tabs (Ctrl+Shift+F to repeat search)
  • Added file contents search within a vpk (essentially a grep)
  • Added support for changing camera movement speed by scrolling up and down
  • Holding Shift or Alt and moving the mouse is now an alternative camera movement
  • Saving and deleting a camera will now synchronize it to all other open tabs
  • Skyboxes are now rendered with different znear/zfar values so it is possible to see them further
  • Fixed skybox origin to be scaled correctly

Library

  • Added support for newer shader versions
  • Added shader metadata extraction
  • Added support for newer binary keyvalues 3
  • Updated known entity lump keys for CS2
  • Texture packing improvements for CS2 in glTF export
  • Exported normal textures are no longer have Y inverted
  • Fixed glTF export for files that are over 2GiB by splitting buffers (only for .gltf, not .glb)
  • Fixed NaN bone scales in glTF
ValveResourceFormat - 0.3.1

Published by github-actions[bot] over 1 year ago

View commits since 0.3.0

Decompiler

  • --stats now uses memory mapped files when reading from vpk

GUI

  • Enabled high DPI support
  • Optimized package tree
  • Optimized uploading decompressed textures to the GPU
  • Added support for picking objects in map viewer
    • Double click to open selected object in a new tab
  • Added new file type icons
  • Added support for new entity lump values
  • Automatically expand lone folders in package tree (common in maps vpks)
  • Fixed closed resources not releasing memory
  • Fixed some bugs
  • Fixed Counter-Strike 2 vpks not opening
  • Removed SkiaSharp.Views.WindowsForms dependency

Library

  • Added support for new binary keyvalues 3 (0x4B563303)
  • Added support for ResponseRules (vrr)
  • Added support for extracting snapshots (SnapshotExtract, vsnap)
  • Use ArrayPool when decompressing binary keyvalues 3
  • Use ArrayPool in MeshOptimizer
  • Use ArrayPool when decompressing textures
  • All texture decompressors now implement ITextureDecoder interface
  • Reduced memory usage by not keeping textures during glTF export
ValveResourceFormat - 0.3.0

Published by github-actions[bot] almost 2 years ago

View commits since 0.2.2

Decompiler

  • Added --gltf_textures_adapt - perform any glTF spec adaptations on textures (e.g. split metallic map)
  • Fixed output files being dumped to disk root when input path did not end with a slash

GUI

  • Improved performance of text views by disabling word wrapping
  • Improved performance of map and model viewer
  • Added support for opening files directly inside of a vpk file by providing a path as an argument to VRF.exe, for example vpk:pak01_dir.vpk:file/inside.vmdl_c
  • Added memory mapped file support when reading package file to reduce memory usage
  • Added support for selecting multiple files in the package viewer
  • Added support for aggregate scene objects in map viewer
  • Added a checkbox to hide tools materials in map viewer
  • Added basic rendering of entity models and sprites similar to Hammer
  • Added automatic folder discovery when folders contain addoninfo.txt or .addon files
  • Opening files inside of game addons folders will now automatically discover folders to load files (by looking for addoninfo.txt)
  • Added export and decompile items to tab context menu (this replaces the Export menu)
  • Exporting (and decompiling) a folder now attempts to deduplicate files, for example when a model exports, it won't export mesh and animation files separately
  • Animated models now calculate their bounding box dynamically, they should no longer disappear out of view in map viewer
  • Animation scrubber now pauses while dragging it
  • Fixed FPS counter to correctly count frames
  • Fixed binary blobs in PhysSceneNode
  • Fixed loading skyboxes in Half-Life: Alyx maps
  • Fixed model viewer having issues with skeletons when the are multiple meshes
  • Fixed export dialog cancel button not actually cancelling the export
  • Fixed particles never decaying
  • Use Cascadia Mono font when available

Library

  • Improved animation handling
    • Implemented CCompressedDeltaVector3 and CCompressedStaticVector3
    • Implemented bone scaling
    • Decode frames on demand to reduce memory usage
    • Bones are now remapped to a model
  • Improved glTF exporting
    • Improved performance and file sizes
    • Reuse animations, skeletons, models, and meshes whenever possible
    • Decompiling a folder will now use glTF exporter
    • Generate PBR texture that glTF can understand
    • Embedded meshes now have names
    • Vertex buffers are no longer duplicated per draw call
    • Added morph position data
    • Only well known vertex accessors are output now
    • Fixed some bugs
  • Improved material and texture extraction
    • Sprite textures will now export into individual frames
    • Materials will now produce a vmat file and individual textures
  • Added support for sound phoneme reading
  • Added support for post processing file reading
  • Added support for newer shader file versions
  • Mesh and Morph are now resource data types
  • Fixed lz4 ring decoder frame size in binary kv3
  • Fixed heap corruption after decompressing zstd binary kv3
  • Fixed NTRO Color type
  • Fixed CBlockDecompress::FastDecompress implementation
  • Use native Half type
ValveResourceFormat - 0.2.2

Published by github-actions[bot] about 2 years ago

View commits since 0.2.1

GUI

  • Allow double clicking external refs to open file
  • Draw bounding boxes for sprite frame
  • Fixed some deprecated OpenGL usages
  • Some performance optimizations

Library

  • AnimationGroupLoader is now in the library
  • EntityLumpKeyLookup is now called StringToken
  • Implemented sprite sheets in Texture
  • Improved material attribute exporting
  • Added support for R16G16_SNORM vertex attributes
  • Added .vts resource type (typescript)
  • Added faster path for UTF-8 in ReadNullTermString
  • Fixed parsing negative numbers in text kv3
  • Extract binary kv3 files with a kv3 header
  • Do not output format:generic when we know it's not generic for kv3 files
ValveResourceFormat - 0.2.1

Published by github-actions[bot] over 2 years ago

View commits since 0.2.0

CLI

  • Added arm/arm64 builds
  • Added --recursive_vpk option

GUI

  • Added support for recovering deleted files in vpk archives
    • It tries to automatically detect resource types
    • See @PistonMiner's post here for more details on this
  • Added support for embedded animations in vagrp
  • Added support for automatically finding bare files on disk when opening a model
  • Render entity lumps into a separate tab
  • Normalize line endings in text viewer
  • Do not crash when settings.txt fails to load

Library

  • New vcs (compiled shader) decompiler, thanks to @robert-hoff
  • Added entity I/O output in entity lump dump
  • Added Resource.FullFileSize to attempt to calculate full buffer size of a resource file
    • Metadata does have a file size, but it excludes sound and texture data
  • Added Texture.CalculateTextureDataSize method to return full texture buffer size
    • For block compressed textures this is as simple as summing up all mipmap level sizes
    • For PNG textures, it will check for a valid header and scan all the PNG chunks until the end
    • This does not work for JPEG files at the moment
  • Added verifyFileSize (default true) to Resource.Read to verify that the provided stream was fully consumed by VRF
  • Added vanmgrph, vcdlist, and vdata resource type auto detection
  • Added detection of resource type from singular input dependency in REDI
  • Skip weights that are not vec4 during glTF export
  • Fixed crash when determining file type from extensionless file name
  • Fixed crash with duplicate key names in SoundStackScriptValue
  • Fixed mipmap level calculation for small textures
ValveResourceFormat - 0.2.0

Published by github-actions[bot] almost 3 years ago

View commits since 0.1.10

This release targets .NET 6.

CLI

  • Added support for extension filter on recursive folders outside of vpks
  • VPKs in VPKs are now recursed into
  • Allow collecting stats on anything supported, not just resources

GUI

  • Save and restore main window position and dimensions
  • Added vmat tab that renders as keyvalues1
  • Fixed exception after exporting to root of disk
  • Removed "wtf" exception

Library

  • Added support for dynamic expressions in material exports
  • Added support for reconstructing xml files from vxml AST
  • Added support for pretty printing css
  • Added support for new versions of ToolsAssetInfo
  • Corrected implementation of audio bits
  • Refuse to export huge models that don't merge into one glb buffer
  • Determine resource type from file name first
ValveResourceFormat - 0.1.10

Published by github-actions[bot] about 3 years ago

View commits since 0.1.9

  • Removed AppVeyor CI

GUI

  • Material (vmat) renderer now uses correct vertex shader (fixes crashing on Intel drivers)
  • Fallback particle number and vector providers to static value (fixes HL:A maps not loading)

Library

  • Implemented Zstandard decompression of binary keyvalue3 binary blobs
  • Implemented CUBEMAP_RADIANCE_SH reading
  • Fixed corrupted texture due to lz4 compression
  • Fixed CCompressedFullQuaternion animation decoder decompression
ValveResourceFormat - 0.1.9

Published by github-actions[bot] over 3 years ago

View commits since 0.1.8

GUI

  • Added vphys rendering

CLI

  • Find all vpks when collecting stats in a folder
  • Split exceptions per file type when collecting stats

Library

  • Added support for RED2 block (It's REDI but keyvalues3)
  • Added support for Zstandard binary keyvalues3 compression
  • Added INSG block
  • Added plaintext resource type
    • Artifact's DotaItem (item_c)
    • s&box's plain text data (SBData)
  • Added VTexExtraData.CUBEMAP_RADIANCE_SH
  • EntityLumpKeyLookup is now thread-safe
  • Multiple fixes to binary keyvalues3 (fixes s&box compatibility)
  • Disabled glTF buffer merging for files over 1GiB in size
ValveResourceFormat - 0.1.8

Published by xPaw over 3 years ago

View commits since 0.1.7

GUI

  • Default open dialog to steamapps/common folder for new users
  • Added material group support in model viewer
  • Fixed crash on missing layers in map viewer
  • Fixed color tinting in vr_standard shader
  • Updated vcdlist icon

CLI

  • Added --vpk_list - lists all resources in given VPK
  • Added --gltf_export_format - exports meshes/models in given glTF format
  • Added --gltf_export_materials - whether to export materials during glTF exports
  • Fixed macOS binaries in GitHub releases

Library

  • Added support for exporting worlds (maps) and world nodes
  • Added support for newer tool asset info files
  • Added support for old pre-VBIB meshes
  • Added support for SrMa block (source maps)
  • Resource type is now determined from file extension if all other methods fail
  • Texture names in glTF exports are now preserved
  • Textures are now external in GLB exports
  • Updated KVFlaggedValue with new flags (resource_name, panorama, soundevent, subclass)
  • Updated known entity lump keys
  • Multiple improvements to texture exporting in glTF
  • Improved byte array support in NTRO
  • Fixed glTF rotation
  • GltfModelExporter.ProgressReporter is now IProgress<string>
  • VBIB structs were changed to match Valve's format more closely
ValveResourceFormat - 0.1.7

Published by xPaw almost 4 years ago

View commits since 0.1.6

This release targets .NET 5.

GUI

  • Added trackbar for playing animations
  • Added support for exporting as GLB instead of GLTF
  • Binary kv1 files can be opened now (like chat.cfg)

Library

  • Added partial support for exporting animations to glTF
  • Added support for binary keyvalues 1 (to parse patchnotes.vdpn_c)
  • Added support for vsnap files
  • Added support for vrman files
  • Updated known entity lump keys
ValveResourceFormat - 0.1.6

Published by xPaw about 4 years ago

View commits since 0.1.5

GUI

  • Fixed case sensitive searching
  • Search will automatically search paths if input contains a slash

Library

  • Added support for new version of compressed binary keyvalues3
  • Fixed ETC textures decompressing upside down
  • Fixed Rgba8888 colors
  • Most texture decompressors use Span now (this change may have introduced some decoding bugs)
ValveResourceFormat - 0.1.5

Published by xPaw about 4 years ago

View commits since 0.1.4

GUI

  • GUI will now automatically try to find required game content vpks based on gameinfo.gi
  • Added new audio player
  • GUI is now able to open mp3/wav/gif/jpg/png files without having to extract them
  • Made navigating vpk file tree more consistent, now works with keyboard
  • Added support for multiple animation textures
  • Added checkered background in texture viewer
  • Added more pixel formats for opengl rendering
  • Added more file type icons
  • Fixed various crashes

CLI

  • CLI is now able to extract meshes and models into glTF
  • File extraction is now able to find required files in the open vpk
  • Changed thread partitioner
  • Added osx build

Library

  • GltfModelExporter is now in the library and not in GUI
  • Added IFileLoader and IProgressReporter for extraction purposes
  • Added support for DXGI_FORMAT.R16G16_SINT
  • Fixed DXT5 non-power-two texture extraction
  • Fixed a couple of null exceptions during model extraction
ValveResourceFormat - 0.1.4

Published by xPaw over 4 years ago

View commits since 0.1.3

GUI

  • Fixes to glTF model exporting
    • Fixed null joint indices
    • Fixed index buffers overflowing
    • Fixed zero-length normals so the model can at least export
    • Fixed remapping tables for meshes
  • Fixed progress text overflowing during export

Library

  • Added material exporting into keyvalues 1 format
  • Added more entity key names
  • Fixed package metadata