EKA2L1: running Symbian OS and N-Gage through a reimplemented kernel
A Symbian OS/N-Gage emulator
At a glance
- What is it?
- EKA2L1 emulates the Symbian OS and N-Gage kernel and reimplements its critical app servers and libraries, covering game compatibility from S60v1 to Symbian Belle. OSX and Linux builds carry no official maintainer, and development has been part-time since 2022.
- Who is it for?
- EKA2L1 suits anyone who wants to run N-Gage or S60 games on Windows or Android and is willing to accept that OSX and Linux builds have no named maintainer. Check the compatibility list at github.com/EKA2L1/Compatibility-List before running any specific title; that list is the only per-title record the project maintains.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Star history
- EKA2L1/EKA2L12,060 ★ · +27
| Repository | 2026-10-11 | 2026-10-23 |
|---|---|---|
| EKA2L1/EKA2L1 | 2k | 2.1k |
27 Stars in the last 12 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
Kernel emulation and reimplemented app servers, not a compatibility layer
EKA2L1's architecture is stated in its opening paragraph: the emulator emulates the Symbian OS and N-Gage kernel and reimplements most of its critical app servers and libraries. That differs from a compatibility layer, which intercepts calls and redirects them to the host OS. Symbian's internal structure differs enough from Windows, Linux, Android and macOS that mapping calls between them would leave too many gaps.
App servers in Symbian are the processes that handle file access, window drawing, audio and other shared resources. An application talks to these servers through inter-process communication, and one running inside EKA2L1 communicates with EKA2L1's own implementation of those services rather than the host system's equivalents. This is how the emulator can run on Android, whose OS model has nothing structurally in common with Symbian's microkernel design.
Areas where the reimplementation is incomplete produce failures. EKA2L1's README is direct: N-Gage and N-Gage 2.0 libraries are almost fully covered, Symbian game libraries from S60v1 to Symbian Belle are largely covered, and general Symbian applications form only a limited subset. Those three tiers exist because each relies on a different mix of app servers, and game-related servers received more attention than productivity or communication servers.
Getting EKA2L1 when no package manager entry exists
No package manager entry exists for EKA2L1. Builds for Windows, OSX, Linux and Android are provided through GitHub Actions and linked from the project's GitHub page. The README's download instructions point there as the only documented distribution channel.
For anyone who wants to compile from source, BUILDING.md sits at the repository root alongside CMakeLists.txt, marking this as a CMake project in C++ 17. The README does not link to BUILDING.md from its main text and gives no build commands, compiler version requirements or system dependencies. A developer taking the source path has to start from BUILDING.md and CMakeLists.txt directly.
No Homebrew, Chocolatey, Flatpak or distribution package path is mentioned in the README. Getting a working copy means either using a GitHub Actions artifact or building from the source tree. For the latter, the repository also contains a Doxyfile and a clang-format configuration, which are the only build-adjacent files the top-level listing makes visible beyond the CMake structure.
Three compatibility tiers: N-Gage, S60v1 to Symbian Belle, and limited applications
Compatibility divides into three tiers, each corresponding to a different part of the Symbian API surface. Near-complete support covers almost all official N-Gage and N-Gage 2.0 libraries. Broad support covers most Symbian game libraries from S60v1 to Symbian Belle. A third, more restricted tier covers only a limited subset of general Symbian applications.
That third tier matters for anyone who wants productivity or utility software rather than games. Game libraries depend on graphics, audio, input and file APIs that were thoroughly reimplemented; communication and business applications may depend on telephony, messaging or synchronisation APIs that were not. Each missing API set is a failure point for any title that calls it. For any specific title, the compatibility list at github.com/EKA2L1/Compatibility-List is the documented source.
Covering the full range from S60v1 to Symbian Belle required handling multiple internal API revisions across successive Symbian generations. This is why the project distinguishes between 'kernel emulation' and 'library reimplementation' as separate layers of work: the kernel provides the process and memory model, while each library and app server has to be independently reimplemented for the applications on top to behave correctly.
What the version 0.0.8 screenshots reveal about game and application support
Five images appear in the repository's screenshots folder from version 0.0.8. Four are N-Gage games: High Seize, Dirk Dagger, The Big Roll in Paradise and Mega Monster. The fifth is Calculator from a Nokia 5530, which is a built-in system application on a non-N-Gage device, not a game title.
This is a concrete data point that sits beside the 'limited subset of Symbian applications' statement. A calculator is among the simpler Symbian applications in terms of API use, but its presence as a working screenshot on non-N-Gage hardware shows that application support is not restricted to games only. The screenshots date from version 0.0.8; what the current builds cover may differ, and the compatibility list is the authoritative reference.
None of the screenshots show a messaging application, a browser or a calendar. That gap is consistent with the three-tier structure, which places game libraries well above general applications in completeness. A GIF credit in the README names Stranno as the source of animated captures, pointing to external demonstration material that goes beyond the still screenshots in the repository.
OSX and Linux builds exist but have no named owner
A note in the README's download section states directly: there is no official maintainer for the OSX and Linux versions. Users encountering problems on those platforms are asked to report them through the GitHub issue tracker, with no commitment from anyone who owns that build.
The donations section identifies two developers who maintain the PC and Android version. That phrasing, with PC meaning Windows, draws the line explicitly: Windows and Android have named owners, and OSX and Linux do not. CI artifacts for macOS and Linux appear alongside the Windows and Android builds because the build system produces them automatically, not because someone is responsible for their correctness.
Whether the macOS CI builds target Intel, Apple Silicon or both is not stated in the README. CMake supports building for multiple architectures, but the configuration details live in BUILDING.md. A macOS user on Apple Silicon hardware would need to check the actual artifact or the build configuration to know whether Rosetta is required.
Part-time development since 2022 and what the commit history shows
From 2022, the README says, development shifted to a part-time hobby and is sometimes not maintained for months, because compatibility for most popular games and Symbian operating systems had been satisfied. That statement positions the project as largely complete for its original goals.
What it does not say is that activity stopped. The last push to the repository was on 2026-10-05. That is a recent date, and it means the project was receiving commits well past the 2022 announcement. Anyone reading the part-time disclaimer should read it alongside that fact: the pace is at the developers' discretion, not fixed at zero.
Project support runs through GitHub issues, a Discord server and the external wiki. No commercial entity backs the project; the README links to two developers' individual donation pages in its Sponsor section. For anyone who needs a guaranteed response time on a bug report, that structure is a practical limitation to weigh before depending on it.
Wiki, Discord and compatibility list as the external documentation layer
The README is intentionally brief. It names the project, describes the three compatibility tiers, points to download locations, acknowledges the platform gap and links out. Anything beyond that, including how to load a ROM image, configure the emulator for a specific device or troubleshoot a non-starting title, is deferred to three external locations: the homepage at eka2l1.github.io, the wiki at eka2l1.miraheze.org and the GitHub issue tracker.
For any specific title, the compatibility list at github.com/EKA2L1/Compatibility-List is a separate repository the README names as the verification source. Consulting it before committing to a use case is the only way to know whether a title is known to work, known to fail or untested.
Localization runs through Crowdin, and the README includes a translation progress badge. GPL-3.0 is the licence, and the repository's LICENSE file is the text to read before redistributing a modified build.
Editorial conclusion
EKA2L1 suits anyone who wants to run N-Gage or S60 games on Windows or Android and is willing to accept that OSX and Linux builds have no named maintainer. Check the compatibility list at github.com/EKA2L1/Compatibility-List before running any specific title; that list is the only per-title record the project maintains. Games using graphics, audio and input APIs are the most complete tier. Applications that need telephony, mail or synchronisation services sit in the limited subset the project acknowledges, and many will not work. For source builds, start with BUILDING.md, which the README does not link from its main text.
Frequently asked questions
What does EKA2L1 emulate?
EKA2L1 emulates the Symbian OS and N-Gage kernel and reimplements most of the critical app servers and libraries. It covers almost all official N-Gage and N-Gage 2.0 libraries, most Symbian game libraries from S60v1 to Symbian Belle, and a limited subset of general Symbian applications.
How do I download EKA2L1?
The README points to the GitHub Releases page, where GitHub Actions produces builds for Windows, OSX, Linux and Android. For building from source, BUILDING.md is at the repository root alongside CMakeLists.txt, but the README does not link to it or provide build commands.
Does EKA2L1 work on macOS?
CI builds for macOS are produced and appear in the Releases section, but the README states there is no official maintainer for the OSX and Linux versions. Problems with those builds should be reported through the GitHub issue tracker.
Is EKA2L1 still being developed?
The README says development shifted to a part-time hobby from 2022 and is sometimes not maintained for months, because compatibility for popular games was largely satisfied. Commits continue, and the project's Discord and GitHub issue tracker are where active discussion happens.
Where can I check if a specific game works with EKA2L1?
The README links to a separate repository at github.com/EKA2L1/Compatibility-List, which records games and applications that can and cannot run on the emulator.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/eka2l1-eka2l1)Star history chart for your README
[](https://hysenlabs.com/projects/eka2l1-eka2l1)Was this useful?