Run original Windows CE ARM applications on modern desktop Windows.
CERF is an ARM CPU emulator and Win32 API compatibility layer that executes WinCE ARM binaries natively on x64 Windows. It includes a full ARMv5 instruction set interpreter (ARM + Thumb modes), a PE loader for WinCE executables, and a comprehensive Win32 API thunking layer that translates COREDLL calls to native desktop Win32 APIs.
Successor to wcecl (coredll.dll shim for x86 WinCE apps). CERF takes a fundamentally different approach — instead of shimming a single DLL, it emulates the entire ARM CPU and thunks all system calls, allowing unmodified ARM binaries to run.
cerf.exe <path-to-wince-app.exe>
- ARMv5TE instruction set emulation (ARM and Thumb modes)
- WinCE PE loader with import resolution and relocation support
- Win32 API thunking: GDI, windowing, memory, system, dialogs, menus, input, resources
- Automatic ARM-to-native callback bridging (WndProc, DlgProc, TimerProc)
- 64-bit safe handle marshaling between emulated 32-bit code and native x64 APIs
Requires Visual Studio 2022 with C++ desktop development workload.
msbuild cerf.sln /p:Configuration=Release /p:Platform=x64
Output: build/Release/x64/cerf.exe
Early stage. Several WinCE applications run successfully (Solitaire, etc). Many Win32 APIs are stubbed or partially implemented. Contributions welcome.
This entire codebase — every line of C++, every thunk, every CPU instruction handler — was generated by Claude using Claude Code. No human-written code. Contributions from both humans and Claude are welcome.
