melonDS is a Nintendo DS and DSi emulator implemented in C++ with a Qt/SDL frontend. The core provides cycle-accurate emulation of the ARM9/ARM7 CPUs (with both an interpreter and JIT backends for x86_64 and AArch64), 2D/3D GPU (software and OpenGL), SPU, DMA, cartridge slot (retail, homebrew, R4), DSi-specific hardware (AES, NAND, camera, I2C, DSP), Wi-Fi with libslirp user-mode networking, and GDB remote debugging. The architecture separates platform-independent emulation logic from OS-specific frontend and audio/video output via a well-defined Platform abstraction. The codebase is large and includes vendored third-party libraries (libslirp, Teakra DSP, FatFs, tiny-AES-C, xxhash, blip-buf, toml11) and borrowed components from Dolphin and DuckStation projects. Reusable patterns include a consistent savestate serialization scheme, FIFO templates, efficient bitfield utilities, and a register cache for JIT compilation. Maintenance is active with regular commits and CI across Windows, macOS, Linux, and BSD, though some areas (DSi emulation, netplay) have TODOs and commented-out code indicating ongoing development.
EKA2L1 is a Symbian OS emulator written in C++17, targeting the EKA2 (and EKA1) kernel used by Nokia S60 smartphones and N-Gage devices. It provides full system emulation including ARM CPU (with multiple backends: dyncom interpreter, 12l1r JIT, and optional Dynarmic), memory management (flexible and multiple address-space models), kernel reimplementation (processes, threads, IPC, timers, libraries), file system, and a wide range of Symbian services (window server, audio, Bluetooth, SMS, camera, DRM, etc.). The emulator supports multiple frontends: a Qt desktop application, an Android app (Java/JNI), and an iOS app (SwiftUI). It also includes a Lua scripting API for runtime debugging and game-specific patches, a GDB stub for remote debugging, and a set of guest-side DLL patches that redirect Symbian hardware calls to the emulator. The codebase is large and complex, with many services partially implemented or stubbed. It is actively maintained but development is part-time, and some platform-specific backends (e.g., iOS, Android) may lag behind the Qt frontend.