You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Universal Windows CE emulator cerf.cx - read more information about the project libCerfEngine - JIT repository;
libCerfCore - Emulator repository
Warning
Beta stage. It is a hobby project, developed in spare time
and can't be a called production-grade/exceptionally stable project.
Expect bugs, crashes, and breaking changes. CERF stays beta permanently.
This document covers development and contribution aspects. Visit cerf.cx
for user-oriented documentation.
Downloads
Visit the website to learn how to download a stable or an unstable build.
Please read these if you are planning on contributing.
Building
CERF builds on Windows, Linux and macOS with the same build.py script.
Windows
Install modern Visual Studio with the C++ desktop development workload.
Note
The first build on a new machine takes more than one hour. vcpkg compiles the dependencies from source before CERF links. This occurs one time on each machine. Later builds use the cached vcpkg_installed/ tree and are complete in a few minutes. Do not stop the first build.
Linux
Install the build packages. These are the Ubuntu 26.04 names:
Development environment might need additional configuration on your machine that this guide doesn't explain. If you find a bug there, or find a more universal approach - feel free to submit a pull request.
Configure the clone (one time on each machine), then build the entire project with a helper script. On Windows:
python tools/dev_setup.py
python build.py
On Linux and macOS:
python3 tools/dev_setup.py
python3 build.py
tools/dev_setup.py --check is a dry run. The setup will
point git at tracked hooks
report missing prerequisite
The build script will:
wait for a parallel build (Claude Code-special feature for parallel agents work)
build the launcher (and will install CPython into a repo directory, if needed)
build the emulator itself (and will pick appropriate SDK/toolchain from your installations)
build all the bundled Windows CE apps (at ce_apps/)
Building the CE-side binaries (optional)
ce_apps/ holds various Windows CE applications CERF is bundled with including the Guest Additions driver.
You don't need those if you are not working with Guest Additions. You may copy Guest Additions binaries from an artifact or skip them entirely. On Linux the build runs these tools through Wine.
macOS cannot run these tools. Give build.py the ce_apps directory of a Windows or Linux build, for example from a CI artifact. The build then copies the binaries from that directory:
To build ce_apps/, install eMbedded Visual C++ 4.0 (a free Microsoft download from the
Microsoft archive). CERF includes a script that will unpack the installation (you dont want and probably can't install ancient tools)
and will place the build tools / SDK into appropriate directories.
See docs/ce_apps_setup.md.
python tools/dev_setup.py --check reports whether the CE toolchain is present.
Website
This repository includes cerf.cx source code at docs/website.
python tools/build_site.py --serve runs the website on your machine with live reload.
AI Usage / Vibecode Notice
AI-assisted contributions are welcome. That's a nice thing to have in 2026 - you have access to tons of resources right in your pocket. Let me show generic use cases on this project:
study emulators, study JIT, study assembly on various archs, study every piece that affects your code that you don't understand how it works yet
learn and use AI to reverse engineer; use AI to reach for more correct architecture calls when you stall
use AI to find projects/resources with compatible license to learn/borrow something complex
use it to find manuals and papers for devices you target, SoCs/peripherals you target and to extract quotes from them
use it to work with and explain complex data structures and non trivial algorithms
use it to review your code and to criticize it
the AI is an instrument to convert plain thoughts into a code - that's a replacement for typing code in order to get the same code you wanted but faster
The vibe code is banned. Please read Contribution Guidelines. Do not turn this into an AI slop. We put an effort here and we maintain a quality level.
Vibecoding non complex modules is fine but you will most likely violate the Contribution Guidelines by producing shitcode.
Claude Development Environment
The environment includes several controversial things you need to know before using it.
Full project documentation is injected into a system prompt - this eats tokens
The environment kills global clangd.exe and own claude.exe instances if they leak memory
Thinking is set to high; bypass permissions mode is set
Several own/3rd-party skills included
Powerful hooks triggering when agent might do something bad to the codebase
IDA MCP is ready to be installed at tools\ida_server.py and tools\ida_claude.py
FS Read MCP is a workaround for Read() tool, useful for /tracking restore and massive text files (tools\fs_read_mcp.py)
The environment gives you the /start-board-implementation skill. Run the skill and agent will start the new board bring-up on its own. You need experience - the skill won't do all the work instead of you. (it actually will do, and that's the problem)
Symbol MK500 (A035QN02 panel)symbol_mk500_a035qn02
Symbol MK500 (T35QM7117 panel)symbol_mk500
Symbol MK590*symbol_mk590
Samsung S3C2410 ARM920T
Samsung SMDK2410
Device Emulator (QVGA)devemu
Device Emulator (VGA)devemu_vga
Device Emulator (WQVGA)devemu_wqvga
Device Emulator (WVGA)devemu_wvga
Siemens SIMATIC TP 177B 4"
Siemens SIMATIC TP 177B 4" color PN/DPsiemens_p177
TI OMAP 3530 Cortex-A8
TI OMAP35x EVM
TI OMAP35x EVM (Gen1 main board)omap_3530_evm
TI OMAP35x EVM (Gen2 main board)*omap_3530_evm_gen2
NEC VR4102 MIPS III
NEC MobilePro 700
NEC MobilePro 700nec_mobilepro_700
NEC VR4111 MIPS III
Casio Tomcat
Casio Cassiopeia E-55casio_cassiopeia_e55
NEC VR4121 MIPS III
Casio PocketPostPet
Casio Message-Camcasio_message_cam
Casio PocketPostPetcasio_pocketpostpet
Casio Toricomailcasio_toricomail
NEC VR4122 MIPS III
Casio JX670
Casio Cassiopeia E-700casio_cassiopeia_e700
Casio Cassiopeia EM-500casio_cassiopeia_em500
NEC VR5500 MIPS IV
NEC Solution Gear 2-Vr5500
NEC Rockhopper SG2_VR5500nec_rockhopper
Philips PR31500 MIPS I
Philips Velo 1
Philips Velo 1philips_velo_1
Philips Velo 1 (1 MB DRAM Miniature Card)philips_velo_1_dram_1mb
Philips Velo 1 (16 MB DRAM Miniature Card)philips_velo_1_dram_16mb
Philips Velo 1 (2 MB DRAM Miniature Card)philips_velo_1_dram_2mb
Philips Velo 1 (4 MB DRAM Miniature Card)philips_velo_1_dram_4mb
Philips Velo 1 (8 MB DRAM Miniature Card)philips_velo_1_dram_8mb
Philips PR31700 MIPS I
Philips Nino
Philips Nino 300philips_nino_300
Sharp Mobilon HC
Sharp Mobilon HC-4100sharp_mobilon_hc4100
* Supported, but CERF does not model this board's differences.
Changelog
Version
Release Date
Changes
v8.0
TBA
πΏ Emulator
π Support for Linux (x86-64)
π Support for macOS (ARM64)
π Startup screen scale configuration and dynamic mode for retina screen
β¨ Guest Additions
β Moved "untrusted apps hack" for WM into optional switch since it broke WM6
v7.0
14 Oct 2026
π± Devices
π Casio Cassiopeia E-55 support
π Symbol Mk500 support (by @Katamaran21)
π Siemens MP377 support (by @RaulMerelli)
π Casio Toricomail: bezel touch buttons
π Casio Cassiopeia E-700 support
π Philips Velo 1: Various DRAM Miniature Card profiles
π iPAQ H3660/H3670 support
β Device Emulator: keyboard no longer drops or repeats keys while typing
β Device Emulator: Windows Mobile 2003 SE no longer freezes
β Casio Toricomail: fixed rendering crashes
β Ford Sync 2: Massive rendering improvements, navigation maps and more (by @cavenderbi)
β iPAQ H3100: fixed audio playback
β iPAQ H3600: standard RAM size
β Siemens SIMpad SL4: 64 MB RAM
πΏ Emulator
π BREAKING: Device database has been updated, check your launcher and fix your entries before running on old values
π Configurable display colour depth for Guest Additions and Device Emulator
π Bundled CompactFlash cards can be auto-inserted at launch
π Thumb32 support. Windows Embedded Compact 2013 is now supported
π Right Click simulation mode for the stock stylus (synths LAlt+Tap)
π Shutdown dialog has received reboot options
π Host key is now reassignable
π Improved UI and added notification cards
π Catch up throttle multiplier knob (see in launcher)
π CPU rate multiplier knob (see in launcher)
β ARM JIT and JIT core full rewrite. ARM JIT/peripherals massive performance optimizations
β Audio systems were reworked - less sound stuttering
β Media instructions for Zune 30 - music is now playable
β System clock improvements
β Keyboard input no longer stops working after switching to another window and back
β Memory visualizer
π Launcher
π Feedback window listing GitHub issues
π Copyright issues contact window
π Configurable update channel
π UI revamp and optimizations
π Configurable board types, ROM and storage sources
π CPU Configuration
β Launcher does not wait depend on internet connection and it's speed to let you use it
β Toolbar buttons are now properly trimmed when not enough width
πΎ CE Apps
π romdump: SH3 support
π romdump: universal reset vector presets for MIPS and SH3
β¨ Guest Additions
π Virtual Ethernet adapter
π Persistant customization/settings from CERF UI
π Windows Embedded Compact 2013 support
π Font size override support
π Stylus simulation mode for the mouse pointer
π Shared folders on Windows CE 2.0
π Driver automatically disables system-wide signature checks on Windows Mobile
π Hack to the WinCE shell for Ford SYNC 2
π ClearType support (by @RaulMerelli) and configuration
β Pre-OS graphics (stock framebuffer) is now visible too and usable (switch to GA inputs is deferred now)
β Crash when drawing off-screen (GiNi)
β Default colour depth is now 24bpp instead of 32bpp - fixes Device Emulator Windows Mobile 6.5 shell rendering
β Colour corruption in 16bpp mode - alpha-blended elements rendered green/cyan
β Gradients on WM 2003 - the taskbar and application backgrounds render again
β Mouse and keyboard no longer stop working for the whole session when input arrives early during boot
β Crash/artifacts when scrolling under complex rendering
β Apps run from a shared folder no longer crash
β Shared folders no longer crash Explorer on Windows CE .NET
β Fixed memory errors on Windows CE 6 branch
β Fixed shared storage caps