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
CE Runtime Foundation (aka CERF) - Universal Windows CE emulator cerf.cx - read more information about the project
Warning
Beta stage. CERF 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. π
For the same reason - be careful if you are going to use CERF is a reference for
hardware level behaviour. The code works but CERF is not an official chip datasheet.
Downloads
To use the newest features, download the WIP build (6.8) from the artifacts . For a stable version, go to the latest release.
If you need any additional help, e.g. what to run and how to use the emulator - visit cerf.cx.
Casio Cassiopeia EM-500casio_cassiopeia_em500
Pocket PC 2000
NEC VR4121 MIPS III
Casio Toricomail / Message-Cam / Pocket PostPetcasio_toricomail
Windows CE 2.12
Intel XScale PXA255 ARMv5TE
Falcon 4220falcon_4220
Windows CE .NET
NEC MobilePro 900nec_mobilepro_900
Handheld PC 2000
Windows CE .NET
Freescale i.MX51 Cortex-A8
Ford SYNC 2ford_sync_2
Windows Embedded CE 6
Intel SA-1110 StrongARM
HP Jornada 720jornada_720
Handheld PC 2000
Linux
iPAQ H3100/H3600/H3700ipaq_gen1
Pocket PC 2000
Pocket PC 2002
Siemens SIMpad SL4simpad_sl4
Handheld PC 2000
Windows CE .NET
SmartBook G138smartbook_g138
Windows CE .NET
Intel SA-1100 StrongARM
HP Jornada 820jornada_820
Handheld PC 3.0 Professional
ARM720T ARMv4T
Microsoft Windows CE Hardware Reference Platformodo
Windows CE 2.11
Windows CE 3
NEC VR4102 MIPS III
NEC MobilePro 700nec_mobilepro_700
Windows CE 2.0
NEC VR5500 MIPS IV
NEC Rockhopper SG2_VR5500nec_rockhopper
Windows Embedded CE 6
TI OMAP 3530 Cortex-A8
OMAP 3530 EVMomap_3530_evm
Windows Embedded Compact 7
Philips PR31700 MIPS I
Philips Nino 300philips_nino_300
Palm-size PC
Sharp Mobilon HC-4100sharp_mobilon_hc4100
Windows CE 2.0
Philips PR31500 MIPS I
Philips Velo 1philips_velo_1
Windows CE 1.0
Samsung S3C2410 ARM920T
Siemens P177siemens_p177
Windows CE 5
Device Emulatordevemu
Windows Embedded CE 6
Windows Mobile 5
Windows Mobile 6
Windows Mobile 2003 SE
Windows CE 5
Freescale i.MX31L ARM1136
Zune 30zune_30
Windows CE 5
Running your own ROM
A ROM boots only if CERF implements that exact board. A matching SoC is not sufficient.
The board is on the supported list. The articles show how to boot your own dump.
The board is not on the supported list. A new board is a code contribution. It needs C++ for the memory map of the board, for each peripheral that the drivers use, and for the quirks of the SoC. The code must agree with datasheets, BSP sources and reverse engineering, at the quality level of the current tree. A new board is not a change to a configuration file - that's not that simple.
Important
CERF does not accept ROM submissions or requests for new boards. If you want a new board - your only choice is to build a support yourself and send a contribution.
Building
CERF requires Visual Studio 2026 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.
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 the Windows CE binaries that CERF ships, and the Guest Additions driver.
To build them, you need a CE toolchain and a CE SDK.
cerf.exe does not need them. If you work on the emulator core, the boards, the SoCs, the JIT or the host UI,
use the prebuilt binaries from another CERF release or just dont use them at all.
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.
setup.cmd -Check reports whether the CE toolchain is present.
Website
This repositroy includes cerf.cx source code at docs/website.
python tools/build_site.py --serve runs the website on your machine with live reload.
Changelog
Version
Release Date
Changes
v6.8
TBA
π± Devices
π Casio Toricomail: bezel touch buttons
β Philips Velo 1: 16 MB DRAM Miniature Card permanently fitted - 20 MB total for the guest
β Device Emulator: keyboard no longer drops or repeats keys while typing
β Device Emulator: sound no longer stutters
β Device Emulator: Windows Mobile 2003 SE no longer freezes
πΏ Emulator
π Build number shown in the window title and the About box
π Configurable display colour depth for Guest Additions and Device Emulator
π Bundled CompactFlash cards can be auto-inserted at launch
β ARM JIT and JIT core full rewrite. ARM JIT/peripherals optimizations. Expect new issues.
π Launcher
π Copyright removal dialog listing each bundle repository's abuse contact, reachable from the Download ROMs window and the download confirmation
π GitHub issues window (Bugs&Requests)
π Update channel setting: disable updates, stable releases, or unstable CI builds
β Installed devices are listed and launchable immediately at startup instead of waiting for the bundle catalog on a slow or absent connection
β Toolbar buttons that no longer fit a narrow window move into a chevron menu instead of being cut off
β The update check now understands build numbers in release tags
β¨ Guest Additions
β 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 Windows CE 4 - the taskbar and application backgrounds render again
β Mouse and keyboard no longer stop working for the whole session when input arrives early during boot
πΏ Emulator
π Discord Rich Presence - shows the current device and OS in your Discord profile
π UI updates
β Fixed framebuffer not relatching on suspend/resume
β Fixed 100% CPU usage and UI deadlocks on Windows XP on non-framebuffer tabs
π Launcher
π UI refresh
β Metadata-only remote updates no longer re-download the entire ROM
β Fixed the command-line interface producing no output
β Configuration, updates and removal are now blocked while a device is running
β Single click on a device preview now launches it everywhere
β Merged the two launcher builds into a single Windows Vista+ executable
β Removed the redundant soc_family and board_name fields from cerf.json
πΎ CE Apps
β CerfDemo: UI and performance improvements
β¨ Guest Additions
π High refresh rate support - use Windows CE with 240 hz display! (Or whatever Hz you have). Yes, this should be taken LITERALLY. WinCE WILL render 240 fps on your 240 hz monitor. The guest video mode and host window scanout follow the host monitor's refresh rate
π --screen-refresh-rate flag to set the refresh rate manually
π Touch-calibration helper - offers to switch to the stock input device when the guest opens a calibration screen, and switches back afterwards
π Color scheme overrides - colorize grayscale devices with a forced system color scheme
β Input devices now run at the proper priority, staying responsive under heavy guest CPU load
v6.6
18 Jul 2026
π± Devices
β Fixed Device Emulator crash booting Windows Mobile 5.2 ROMs
πΏ Emulator
β Device names with spaces and absolute rom.* paths in cerf.json are now supported
π Launcher
π New-device wizard: create a device profile from your local ROM dump
π Rename a device from its right-click menu
v6.5
17 Jul 2026
π± Devices
π Sharp Mobilon HC-4100 support (Handheld PC, Windows CE 2.0)
π Casio Toricomail support
πΏ Emulator
β Fixed Integer scale 2x/3x not resizing the window under "Match guest size"
β Fixed moving the window releasing the "Match guest size" lock (now only a resize does)
π Launcher
π Added downloads count sort
πΎ CE Apps
β Fixed bundled CE2 apps (ROM dumper and others) crashing on launch - their coredll imports were bound by version-specific ordinal instead of by name
β¨ Guest Additions
β Display driver unified onto a single mips1 build across MIPS devices
v6.4
15 Jul 2026
π± Devices
β Fixed NEC MP700 touch
v6.3
15 Jul 2026
π± Devices
β Fixed a crash when PC Card was re-inserted too fast in DevEmu boards
β¨ Guest Additions
β Fixed IMGFS ROMs regression introduced in v6.0
β Software rendering is fully removed and replaced with hardware rendering. Microsoft dependencies dropped.
β Fixed incorrect hardware communication approach for display and shared storage. Now rendering and shared storage is stable.
The environment includes several contraversional 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
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. (Tho honestly speaking, there have been cases where Claude alone brought a board to a bootable state)