EmulatorJS vs KNULLI
EmulatorJS
emulatorjs.orgKNULLI
knulli.orgSide by side
| Figure | EmulatorJS | KNULLI |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | Yes | — |
| Linux | — | Yes |
| iOS | Yes | — |
| Android | Yes | — |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Emulation Frontends | 8.1 (#7) | 7.7 (#14) |
| Purpose | EmulatorJS is a web-based frontend for RetroArch that lets users embed an emulator in a website. | KNULLI is custom firmware for retro-gaming devices such as handhelds and bartops, developed as a fork of Batocera. |
| Support | The project directs users to report issues on GitHub and include browser console logs and the version they use. | The project uses Discord for discussions and provides a wiki with setup and troubleshooting guides. |
Plans
In their own words
EmulatorJS
EmulatorJS is a free, open-source frontend for RetroArch that lets a site owner embed an emulator in a web page. The project provides a code generator, and says the resulting embed can be added with a few lines of code. EmulatorJS uses RetroArch’s libretro cores to run games. Its supported systems documentation includes NES, Nintendo 64, PlayStation, PSP, Sega systems, and Commodore systems, though the project warns that this list may be out of date. Built-in options allow customization, and multiple languages are supported. The project describes EmulatorJS as a library or plugin rather than a standalone website, and it does not provide a Docker container. A public CDN offers paths labeled stable, latest, and nightly. The listed platforms are web, Android, iOS, and self-hosted. Pages must be served through a web server; opening an HTML file directly is unsupported. Threaded cores may improve performance, but need SharedArrayBuffer enabled through COOP and COEP response headers. The 4.3.0-pre release is marked as a prerelease and is discouraged for production use where stability is needed.
KNULLI
KNULLI is free, open-source custom firmware for supported retro-gaming devices, including handhelds and bartops. It runs on Linux and self-hosted setups, with supported platforms including Anbernic RG series, GoRetroid Pocket 5 and Mini, Miyoo Flip, Powkiddy RGB30 and X55, Orange Pi Zero 2w, and TrimUI Brick and Smart Pro. The system provides EmulationStation or Simplemenu/Simplermenu+ frontends, RetroArch, and multiple libretro cores. It adds RetroAchievements, netplay, cover art, and thumbnail scraping through ScreenScraper, TheGamesDB, and ArcadeDB. Wireless and Bluetooth features depend on the device, while external USB wireless adapters are supported. Syncthing synchronizes saves between KNULLI devices or backs them up to a NAS, not a cloud. Installation requires a device-specific image flashed to an SD card or internal storage. Games, BIOS files, saves, and themes must use a strict case-sensitive folder structure.