Releases: Utility-Muffin-Research-Kitchen/Leaf
Leaf 0.1.1
Leaf 0.1.1
Leaf is custom firmware for the Miniloong Pocket 1. It runs on top of the stock OS instead of replacing it, so the launcher you actually live in is ours, but the device stays recoverable if anything ever goes sideways.
This is the first public release line. We've been daily-driving it for a while and it's solid, but we're still shaking out the install process on other people's hardware, so go in expecting the odd rough edge. If you hit one, please tell us.
What's new in 0.1.1
- Artwork scraper now provides a view on the items in queue
- Various Central Scrutinizer fixes
What you get
The home screen is a simple set of tabs, Recents, Favorites, Games, Apps and Settings, with cover art and a search that reaches everything. Press SELECT from the home screen and the game switcher pops up, a quick carousel of what you've been playing so you can jump straight back in.
You can make it yours. There are fourteen color schemes, a full run of dark ones and a matching set of lights, ten fonts to choose from, a soft-green LED, and a boot animation to go with it. The screen can run at 60, 90 or 120 Hz.
For playing, there are twenty-five emulator cores covering the stock systems, plus standalone PPSSPP for PSP and DraStic for DS. Saves and save-states are there with thumbnails, you can pause into a menu to save, load, reset or quit without leaving the game, and there are per-system performance profiles for the systems that need more grunt. Sign in to RetroAchievements and they just work, and you can pull box art automatically from ScreenScraper.
A few apps come with it: Central Scrutinizer, which lets you manage your ROMs, saves and artwork from a browser on your computer; Fugazi for tuning CRT shaders live; Joe's Calibrage for calibrating the analog stick when it isn't reaching full throw; a file explorer; and an SSH server. There's also Disco Boy, a little music player, which you can grab separately from the app store.
Wi-Fi and Bluetooth audio both work, wired or wireless headphones, it handles a second SD card, and it updates itself over the air from here on out. If the launcher ever gets stuck crash-looping it quietly drops you back to stock on its own, and the recovery download puts the device fully back to stock whenever you want it.
Installing it
One thing to sort out first: your device has to have taken at least one stock update before you install Leaf. The firmware it ships with from the factory is missing a piece of the stock system that the installer needs, and updating fills it in. We've tested on 1.3.0.32 and recommend updating to that. Just run the device's built-in system update the normal way before you start.
Then:
- Download
leaf-mlp1-sd-v0.1.1.zip. - Extract everything inside it to the root of a FAT32 SD card. Not exFAT, the stock updater won't look at an exFAT card.
- Put the card in, power on, and let the stock "upgrading" screen run. It installs Leaf and reboots into it.
- If that screen never shows up, power the device off and on a few times. Stock decides where to mount the card fresh on every boot, and the installer only catches when it lands in the right spot. That's a stock quirk, not us.
This is a clean install. It won't carry data over from an earlier dev build, so start from a fresh card.
If you want stock back
leaf-mlp1-recovery-v0.1.1.zip puts the device back to stock. Same FAT32 card, same power-cycle to trigger it.
Docs
The full guide, with screenshots and troubleshooting, lives at leaf.game.
One ask
Some of the cores we bundle are released under non-commercial terms, which means Leaf has to stay free. Please don't sell it, and don't sell devices with it preinstalled. The full per-core licenses ride along inside the install.
Check your download against SHA256SUMS if you like. Built clean, with the core and license checks passing.
Leaf 0.1.0 - First Public Release
Leaf 0.1.0 - First Public Release
Leaf is custom firmware for the Miniloong Pocket 1. It runs on top of the stock OS instead of replacing it, so the launcher you actually live in is ours, but the device stays recoverable if anything ever goes sideways.
This is the first build we're putting out in public. We've been daily-driving it for a while and it's solid, but we're still shaking out the install process on other people's hardware, so go in expecting the odd rough edge. If you hit one, please tell us.
What you get
The home screen is a simple set of tabs, Recents, Favorites, Games, Apps and Settings, with cover art and a search that reaches everything. Press SELECT from the home screen and the game switcher pops up, a quick carousel of what you've been playing so you can jump straight back in.
You can make it yours. There are fourteen color schemes, a full run of dark ones and a matching set of lights, ten fonts to choose from, a soft-green LED, and a boot animation to go with it. The screen can run at 60, 90 or 120 Hz.
For playing, there are twenty-five emulator cores covering the stock systems, plus standalone PPSSPP for PSP and DraStic for DS. Saves and save-states are there with thumbnails, you can pause into a menu to save, load, reset or quit without leaving the game, and there are per-system performance profiles for the systems that need more grunt. Sign in to RetroAchievements and they just work, and you can pull box art automatically from ScreenScraper.
A few apps come with it: Central Scrutinizer, which lets you manage your ROMs, saves and artwork from a browser on your computer; Fugazi for tuning CRT shaders live; Joe's Calibrage for calibrating the analog stick when it isn't reaching full throw; a file explorer; and an SSH server. There's also Disco Boy, a little music player, which you can grab separately from the app store.
Wi-Fi and Bluetooth audio both work, wired or wireless headphones, it handles a second SD card, and it updates itself over the air from here on out. If the launcher ever gets stuck crash-looping it quietly drops you back to stock on its own, and the recovery download puts the device fully back to stock whenever you want it.
Installing it
One thing to sort out first: your device has to have taken at least one stock update before you install Leaf. The firmware it ships with from the factory is missing a piece of the stock system that the installer needs, and updating fills it in. We've tested on 1.3.0.32 and recommend updating to that. Just run the device's built-in system update the normal way before you start.
Then:
- Download
leaf-mlp1-sd-v0.1.0.zip. - Extract everything inside it to the root of a FAT32 SD card. Not exFAT, the stock updater won't look at an exFAT card.
- Put the card in, power on, and let the stock "upgrading" screen run. It installs Leaf and reboots into it.
- If that screen never shows up, power the device off and on a few times. Stock decides where to mount the card fresh on every boot, and the installer only catches when it lands in the right spot. That's a stock quirk, not us.
This is a clean install. It won't carry data over from an earlier dev build, so start from a fresh card.
If you want stock back
leaf-mlp1-recovery-v0.1.0.zip puts the device back to stock. Same FAT32 card, same power-cycle to trigger it.
Docs
The full guide, with screenshots and troubleshooting, lives at https://utility-muffin-research-kitchen.github.io/leaf-docs/.
One ask
Some of the cores we bundle are released under non-commercial terms, which means Leaf has to stay free. Please don't sell it, and don't sell devices with it preinstalled. The full per-core licenses ride along inside the install.
Check your download against SHA256SUMS if you like. Built clean, with the core and license checks passing.
v0.0.11
Don't install this :) — DEV purposes only!
Leaf v0.0.11 — in-game menu readability + game-switcher polish.
In-game menu
- Readability underlays behind the title, the list, and the hint bar, drawn in the active theme's own background color so menu text keeps full contrast over the paused game frame — fixes washed-out text on the light color schemes.
- Direction hints render correctly — the Move (↑↓) and Adjust (←→) glyphs no longer show as tofu.
- Cleaner game titles — ROM-filename tags like
(U),[!],(En,Fr,Es)are stripped from the displayed title.
Game switcher (SELECT)
- Bigger art — tiles fill the available height and the carousel is vertically centered (no more dead band under the tiles).
- 4:3 placeholder cards for games without art, so they match the size of real screenshots instead of towering over them.
- SELECT closes the switcher too (alongside B).
- Same title cleanup as the in-game menu.
Under the hood
- Catastrophe: footer glyphs render in a glyph-complete font; new per-draw footer background-opacity control.
Built from a warning-free make mlp1; cores + licenses gate passed.
v0.0.10
Don't install this :) — DEV purposes only!
Everything since v0.0.9.
Display
- Refresh rate: 60 / 90 / 120 Hz (Settings → Display & Sound → Refresh Rate). The MLP1 panel runs well past its advertised 60 Hz at runtime — no kernel or DTB swap. Games inherit it too (RetroArch rides the compositor). Default 60 Hz.
Launcher
- In-launcher System menu — the MENU button now opens "System" as a page inside the launcher (instant), instead of spawning a separate process. Plus fast-exit on hand-offs, so app/game launches feel snappier.
- Test Sound — Settings → Display & Sound plays a short clip on the current output (speaker / headset / Bluetooth) to confirm audio routing. The clip now ships in the build.
SD card layout — manual-upgrade safety
- Durable data is split by ownership: launcher control state lives in
.umrk/<platform>, user/app data in.userdata/, both at the SD root and separate from the release-managed.systempayload. A manual drag-and-drop upgrade can no longer overwrite your settings, saves, or library. - Fresh install only: there is no automatic migration from the older layout. A clean install puts everything in the right place; an in-place upgrade of an older card starts its launcher state fresh.
Fresh-install validated on device.
v0.0.9
Dev/preview release. Not for sale or commercial preinstall — bundles non-commercial-only cores (snes9x, genesis_plus_gx, fbneo, fbalpha2012, mame2003_plus, mame2010).
Fresh-install + recovery via the stock SD updater (extract the SD zip to a FAT32 card root, boot, let the update screen install it). 25 libretro cores + standalone PPSSPP (PSP) and DraStic (NDS) + RetroArch.
Bluetooth & audio
- One-session pairing fix — bonded headsets reconnect reliably instead of dropping to "Nearby".
- Audio follows the output: routes to Bluetooth on connect and back to the jack/speaker on disconnect, including connect/disconnect outside the Bluetooth page.
- Headphone-jack auto-routing with DAC un-mute on plug/unplug; speaker mutes while headphones are in.
- New Test Sound button in Display & Sound — plays a clip on whatever output is active; press again to stop.
- Bluetooth list polish: device-type icons, single audio sink, quiet status line, manual pairing.
Launcher & UI
- Resume position — backing out of a game or app returns you to where you were in the menus.
- Global Search across the whole library (System menu).
- 14 color schemes (7 dark + 7 light).
- Settings reorganized; About + System Update moved into the System (Menu) popup; "Box Art" → "Game Art"; font + license credits in About.
- Smooth About-page scroll, sliding tab transitions, box-model layout sweep, default font Nunito.
Apps
- File Explorer (renamed from Thing-File) with a new icon; new SSH Server icon.
- Fugazi (CRT shader tuner) and Central Scrutinizer included.
System
- Wi-Fi "off" now persists across reboots.
- ScreenScraper box-art scraping (sign in under Accounts).
- First-install hardening (TLS CA bundle, reboot/poweroff, auto-sleep default off).
v0.0.8
Don't install this :)
DEV purposes only!
Changes since v0.0.7:
Emulation
- All 25 stock-parity RetroArch cores now ship in the install ZIP (v0.0.7 accidentally shipped only the Genesis core; a release gate now makes that class of bug fail the build)
- Standalone PPSSPP ships as the first non-RetroArch emulator
- Content actions and standalone launches; discovery respects system metadata
- Core and emulator licenses ship in the ZIP under licenses/, with upstream attribution. Several cores are non-commercial-only: Leaf must never be sold or bundled with hardware for sale
Launcher
- Apps match the launcher look on first install (pill shape and hints visibility)
- Bluetooth icon and toggle in the status bar
- Smoother list scrolling: status polling moved off the render thread and hardened
- Faster cover-art browsing via a thumbnail cache with async pre-warm
- All Settings pages rebuilt on the box model; font family and size changes no longer fight each other
- Time Zone picker under Settings > Behavior
Power and boot
- Real suspend-to-RAM auto-sleep with single-press wake; the daemon fully owns the power key
- Roughly 2s faster boot
- Filesystems remount read-only cleanly before reboot/power-off
- Wi-Fi restore-state fix
Notes
- The install ZIP is much larger than before (~219 MB) because it now bundles all cores
- Installs older than v0.0.5 should do a fresh SD install; their installer cannot self-heal via OTA
v0.0.7
Don't install this :)
DEV purposes only!
Changes since v0.0.5/6:
- Wi-Fi off now persists across reboot (was re-enabled on every boot by stock network init).
v0.0.6
Don't install this :)
DEV purposes only!
OTA gold-standard validation target (identical to v0.0.5, version bumped to prove a baked-in fixed runner performs a clean OTA from a fresh install).
v0.0.5
Don't install this :)
DEV purposes only!
Changes since v0.0.4:
- Fix OTA install aborting on single-card devices (phantom second SD slot mountpoint). OTA now arms only genuinely mounted SD roots, secondary best-effort.
Carries all prior fixes: first-install set (auto-sleep, Wi-Fi PMF, reboot/power-off, exit-to-stock, charging CPU, Wi-Fi off), default Leaf look, bundled CA roots for OTA TLS, installed-version in About.
v0.0.4
Don't install this :)
DEV purposes only!
OTA cycle test build (identical to v0.0.3, version bumped to validate the update path).