Steam Achievement Manager (SAM) is a desktop application for managing Steam game achievements and statistics. It consists of three main components: SAM.API (a C# wrapper for the Steam Web API), SAM.Game (the main achievement management UI), and SAM.Picker (a game selection utility). The application interfaces directly with the local Steam client via steamclient.dll to retrieve and modify user game data. The architecture cleanly separates the API interop layer from the presentation layer, with the API layer demonstrating sophisticated interop techniques including vtable parsing, function pointer caching, and safe string marshaling. The UI layer uses Windows Forms to provide an intuitive interface for viewing and modifying achievements and statistics.
wow.export is a desktop application for extracting, previewing, and exporting assets from World of Warcraft (Retail, Classic, and other versions). It reads game data from local installations (CASC and MPQ archives) or remote CDN servers, parsing proprietary formats including M2 models, WMO world objects, ADT terrain tiles, BLP textures, DB2/WDC data tables, and audio/video files. The application provides a tabbed UI for browsing and exporting assets to standard formats such as OBJ, GLTF, STL, PNG, WebP, CSV, and SQL. It includes a real-time 3D preview powered by WebGL2 with skeletal animation, skinning, and environment effects like fog and lighting. Architecturally, the application is a monolithic desktop client built with NW.js and Vue.js. The core data pipeline consists of archive readers (CASC and MPQ), format parsers/loaders, and export writers. A module system registers tabs and context menus, and a central event bus coordinates state. WebGL rendering is abstracted through a set of helper classes (GLContext, VertexArray, ShaderProgram) used by multiple renderers for M2, WMO, terrain, and liquids. The application relies on Node.js built-ins for file I/O and binary data handling, and uses native addons (mmap) for efficient access to large listfiles. Key entry points include src/app.js (application bootstrap), src/js/core.js (central state and events), src/js/modules/tab_home.js and other tab modules, and the various loaders and exporters in src/js/3D/. External dependencies include NW.js, Vue.js, and a few npm packages like adm-zip and webp-wasm. The application is actively maintained with frequent updates to support new WoW patches and export features. Notable reusable components include BufferWrapper (binary read/write with BLTE support), WDCReader (generic DB2/WDC file parser), and GLTFWriter (glTF binary exporter). These modules are isolated and could be extracted for other projects dealing with binary formats or 3D asset pipelines.
rspirv is a Rust workspace providing comprehensive SPIR-V module processing functionality. It includes a core library (rspirv) with a low-level data representation (DR) for raw instructions and a higher-level structured representation (SR) with type-safe indices. The project also features a binary parser, an assembler, a disassembler CLI (rspirv-dis), and a code generator (rspirv-autogen) that derives Rust types from the official SPIR-V JSON grammar. The parser supports custom consumers via the Consumer trait, enabling streaming or custom processing. The builder (dr/build) allows programmatic construction of SPIR-V modules. The lift module converts from DR to SR, bridging the two representations. The codebase is heavily auto-generated from the SPIR-V specification, ensuring spec compliance, but this also introduces risks of drift if the grammar submodule is not updated. The project is actively maintained with CI/CD pipelines, and the multi-crate workspace is designed for both library reuse and standalone tool usage.
Kaitai Struct is an umbrella project that provides a declarative language for describing binary data structures and a compiler to generate parser code in multiple target languages. The repository coordinates submodules for the compiler, runtimes for various languages (Java, Python, Ruby, etc.), format definitions, visualizer, tests, benchmarks, and documentation. Users describe a format in a .ksy file, compile it with the kaitai-struct-compiler to generate language-specific parser code, and use the corresponding runtime to parse binary data. The project includes CI workflows for building the compiler and publishing artifacts, and maintains a collection of ready-to-use format descriptions.
FreeMote is a Windows-oriented .NET Framework 4.8 toolchain for reverse-engineering, decompiling, converting, rendering, and rebuilding E-mote (EMT) PSB game asset packages. It is primarily an application suite rather than a data/research project: five CLI tools (EmtConvert, PsbDecompile, PsBuild, EmtMake, FontBuilder-related commands) plus a WPF viewer provide user-facing workflows, while the core libraries FreeMote, FreeMote.Psb, and FreeMote.PsBuild implement binary parsing, encryption, plugin dispatch, compilation/decompilation, and platform conversion. The architecture is modular: FreeMote handles low-level container and crypto primitives, FreeMote.Psb provides the PSB object model and plugin interfaces, FreeMote.PsBuild handles JSON/PSB conversion and E-mote project generation, and FreeMote.Plugins supplies compressors, image/audio codecs, and shell handlers through MEF composition. The primary data flow is file-in/file-out: encrypted or shell-wrapped PSB containers are opened through FreeMount plugin composition, decrypted or unpacked into an in-memory PSB object graph, decompiled to JSON plus extracted resources, then optionally recompiled, re-encrypted, and packed back into shells. The reverse pipeline also supports building PSB from JSON, generating bitmap fonts, porting between Kirikiri/Windows/common/console specifications, converting motion PSB into MMO editor projects, and extracting textures/audio from archives. The code embodies deep reverse-engineering knowledge: PSB versions 1-4, trie-compressed name tables, XorShift128/MT19937 cipher handling, MDF/LZ4/Zlib shells, ASTC/BC7/DXT/TLG pixel formats, and console-specific texture swizzling. Although the repo contains research-grade format analysis, its dominant character is an application toolkit for game modding. It is actively maintained with CI packaging, tests, and a plugin ecosystem, but carries medium technical drift: legacy .NET Framework and System.Drawing dependencies, Direct3D9 interop in the viewer, reliance on external executables for some audio/image encoders, hard-coded platform heuristics, and a large monolithic Psb.cs with TODO debt. The most reusable assets are self-contained texture utilities and the generic plugin/composition pattern, not the tightly coupled PSB-specific pipeline components.
Rusted PackFile Manager (RPFM) is a desktop application for modding Total War games. It provides comprehensive tools for opening, editing, and saving proprietary game pack files (.pack) and dozens of embedded binary formats (animations, models, sound banks, battle maps, UI layouts, etc.) across all major Total War titles from Empire to Warhammer 3. The application is built in Rust with a Qt6 frontend, using a client-server architecture where the UI delegates heavy file operations to a background server over WebSocket. It also exposes a headless server with WebSocket and MCP endpoints for AI tool integration. The codebase is modular, with separate crates for core library (`rpfm_lib`), extended features (`rpfm_extensions`), IPC protocol (`rpfm_ipc`), telemetry (`rpfm_telemetry`), and shared UI utilities (`rpfm_ui_common`). It includes custom C++ Qt widgets, a plugin scripting system (Lua/Python), and self-update capabilities.