v2.3.0
What's New
Full-Body NPC Rendering & glTF Export
Full-body NPC model assembly and export to glTF (.glb) format.
- Head, body, and equipment meshes composited into complete NPC scenes
- Equipment resolver for armor addon and weapon mesh lookup from ESM/BSA
- NPC record scanner for batch appearance extraction
- glTF export with alpha texture packing, material tuning, normal map encoding, and tint color support
- Tangent builder and coordinate adapter for correct glTF orientation
- Fixed NPC head attachment, eye transforms, and holster posing (baseball bat, weapons)
NPC Browser (GUI)
Interactive NPC browsing with 3D model preview in the GUI.
- BSA discovery for automatic mesh/texture archive detection
- NPC list with filtering and selection
- WebView2-based model viewer with embedded
<model-viewer>component
Dialogue Viewer (GUI)
Full dialogue tree visualization and browsing.
- Conversation builder with quest-to-topic-to-response navigation
- Dialogue tree renderer with expandable condition display
- Condition parser with function, operator, and parameter formatting
- Runtime dialogue merger for combining split Xbox 360 INFO records into coherent conversations
- Dialogue picker tree for browsing all quest dialogue topics
Runtime DMP Struct Readers
Major expansion of memory dump analysis with PDB-derived struct layouts.
- Typed runtime readers for 14+ new record types (Book, Challenge, Class, Collection, Explosion, Global, Magic, Message, CharacterAppearance, ActorWeapon, and more)
- PDB-based generic reader: reads any FormType's C++ fields using embedded
pdb_layouts.json(116 types, 2,612 fields) - BSStringT diagnostics for validating string fields in memory
- Memory-mapped file access via
IMemoryAccessor/MmfMemoryAccessor— efficient random-access reads of large DMP files - Runtime NPC layout auto-detection across different build versions
- Runtime world cell auto-detection and cell map probing
- Data-driven field probe system with baseline verification tests
- GPU texture scanner for locating textures in DMP memory regions
ESM Parser Expansion
- Eyes (EYES), Hair (HAIR), and expanded effect/magic data parsing
- Dialogue schema registry extended with new subrecord field definitions
- FormUsageIndex for cross-reference tracking across record types
- Expanded property panel builders for character, item, and world record display
World Map (GUI)
- Interactive world map control with hit testing for placed objects
- Heightmap builder and overview renderer improvements
- Cell property display and placed object category resolution
NIF Animation Support
- Controller sequence selector, interpolator pose reader, and keyframe reader
- Node controller pose reading for skeleton animation data
DDXConv Improvements
- Partial decompression support for truncated/corrupted textures
- Sequential tiled mip extraction
- DDS header fixes
- 3XDR block-size-dependent untiling fix
- 16B-block tiling fix for small grids (<16 blocks wide)
- ATI2/BC5 sub-tile untiling and 3XDO decompression buffer fix
DMP Diagnostics
- New
dmp dmp-diagcommand for scanning persistent refs and map markers across dump directories - DMP snippet extraction framework for creating self-contained test fixtures from real dumps
Code Quality
- Rendering code split and deduplicated (lighting constants consolidated)
- Analysis and export reporting infrastructure refactored with semantic formatting
- Savegame model types split into dedicated files
- Test suite expanded with new helpers:
DmpSnippetExtractor,SparseMemoryAccessor,RecordingMemoryAccessor,EsmTestFileBuilder - Removed obsolete test files and EGT verification pipeline (superseded by probe-based testing)
Full Changelog: v2.2.0-pre1...v2.3.0