Allium is a custom launcher for the Miyoo Mini and Miyoo Mini Plus handheld devices, similar to OnionOS and MiniUI.
The goal of Allium is to replace MainUI (stock UI) with a faster and more user-friendly UI.
- Fast
- Clean, user-friendly UI
- RetroArch (with Netplay, achievements)
- Box art
- Support running on both Miyoo Mini and Miyoo Mini Plus without changes
Allium supports both the Miyoo Mini and Miyoo Mini Plus on the same SD card.
- Format the SD card to FAT32.
- Download the latest release and extract into your SD card. e.g.
E:/
. - Eject the disk (important!).
- Download the latest release and extract these folders into your SD card. e.g.
E:/
:- .allium
- .tmp_update
- Apps
- RetroArch
- Eject the disk (important!).
- Supports stock/Onion/DotUI SD card layout
- Works without configuration
- Box art (250px wide, PNG, JPG, GIF)
- Supports gameslist.xml with nested folders
- Recents list (sort by last played or playtime)
- Search games by name
- Activity tracker
- RetroArch for all supported cores
- Volume & Brightness (menu + l/r/u/d) control
- In-game menu (save & load with screenshots, reset, access RetroArch menu, guide, disk changer, quit)
- Automatic resume when powering off/on
- Suspend
- Settings page
- WiFi (IP Address, NTP, Telnet, FTP)
- Date, time, timezone
- Change LCD settings
- Customize theme colours, font
- Change system language
(roughly in order of priority)
- Favorites
- Theme manager
- Built-in themes
- Save current theme to file
- Background images
- UI improvements:
- Folder icon
- Volume indicator
- Brightness indicator
- Error toast (e.g. no core found for game)
- Anti-aliased circles
- WiFi stuff (wifi stuff is deprioritized because I mainly carry a MM without wifi):
- OTA update
- Metadata/box art scraper
- Cloud save sync
- Seamless netplay from ingame menu
Allium comes with a simulator that can be used for development. The simulator requires SDL2 to be installed.
make
,cargo
,zip
,clang
(libclang-dev
)- SDL2 (optional, if simulator is not used)
- cross:
cargo install cross --git https://github.com/cross-rs/cross
(optional, for cross-compilation)
Allium is split into several binaries:
alliumd
(daemon that handles launcher/game/menu launching, vol/brightness hotkeys, poweroff)allium-launcher
(main menu, including games, recents, settings)allium-menu
(ingame menu, including guide reader)activity-tracker
(gui for looking at game activity/playtime)screenshot
say
(draws text onto the screen, using Allium's theme settings and exits)show
(draws an image to screen, or darkens the screen and exits)show-hotkeys
(draws a list of hotkeys onto the screen and exits)myctl
(manipulates hardware like volume. This relies on the MM's proprietary libraries.)
Shared code is located in the common
crate.
There is no simulator for alliumd
(no UI, only logic).
# Run main menu (allium-launcher)
make simulator bin=allium-launcher
# Run ingame menu (allium-menu)
make simulator bin=allium-menu
Running make
will build Allium and RetroArch, then copy the built and static files into dist/
.
make all
cp -r dist/. <sdcard>
Allium is only possible thanks to the Miyoo Mini community, including but not limited to:
- eggs: RetroArch port, many code samples, answering questions on Discord
- Onion team (Aemiii91, Schmurtz, Totofaki, and more): Maintaining a sane-defaults RetroArch configuration, and the huge village
- kebabstorm: Miyoo Mini resources
- shauninman: Allium is heavily inspired by MiniUI's simplicity and clean design
- steward-fu: miraculous DraStic port
- Early adopters and testers of Allium