explaingit

megabytefisher/dragonfruit

Analysis updated 2026-05-18

17CAudience · developerComplexity · 5/5Setup · hard

TLDR

Dragonfruit is a from scratch emulator that runs real Palm OS ROMs on ESP32 hardware by recreating the original Motorola DragonBall chip in software.

Mindmap

mindmap
  root((Dragonfruit))
    What it does
      Recreates DragonBall chip
      Boots real Palm ROM
      Runs on ESP32
    Tech stack
      C
      ESP32
      SDL
    Use cases
      Retro Palm emulation
      PC development builds
    Audience
      Retro computing fans
      Embedded developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Boot a real Palm IIIx ROM all the way to the Palm OS launcher on M5Paper ESP32 hardware.

USE CASE 2

Run the same emulator core on a PC for development, testing, and headless PNG screenshots.

USE CASE 3

Use the built in JIT compiler to run Palm OS at usable speed directly on the microcontroller.

USE CASE 4

Study a from scratch 68000 CPU interpreter and peripheral models for retro hardware emulation.

What is it built with?

CESP32SDL

How does it compare?

megabytefisher/dragonfruit0xblackash/cve-2026-46333atomiczsec/noradrenaline
Stars171717
LanguageCCC
Setup difficultyhardmoderatehard
Complexity5/54/54/5
Audiencedeveloperresearcherops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires M5Paper ESP32 hardware and a Palm IIIx ROM image obtained from a device you own.

In plain English

Dragonfruit is an emulator that brings late-1990s Palm handheld computers back to life on modern ESP32 microcontroller hardware. Palm devices from that era ran a chip called the Motorola DragonBall, a compact processor descended from the Motorola 68000 family that powered many personal computers in the 1980s. This project recreates that chip and the surrounding hardware components in software, accurately enough that you can load a real Palm IIIx ROM (the firmware that originally shipped in the device) and have it boot all the way to the Palm OS launcher, run the first-time setup wizard, and accept stylus input including Graffiti handwriting recognition. The reference hardware target is the M5Paper, an ESP32 board built around an e-ink display and a capacitive touchscreen. The result is a Palm IIIx running on a small modern board with a paper-like screen, including the classic silkscreen button area below the display. The emulator handles sleep and wake cycles, a real-time clock, SD card file installation, and database backups to the card. The Palm OS itself is copyrighted and not included, you must supply a ROM image obtained from a device you own. The project is written entirely in portable C with no dependencies tied to any particular board or operating system. The same core emulator code that runs on ESP32 hardware also compiles on a regular PC for development and testing, where it runs headlessly and writes the screen output as PNG files. An optional interactive window mode is available for desktop use via SDL. On the ESP32 side, the emulator includes a JIT compiler that translates 68000 instructions into native code on the fly, which is necessary to run Palm OS at a usable speed on the microcontroller. This JIT is designed behind a backend interface so it can be adapted to different ESP32 chip variants. The repository is organized into clearly separated components: the 68000 interpreter, peripheral models, display driver, touch input handling, SD card installer, and a PC build toolchain. It is a from-scratch engineering project aimed at people interested in hardware emulation, retro computing, or ESP32 development.

Copy-paste prompts

Prompt 1
Explain how the JIT compiler in Dragonfruit translates 68000 instructions for the ESP32.
Prompt 2
Walk me through building and running Dragonfruit's PC version to test without ESP32 hardware.
Prompt 3
Help me understand what a Palm IIIx ROM is and where I would legally obtain one.
Prompt 4
Describe how Dragonfruit handles sleep, wake, and SD card backups on the M5Paper.

Frequently asked questions

What is dragonfruit?

Dragonfruit is a from scratch emulator that runs real Palm OS ROMs on ESP32 hardware by recreating the original Motorola DragonBall chip in software.

What language is dragonfruit written in?

Mainly C. The stack also includes C, ESP32, SDL.

How hard is dragonfruit to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is dragonfruit for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.