Full NES, Famicom & mapper support
CPU/PPU debugger, hex, RAM watch
Frame-by-frame input recording
Custom HUDs & automation
UI in 12 languages, auto locale detect
FCEUX11 is a derivative of the FCEUX NES/Famicom emulator, actively maintained and optimized for Windows.
It preserves the core emulation accuracy of FCEUX while providing a modern, native Windows experience, including a Qt6-based user interface, multi-language support, and comprehensive debugging and TAS tooling.
The UI now ships in 12 languages: Simplified Chinese, Traditional Chinese, English, Japanese, Korean, Spanish, French, German, Vietnamese, Thai, Hindi (beta), and Arabic (beta). On first launch, FCEUX11 automatically picks the language that matches your Windows display language. No setup, no downloads — just open it and play in your language.
The emulation core and the Windows interface layer are now formally separated through a DriverCallbacks interface. 86 conditional compilation blocks were removed from the core sources, and 40 legacy FCEUD_* functions were migrated to interface forwarding. The boundary between the engine and the UI is now clean, which makes the codebase easier to maintain and extend.
The 2086-line fceuWrapper.cpp has been divided into fceu_archive.cpp (460 lines, archive subsystem), fceu_globals.cpp (65 lines, global variable definitions), fceu_callbacks.cpp (358 lines, Qt-side callback implementations) and the remaining 1316-line fceuWrapper.cpp. Each module now has a single responsibility, which shortens incremental build times and lowers the cost of future changes.
src/utils/mutex.h and mutex.cpp were converted to a pImpl pattern, removing the QMutex and QWaitCondition references that previously leaked Qt types into the core. The emulation core no longer depends on Qt headers through the mutex path, which preserves the boundary established by the DriverCallbacks work.