Lumenforce Lab · Custom Firmware · 2026-05-21

Batocera 43 and KNULLI Scarab Both Dropped in the Same Week. When Two Major Custom Firmware Projects Ship Together, That's the Community Running Faster Than the Hardware It's Serving.

Two independent custom-firmware projects — Batocera 43 and KNULLI Scarab — shipped within days of each other in May 2026. Both carry RetroArch 1.22.2. Both expand device support lists that already embarrass the stock firmware shipping on the same hardware. Neither project is run by a company. The velocity here isn't corporate — it's structural, and it tells you something about where the real operating-system layer for retro handhelds actually lives.

By · 2026-05-21 · 7 min read
Two retro handhelds side by side, one running Batocera, the other running KNULLI — both displaying updated firmware splash screens MAY 2026 · TWO PROJECTS · ONE WEEK · ZERO COMPANIES BATOCERA v43 RetroArch 1.22.2 snes9x v1.63.15 YabaSanshiro 2 v1.20.5 SHARED UPSTREAM libretro KNULLI SCARAB RetroArch 1.22.2 Expanded device BSPs Updated core set Two projects. One libretro upstream. Zero corporate sponsors.
Batocera 43 and KNULLI Scarab share a common upstream — libretro's RetroArch 1.22.2 — but diverge on device targets and packaging. Both projects are community-maintained. Diagram: Lumenforce, sources: Retro Handhelds Weekly #99, Retro Handhelds News

The experiment: map the overlap

The question that prompted this piece is simple: when two major custom-firmware distributions ship in the same week, how much of what they're shipping is actually theirs — and how much is shared upstream? Per Retro Handhelds Weekly Edition 99, Batocera 43 landed with RetroArch 1.22.2 integration, updated emulator cores including snes9x v1.63.15 and YabaSanshiro 2 v1.20.5, and expanded board-support packages for recent handheld hardware. Per Retro Handhelds News, KNULLI's Scarab release shipped the same week with its own RetroArch 1.22.2 integration, its own expanded device list, and its own core updates.

The overlap is the signal. Both projects pull from the same libretro/RetroArch upstream. Both consume the same emulator core releases. Both solve the same problem — the stock firmware on most sub-$100 retro handhelds is, to be blunt about it, bad — and both solve it by wrapping a Linux distribution around a shared emulation pipeline and shipping device-specific BSPs to make it boot on whatever Rockchip or Allwinner SoC the latest handheld shipped with.

The work that differentiates them — the BSPs, the UI decisions, the device-quirk workarounds, the community support infrastructure — is real engineering. But the emulation layer itself is communal property. And that communal layer is moving fast.

What's in Batocera 43

Per the Retro Handhelds Weekly #99 roundup, Batocera 43 is a major version bump. The notable inclusions:

RetroArch 1.22.2. This is the current stable release from the libretro project. The shader pipeline improvements in 1.22.x matter for handheld users specifically because CRT shaders at low native resolutions are the difference between a screen that looks intentional and a screen that looks like a compromise. The upstream changelog documents refinements to the Slang shader path that both Batocera and KNULLI inherit automatically.

snes9x v1.63.15. The SNES emulator that has been the default recommendation for low-power ARM devices for years. This version includes accuracy fixes that close the gap with bsnes/higan without the CPU overhead — the exact trade-off that matters when your target hardware is a $60 handheld with a single-digit TDP.

YabaSanshiro 2 v1.20.5. The Saturn emulator we covered yesterday in the context of DevMiyax's compute-shader VDP1 renderer. That piece focused on the desktop Vulkan path; Batocera 43 ships the same version for handheld targets. The Saturn has been the boundary case for handheld emulation — if the device can't run Saturn, it gets mentally filed in a lower tier. YabaSanshiro 2's inclusion in a mainline Batocera release signals that the project considers Saturn playable on current-generation handheld hardware, not aspirational.

Expanded device support. Batocera's device list has always been its competitive moat — the project supports a staggering range of SBCs and handhelds. Version 43 adds BSPs for several recent devices, per the release roundup. This is the unglamorous work that makes CFW matter: someone has to write the display driver quirks, the audio routing, the sleep/wake behavior, the button mapping, for every single piece of hardware. No upstream project does this for you.

What's in KNULLI Scarab

KNULLI's naming convention — insect codenames — is a small tell about the project's personality. Scarab is the current release. Per Retro Handhelds News, Scarab carries the same RetroArch 1.22.2 baseline as Batocera 43, with its own set of core updates and device additions.

