Most ESP32 projects follow the same routine. You write a program, build it for one board and flash it, and when you want a different program you flash again. Gil Tal's open-source P4 Launcher does it differently. The project README puts it this way: "Run applications from an SD card on an ESP32-P4, the way a PC runs a program from a disk." Three GitHub releases published on 6 November 2026 (v0.24.0, v0.25.0 and v0.25.1) take the project to launcher version 0.25.1. They add a channel for community-contributed apps and detection for the newer display panels M5Stack has been fitting to its Tab5.

How the launcher works

According to the README, the launcher is permanent firmware that lives in flash. Applications are .papp files ("PSRAM App") stored on a microSD card. When you start one, the launcher loads it into PSRAM, relocates it and links it to the services the launcher provides. The README sums up the result: "There's no reflashing, no reboot and no flash wear." Adding a program means copying files to the card.

The README also compares this with the usual OTA-per-program approach. With OTA, every program needs its own build for each board. With PAPP, the README says the same binary working on another board is the goal, with only the launcher ported. For a project that targets three boards with three different screen resolutions, one binary per app instead of one per board matters more than it might sound.

The README says 21 applications are available today. They include emulators covering systems from the NES to the Neo Geo, ports of Doom, Quake, Duke Nukem 3D and OpenTyrian, and utilities such as Clock and Files.

What CNX Software found under the hood

CNX Software covered the project on 5 November 2026, the day before the latest releases. It described an LVGL-based user interface with a compositor that scales the UI across resolutions. The audio engine handles up to 8 streams at sample rates from 4 to 192 kHz, and up to four input devices can be connected for multiplayer, with PS3 or Nintendo controllers named as examples. Firmware updates come from microSD or GitHub, with automatic rollback.

The ported games keep their original glue code because of an SDK and two compatibility layers: an odroid_* API and a PAPP v1 service table. CNX compared the project with Espressif's ESP-Brookesia and called it more flexible but mainly games-oriented. CNX also reported that development was heavily assisted by Anthropic's Claude.

The three 6 November releases

v0.24.0: newer Tab5 screens

According to the release notes, the launcher now identifies a Tab5's panel by its touch controller and detects ILI9881C, ST7123 or ST7121 panels. The notes say the ST7123/ST7121 path is "still waiting for a test on such a unit". Owners of newer Tab5 units should treat that support as untested on hardware for now. This matters because M5Stack's own Tab5 documentation currently lists an ST7123 display/touch driver IC, which is exactly the path that has not been tested yet. The same release saves the Wi-Fi network to /sd/config/wifi.txt, using ssid= and password= lines. The release notes say the password is stored as plain text.

v0.25.0: Community apps

Developers can now share an app without publishing its source. They open a pull request that adds a folder under community/ containing the .papp file, an icon and an app.json. The JSON file gives the author, a description, the licence and an optional source link. The release notes say plainly that community apps are not reviewed. Settings > Apps names the author and says so before installing, and the "Install all" option never installs community apps. Launchers older than 0.25 do not see these apps at all.

Anyone running binaries from strangers should keep that in mind. An unreviewed, possibly closed-source binary running on a Wi-Fi-connected board that stores your network credentials in plain text on the SD card is a trust decision. The project is open about this rather than hiding it.

v0.25.1: an always-visible Community folder

In "Launcher 0.25.1", the Community folder appears permanently on the home screen next to Emulators and Games. It stays empty until a community app is installed from Settings > Apps.

Supported hardware

The README's version table lists three boards. It gives resolutions in portrait order:

  • Guition ESP32-P4 4.3in: 480x800
  • Guition JC1060P470C 7in: 1024x600
  • M5Stack Tab5: 720x1280 (M5Stack lists the panel as a 5-inch IPS 1280x720 MIPI-DSI touchscreen)

M5Stack's documentation gives these Tab5 specs. The board is SKU C145, and the Tab5 Kit is K145. It uses an ESP32-P4NRW32 with a dual-core RISC-V CPU at 360MHz plus a single-core LP core at 40MHz, along with 16MB flash and 32MB PSRAM. An ESP32-C6-MINI-1U provides Wi-Fi 6, Thread and Zigbee. The board also has an SC2356 2MP camera, a microSD slot, a USB-A host port, a USB-C OTG port and RS-485. M5Stack says the NP-F550 battery comes only with the Kit.

One clock-speed caveat. M5Stack lists the P4's main cores at 360MHz, but Espressif's ESP32-P4 product page quotes a dual-core RISC-V CPU "up to 400 MHz". Espressif also lists a single-precision FPU, AI extensions, an LP core up to 40 MHz, 768 KB of on-chip SRAM (usable as cache when external PSRAM is present), 8 KB of zero-wait TCM RAM, and MIPI-CSI with ISP plus MIPI-DSI up to 1080p. The two figures describe different things: one is the silicon's ceiling, the other is the clock M5Stack specifies for its board. Readers comparing emulator performance between boards should not assume every P4 runs at 400 MHz.

What It Means for Makers

If you own one of the three supported boards, P4 Launcher turns it from a single-purpose target into a small handheld computer. You copy files to a microSD card and pick a program from a touch UI, with no build environment needed for each app. Its most obvious use is retro gaming, which CNX also identified as the project's focus. The same loader model also suits educators and anyone who wants several utilities on one board without reflashing between them.

For developers, the cross-board binary is the main advantage: one .papp instead of a separate OTA image for each board. The cost is stability. The README describes the project as under active development and lists the App ABI as 2.0-preview that "may still change". Apps built today may need rebuilding later. The toolchain is ESP-IDF v5.5.2.

On price and availability: the launcher is published on GitHub, with v0.25.1 released on 6 November 2026, and none of the cited sources lists a price for it. None of the cited sources gives board prices either, so check current retail listings for the Guition boards and the Tab5. Tab5 owners should note that support for the ST7123 and ST7121 panels is still untested on hardware, according to the project's own release notes. Before installing community apps, remember that they are unreviewed by design.

Sources