Releases: SteamDatabase/ValveResourceFormat
Releases · SteamDatabase/ValveResourceFormat
0.3.2
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
0.3.1
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
inMeshOptimizer
- Use
ArrayPool
when decompressing textures - All texture decompressors now implement
ITextureDecoder
interface - Reduced memory usage by not keeping textures during glTF export
0.3.0
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
andCCompressedStaticVector3
- Implemented bone scaling
- Decode frames on demand to reduce memory usage
- Bones are now remapped to a model
- Implemented
- 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
andMorph
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
0.2.2
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 libraryEntityLumpKeyLookup
is now calledStringToken
- 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
0.2.1
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) toResource.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
0.2.0
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
0.1.10
- 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
0.1.9
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'sREDI
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
0.1.8
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 nowIProgress<string>
VBIB
structs were changed to match Valve's format more closely
0.1.7
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