Where KNULLI diverges from Batocera is in target philosophy. KNULLI has historically focused on lower-end and more obscure handheld hardware — the devices that Batocera's broader BSP list doesn't always prioritize. This makes KNULLI the firmware of last resort for a certain class of device: the $40 handheld with an unusual SoC variant that nobody else bothered to support. The Scarab release extends that coverage.

The KNULLI project also makes different UI decisions. The out-of-box experience is configured more aggressively for handheld use — shorter paths to launching a game, less configuration surface exposed to the user. This is a design choice, not a technical limitation. Batocera's UI assumes a user who might be running on a PC, a Raspberry Pi, or a handheld; KNULLI assumes a handheld, full stop.

The shared upstream is the story

Here is the structural observation that the firmware roundups tend to skip: Batocera and KNULLI are not competing with each other. They are competing with stock firmware, and they are both winning because the libretro ecosystem does the hardest work for them.

RetroArch 1.22.2 is not a Batocera product or a KNULLI product. It is the work of the libretro team — a volunteer-run project that maintains the core abstraction layer, the shader pipeline, the input system, the save-state infrastructure. When Batocera 43 ships with improved CRT shader rendering, it's because someone in the libretro project fixed the Slang path. When KNULLI Scarab ships with better Saturn performance, it's because DevMiyax updated YabaSanshiro. The CFW distributions are, in a structural sense, packaging operations: they take the upstream work, add device-specific integration, and hand it to users in a flashable image.

This is not a criticism. The packaging work is essential — without it, the upstream emulators and RetroArch itself are tools for developers, not products for players. But it means the velocity of CFW releases is a downstream indicator of upstream health. Two major CFW projects shipping in the same week doesn't mean the CFW scene is hyperactive. It means the upstream projects shipped something worth packaging, and two teams independently decided this week was the week to cut a release.

"Two CFW projects shipping the same week isn't a coincidence — it's a supply-chain signal. The upstream moved, and everything downstream moved with it."

What this means for handheld buyers

The practical consequence is this: if you own a retro handheld from the last eighteen months, there is almost certainly a Batocera or KNULLI image that runs on it and is better than what shipped on the SD card in the box. The stock firmware on most sub-$100 handhelds is a frozen snapshot of an older EmulationStation fork with outdated cores and minimal device optimization. Batocera 43 and KNULLI Scarab are current snapshots of a living ecosystem.

The choice between them is not a quality question — it's a fit question. Batocera supports more device classes and exposes more configuration. KNULLI is leaner and more opinionated about handheld UX. Both run the same emulators at the same versions. The games will look and play the same. The difference is in how many menus you navigate to get there.

Who made this

Batocera is maintained by a community team led by contributors on their own infrastructure — no corporate sponsor, no Patreon-dependent single maintainer. KNULLI is similarly community-run, with its own contributor base and its own device-testing pipeline. Both projects depend on the libretro/RetroArch project for the core emulation layer, and on individual emulator authors — the snes9x team, DevMiyax (YabaSanshiro), and dozens of others — for the cores themselves.

This is the part where Lumenforce's position on tool-makers gets loud: every person who writes a BSP for an obscure handheld SoC, every person who fixes a sleep/wake bug on a $45 device, every person who packages a RetroArch update into a flashable image and tests it on hardware they bought with their own money — they are doing the work that the hardware manufacturers should be doing and aren't. The stock firmware is the manufacturer's job. The community is doing it better, for free, because the manufacturer shipped something inadequate and moved on to the next SKU.

What's next

RetroArch 1.22.x is stable but the libretro project's development branch is already ahead of it. The next wave of core updates — particularly in the Saturn and N64 emulation space — will likely trigger another round of CFW releases. The YabaSanshiro compute-shader work is desktop-focused today, but the renderer architecture changes will eventually flow into the ARM builds that Batocera and KNULLI ship. When that happens, Saturn emulation on handhelds takes another step from "playable with caveats" to "playable, period."

The N64 emulation space is moving fast enough that the next Batocera or KNULLI release will likely carry meaningful N64 core improvements too. And the handheld hardware itself keeps getting cheaper and more capable — new Rockchip and MediaTek SoCs are landing in devices every quarter, each one requiring a new BSP from the CFW community.

The cycle is self-reinforcing: better upstream emulators create demand for updated CFW images, which create demand for new BSPs on new hardware, which create a larger user base, which feeds back into upstream testing and bug reports. It's a flywheel, and this week — with two major releases landing simultaneously — it's spinning visibly.

If you're running stock firmware on a handheld you bought in the last year, this is the week to look at what Batocera and KNULLI offer for your device. The upgrade path is a microSD card and a flashable image. The community did the rest.