Skip to main content

Introduction

WindowsMovieMakerDecomp is a full decompilation/recreation of Microsoft Windows Live Movie Maker 2012 — codename Sundance, version 16.4.3528.0331 — extracted from a 2012 Windows Live Essentials setup and rebuilt from binary analysis as C++14 / ATL / WTL source.

The original binaries were compiled with MSVC 11.0 (Visual Studio 2012) for Windows 8. This project reconstructs them with a modern VS2022 toolchain while preserving the original architecture, export surfaces, observable behavior, and — deliberately — the original bugs.

Key facts​

ProductWindows Live Movie Maker 2012
CodenameSundance
Version16.4.3528.0331 (.ship.client.main.w5m4)
Original toolchainMSVC 11.0 (VS2012), x86, Windows 6.2+
Reconstruction toolchainMSVC 19.44 (VS2022), C++14, CMake ≥ 3.20, Windows SDK 10.0.26100.0
Build targets29 CMake targets (launcher EXE, engine DLL, supporting DLLs/EXEs)
Source files375+ (src/MovieMakerCore/ alone has 349)
RTTI classes mapped1360 across 48 namespaces
Contract tests116 checks (tests/mmr-python), expected PASS=116 FAIL=0
Preserved quirks23 documented original bugs (see QUIRKS)

What "reconstruction" means here​

This is not a transcription of the original machine code. It is behavioral re-implementation: every public surface is rebuilt to be contract-compatible with the reference binaries, then pinned by an automated contract suite. Three rules govern the work (full detail in Stub Design):

  1. Export parity is mandatory. Every DLL exports exactly the same names, ordinals, and decorations as the reference binary, enforced by tools/diff_exports.py.
  2. Behavior parity is graded. Anything observable from outside the process (registry, file formats, published COM interfaces, HRESULTs) must behave like the reference. Internal purity is not required.
  3. The contract suite is the oracle. tests/mmr-python loads the built DLLs and asserts HRESULTs, GUIDs, return values, and side effects. It must stay green.

Where the reference DLL itself is a stub (several factory entry points in the parity build return E_NOTIMPL), the real implementation wins and the contract pins the real HRESULT.

Repository layout at a glance​

PathContents
src/Reconstructed source: 30 module directories + vendored src/WTL/ headers
analysis/Binary-analysis output, one directory per module (65 entries)
tests/Contract suite, GUI/CLI harnesses (submodules), per-module C++ tests
apps/10 consumer/exercise apps (submodules)
tools/Build, verification, and binary-analysis tooling
website/This Docusaurus documentation site
README.md, TODO.md, ROADMAP.md, StubDesign.md, QUIRKS.md, THINKING_PROCESS.md, AGENTS.mdRoot engineering documents

A complete map lives in Repository Map.

How to read this documentation​

This is an independent, clean-room-style reconstruction for research and interoperability purposes. It is not affiliated with or endorsed by Microsoft. The original binaries are copyrighted and are not part of this repository (they live in the gitignored undecomp/ directory on the author's machine and must never be committed).