MustardOS 2606.0 Andromeda
In Progress
Pronunciation
/ænˈdrɒmɪdə/
Not available yet!
This release is still in development, check back soon for download links!
Additional Information
Themes are now stored as open folders instead of compressed archives (previously extracted to the
activefolder). This enables faster theme switching, alternate theme changes, and restores random theme selection on device start. Existing.muxthmtheme files inMUOS/thememust be extracted manually.
Support MustardOS
Want to join us on this crazy and rewarding journey?
This can be done a few ways:
- Take part in the Community Forum
- Be helpful around the Discord Server
- Contribute code directly to our GitHub Repositories
- Spread the good word about MustardOS and all the amazing features
You can join the testing crew directly by:
- Supporting XongleBongle via a Ko-fi Subscription
- Boosting the Discord Server
- Contributing major code pull requests on our GitHub Repositories
- Showing exceptional values and building community rapport
Support Development Crew
We are a small team, and with your generous support we can continue growing and spreading that sweet MustardOS across other devices. If you can, support the development crew below:
AntiKk – https://buymeacoffee.com/antikk
Corey – https://ko-fi.com/cmclark00
Bitter Bizarro – https://ko-fi.com/bitterbizarro
Contributors
- antikk
- bitter_bizarro
- corey
- imcokeman
- key777
- mugwomp93
- xonglebongle
Changes
- Added 1920x1080 resolution theme support
- Added
chafato common bin - Added
navigate_to_dirfor centralised navigation handling - Added
resolve_info_pathfor unified info file resolution for functions - Added activity play time data content deletion function
- Added activity tracker migration function
- Added activity tracker resume function
- Added additional network sanitisation for SSID and password strings
- Added additional shaders
- Added alpha, layer, and position animation theme option for better control
- Added alternative colour files to default theme
- Added amplifier initialisation for Vita Pro device
- Added async startup script loader
- Added atomic writes for persistent config to prevent corruption on power loss
- Added attribute cache to GLES state
- Added audio mixer reset on all muX modules as a safeguard
- Added audio sink wait and volume save/restore functions to global
- Added audio sink wait for volume reset on startup
- Added automatic moving of glyph and label padding for different size images
- Added automatic UI element counting from lists
- Added Azahar reference
- Added background precaching for content directories
- Added background support for BT connection and scan polling
- Added background support for network connection and scan polling
- Added basic theme options module
- Added battery curve calculation tool
- Added battery function to global functions
- Added battery text information to visual option
- Added battery watchdog to startup process
- Added board design structure for specialised functions
- Added brightness and volume information
- Added BT address info for devices
- Added BT pair file for frontend purposes
- Added built-in union storage file system support
- Added cache buckets for skip list compilation
- Added cached workers for union entry building and resolving
- Added caffeine function for application use
- Added canvas buffer and persistent canvas object for gradient rendering
- Added collection hash checking
- Added colour feature to screensaver
- Added combo appending for modules
- Added common download refresh poll
- Added common glyph function runners
- Added confirmation dialogue system
- Added content explorer forward history
- Added content loading mount fallback to help with union migration
- Added current language to splash show
- Added date and time validation for all values
- Added debug logging toggle to advanced options
- Added debug reference to stage overlay system
- Added default battery curves to devices
- Added default font defines
- Added default Mustard Terminal configuration
- Added deprecation warning when using a compiled
.binfont - Added device battery curve parameters
- Added device battery size and voltage lines
- Added device defined battery curve lookup against current voltage
- Added device specific SDL mapping
- Added dialogue option element
- Added DRM capture priming for Vita Pro screenshot grab
- Added external emulator launch for Mustard Terminal
- Added fade out to credits and application launch
- Added fallback domain check and internalised dhcpcd configuration
- Added font hinting check from theme on terminal execution
- Added font picker module
- Added forward history glyphs to default theme
- Added frontend screensaver delay to stop esoteric frontend race condition
- Added frontend specific logging to file within testing modes
- Added Frotz and external script support via Mustard Terminal
- Added G350 brightness adjustment
- Added gate for debug messages
- Added Glyph Size setting to Theme Options with Default, Auto, Native and fixed sizes
- Added header title visibility option
- Added headphone adjustment script to device init
- Added helper function for grid row count calculation
- Added hex colour parsing in overlay system
- Added hotkey negation option
- Added idle state write to display idle
- Added improved directory item count handling
- Added input remap system for all controllers
- Added JPEG support for box art images
- Added KMS/EGL render support for stage overlay
- Added launch scummvm content by folder
- Added lid switch support to hotkey
- Added live navigation bar updates for active layout change
- Added message arborist daemon
- Added missing directory ownership for OpenSSH daemon
- Added missing global function source to SFTPGo clear script
- Added missing integer line read for stage overlay system
- Added modified JetBrains mono font for CJK support
- Added Mustard Terminal application
- Added Mustard Terminal detection function
- Added native resolution and shader smoothing to overlay rendering
- Added optional wait timer for quit script
- Added overlay notification builder
- Added overlay state cache to overlay system
- Added overlay texture building functions
- Added parallel and threaded loaders for main muX module loader
- Added parent core assignments for sub folder inheritance
- Added pass code reset to factory init
- Added passcode configuration module
- Added path safety validation to content browsing modules
- Added play sound with wait for reboot and shutdown functions
- Added PlutoSVG and PlutoVG as bundled third party libraries for SVG rendering
- Added polled event volume key support for special devices
- Added power and volume event listeners to board index
- Added preinstalled custom TTF fonts and language based Noto Sans fonts
- Added preliminary BT module support
- Added preliminary shader support for GLES based content
- Added proper muhotkey clean up handling for signal based exits
- Added proper SSID string escapes
- Added quit fade and fixed frontend launching issue
- Added raw framebuffer image splash system
- Added REJECT_UNSAFE_ARCHIVE to extraction scripts
- Added render path checking and reset functions to overlay stage
- Added Retroarch for Vita Pro
- Added retry and fallback modes for controller input
- Added reusable grid descriptor buffers and cached grid cell shadow style
- Added RGB options for switching
- Added RGBA texture upload in overlay system
- Added root level system configurations
- Added run directory init on first boot
- Added safe allocation wrappers and fixed unchecked malloc/strdup sites
- Added scheme support to activity tracker
- Added screensavers with preview mode in power module
- Added screenshot grab mode for both
fbdevanddrmbased devices - Added SDL controller mapping overrides
- Added SDL game controller remap script for custom controller files
- Added sending ClientID with DHCP Request
- Added separate theme options for independent element font sizes
- Added shader fragment launch support
- Added shared function for resolving grid glyph images to reduce duplicated code
- Added Sixel graphics for existing theme glyphs and logo
- Added Songo#5 to preinstalled applications
- Added special device input volume mapping switch
- Added special update archive extraction check
- Added specific debug mode evaluator for logging purposes
- Added specific device support for terminal configuration
- Added specific device support for terminal configuration
- Added stage working function for easier hot reloading in overlay system
- Added storage authenticity check script on device startup
- Added storage glyph for content options modules
- Added stored volume normalisation on boot to (hopefully) avoid loud surprises on boot
- Added subtle text shadows for credit text
- Added support for weird analogue reversals for some devices
- Added SVG image decoder to the display system initialisation
- Added swap axis and hall switch to device variables
- Added swap memory row hiding when no swap is configured
- Added symbol building for better debugging
- Added system splash function
- Added text cache for grid mode panels
- Added text notification support to stage overlay system
- Added textual notification support in overlay system
- Added timezone city and region alias lookup functions
- Added TrimUI Smart Pro specific SDL mapping
- Added TTF font support for themes
- Added Vita Pro to supported board list
- Added volume ramping function
- Added WirePlumber compatibility configurations
- Added X Y render offset for device specific screens
- Adjust Mustard Terminal defaults and launch script
- Adjusted battery voltage percentage curves
- Adjusted CPU governor setting for newer kernels
- Adjusted default theme RGB settings
- Adjusted idle timer updates to PRESS and RELEASE
- Adjusted init and shutdown scripts to be uniform
- Adjusted PipeWire to mute and restore on startup
- Adjusted spacing formatting after input struct
- Avoid manual null termination by using snprintf
- Changed content scanning method across storage devices
- Disabled content load animation for RetroArch
- Disabled default HDMI function
- Disabled terminal cursor blinking on boot
- Disabled vtcon framebuffer and cursor blink
- Eliminated heap allocations in language translation paths
- Enabled external content stage overlay support
- Ensure font sizes do not reset on language change
- Ensure hotkey process restarts during sudden collapse
- Ensure MTP processor obtains proper variables
- Ensure Vita Pro PCM is not adjusting during audio mixer reset
- Ensure we always use a correct game controller file
- Ensure we exit early for factory reset checks
- Ensure we get the saved audio volume regardless of state
- Ensure we only modify DPAD swap on stickless devices
- Fixed
eth0not attempting DHCP - Fixed
read_all_char_fromopen failure memory issue - Fixed abnormal kernel panics with TrimUI network modules
- Fixed activity tracker box art alignment default theme
- Fixed activity tracker info and overview glyph path
- Fixed adding to collections from Content Explorer
- Fixed analogue input codes
- Fixed application module grid fallback for language files
- Fixed audio balance with overdrive calculation
- Fixed battery overlay removal on low power change
- Fixed boot logo theme updating for RG28XX devices
- Fixed box art loading when visual setting is set to disabled
- Fixed collection and history dot file and directory visibility
- Fixed content folder item count
- Fixed content navigation inconsistencies between grid and list views
- Fixed content option navigation sound trigger on back
- Fixed content options navigation lockup when swapping between option and info
- Fixed corrupted tiled images when SVG glyphs were upscaled
- Fixed CPU governor saving and restore on sleep suspend
- Fixed default colours for PNG boot logos
- Fixed device field macro slow memory leak
- Fixed device light selection and added kiosk setting
- Fixed disc images (m3u, gdi, and cue) hidden in Content Explorer
- Fixed divide by zero brightness integer returns
- Fixed double idle inhibit file read
- Fixed DPAD swap not applying to button events
- Fixed DPAD switch and hall key variable references
- Fixed duplicated governor read on idle
- Fixed fade in and fade out functions
- Fixed false detection of invalid theme resolution
- Fixed first install screensaver trigger
- Fixed first navigation sound on new modules
- Fixed first time installation routine
- Fixed focus returning to previous content directory
- Fixed folder path restore on content quit
- Fixed font defaults looking at existing theme scheme for size
- Fixed grid row calculation when column count is zero
- Fixed hidden content setting for union
- Fixed history item removal and leftover language values
- Fixed hotkey lid sleep trigger
- Fixed image source loading safety
- Fixed incorrect root path loading for content explorer module
- Fixed incorrect TrimUI brick input mapping
- Fixed input tester string being too long
- Fixed issue displaying content directory options
- Fixed language font selection on languages with specific internal fonts
- Fixed left stick inversion in SDL map
- Fixed logged messages for various function related errors
- Fixed logging length variable reference
- Fixed low battery check against new capacity values
- Fixed LVGL object lifecycle safety for overlay images
- Fixed MAC address lookup to read sysfs directly
- Fixed MAC changer to actually set the new MAC when processed
- Fixed minor ALSA audio buffering issue
- Fixed missing fclose on error path in muxnetscan
- Fixed modification trust dialogue for sub menus
- Fixed native and multi-core building
- Fixed navigation in content options module
- Fixed network profile hidden SSID variable saving
- Fixed odd row spacing in content options and content info views
- Fixed original set on option change
- Fixed OSK numpad navigation and text field entry being set into password mode
- Fixed overdrive toggle to normalise volume on disable
- Fixed overflow reading of credits text file from picker packages
- Fixed passcode font context crash
- Fixed passcode length comparison
- Fixed passcode previous selection
- Fixed PipeWire start for HDMI audio output
- Fixed playtime data loading for content options module
- Fixed potential null or empty image paths when creating grid items
- Fixed PPSSPP application missing XDG path set
- Fixed previous selection for BT item
- Fixed rare screensaver dismiss deadlock
- Fixed rare shutdown hangup due to dual module takedowns
- Fixed readdir/stat race in common directory traversal functions
- Fixed recent wake checking for lid based devices
- Fixed restore RetroArch Overrides task toolkit script
- Fixed RetroArch input mapping for joypad drivers
- Fixed RGB left and right analogue static zone colours
- Fixed rotation for Vita Pro screenshots
- Fixed rumble on content close
- Fixed screen resolution fallback to 640x480
- Fixed screensaver exit returning on all enabled modes
- Fixed selected font for themes and proper font fallback to internal Noto Sans
- Fixed shell injection risk in network info
- Fixed silent failure in archive download callback
- Fixed stage overlay code cleanup during frontend compilation
- Fixed strdup leaks and unbound free on repeated configuration loading
- Fixed subtle flashing of RetroArch menu upon suspend resume
- Fixed swap creation by checking if swap exists first
- Fixed system and core logged message output
- Fixed terminal direct script launch
- Fixed terminal launching with profile and faded block sequences
- Fixed text alignment when wrapping caused by trailing spaces at end of line
- Fixed theme download progress and extraction freezing on spam inputs
- Fixed theme filter menu
- Fixed theme font defaults
- Fixed threaded video saving on symlink
- Fixed touch screen affecting screen idle and suspend on Vita Pro
- Fixed TrimUI Brick brightness mapping
- Fixed TrimUI Brick RetroArch input
- Fixed TrimUI network module reloading
- Fixed unassigned content going back to previous assigned content path on content options
- Fixed unbounded integer case within animation restore
- Fixed unchecked fgets return value in BT device module
- Fixed union directory count and generation with empty folder setting
- Fixed union memory issues causing crashes on large lists
- Fixed unnecessary repeated directory scans
- Fixed user init script execution
- Fixed Vita Pro volume input mapping
- Fixed volume limit setting with overdrive enabled
- Fixed wallpaper embedding cache
- Fixed web services kill process by quoting PID
- Fixed writing to correct overlay information file
- Hardened archive extraction path traversal
- Increased hotkey combo limit to fix RG40 and RGCUBE volume buttons
- Lowered device max voltage battery calibration
- Merged image refresh routines to common function
- Merged network startup scripts to be an early async sysinit script
- Modified
pgrepruns to get full process name - Modified ALSA state to enable hardware transmit routing
- Modified battery capacity to user controlled device voltage lines
- Modified build flags to enable stack protection and ASLR support
- Modified capitalisation function to use awk process
- Modified charging module to cache hall key and blank status
- Modified charging module to wake screen with any button
- Modified chrony to restart in background after network init
- Modified content options with split detail and info views
- Modified default global config variables
- Modified device and mount startup scripts to init system
- Modified display functionality to obtain sysfs backlight first with fallback
- Modified DVD screensaver to hopefully reduce frontend fighting
- Modified GLES texture preparation in overlay system
- Modified gradient blur routine to use cached row pointers
- Modified gradient generation to use integer interpolation
- Modified halt script to pull down init scripts and removed mount removal processes
- Modified hotkeys for G350 quirks
- Modified idle handler to reduce LVGL redraw calls
- Modified image and general catalogue loading with safe fallback logic
- Modified increment values for brightness and volume
- Modified init script to load modules earlier
- Modified input controller retry intervals
- Modified input handler to accept all device input
- Modified input init to detect device type
- Modified input to refer back to primary instance for specific inputs
- Modified input to use board special functions
- Modified internal log copying to debug mode only
- Modified logging process to use new arborist module
- Modified low power to use global idle file
- Modified memory handling for directory and file lists
- Modified muX execution to run audio volume restore
- Modified network script to accept full subnet addresses
- Modified network script to only kill network processes if required
- Modified overlay battery indicator to use user calibrated capacity
- Modified passcode glyph references
- Modified passphrase script to use temporary file
- Modified path handling and merging logic
- Modified PipeWire script once again to resolve intermittent volume issues
- Modified quit process to use simplified while loop instead of sequence
- Modified read_all_char_from function to soft handle failures and allocation errors safely
- Modified saved volume functions within PipeWire script
- Modified screenshot script to utilise trap for file removal
- Modified skip patterns to support case insensitive and directory only matches
- Modified sound values for extra dB boost
- Modified startup script to reduce logging for disabled functions
- Modified startup script to start battery watchdog before charge module
- Modified suspend to load all modules and wait for network reconnect
- Modified system information to display multiple CPU models
- Modified terminal application to use specific size font and font hint
- Modified terminal launch scripts to use custom config path of name
- Modified threading approach for scanning mounts
- Modified timezone to separate region and city selection
- Modified TrimUI device input daemon
- Modified union scanning to reduce repeated work
- Modified Vita Pro default display path
- Modified volume logic with values going directly to PipeWire even with overdrive
- Moved ALSA mixer reset into the foreground so it actually behaves when asked
- Moved battery watchdog to top of startup
- Moved Console Mode detection to common
- Moved content directory reference to global define
- Moved content search to SELECT button
- Moved device and mount startup earlier in process
- Moved handheld mode and brightness restore to own init script
- Moved input remap variable
- Moved lid kill switch to top of halt process
- Moved PipeWire init to top of startup script
- Moved safe_atoi to common share with fallback and inline static
- Moved SSH directory ownership to web services
- Moved to 44100 default frequency for Mupen64Plus emulator
- Moved USB Connectivity to advanced options
- Optimised animation rendering to be a decoupled from LVGL and be a bit more performant
- Optimised BT device status change function
- Optimised capture state and remap closure
- Optimised common function and zip scripts
- Optimised content directory navigation
- Optimised content explorer to load content path chunks for faster resolution
- Optimised content options module with better info view
- Optimised content search JSON processing
- Optimised device module load to only run module dependency if required
- Optimised dithering lookup using flattened matrix calculations
- Optimised emulator extraction on device startup
- Optimised extraction script with verbose messages
- Optimised global function list
- Optimised glyph loading with shared image embed helper
- Optimised grid descriptor allocation by reusing memory
- Optimised input tester to handle G350 quirks
- Optimised language based font cache
- Optimised memory usage by removing
strdupallocations, as much as possible - Optimised mount startup by waiting for SD1 and SD2 mounting only
- Optimised network script with added interface and module waits
- Optimised SDL output for larger resolution devices
- Optimised shader fragments
- Optimised skip pattern loading with lazy first initialisation
- Optimised SSID search to hopefully weed out hidden network listing
- Optimised static route network connections
- Optimised storage mount by reusing block identification
- Optimised storage mount with future filesystem support
- Optimised system diagnostics toolkit script
- Optimised timezone code to reduce double element creation
- Optimised TTF font loading by caching the entire font file in memory
- Optimised variable get and set functions
- Reduced content options repeated code
- Reduced extension strips in favour of inline replacement
- Reduced function parsing for PipeWire init
- Reduced halt script kill wait timer
- Reduced udev timeout on settle
- Refactored content explorer to rebuild instead of reload
- Refactored PipeWire handling into smaller bits with improved node ID discovery
- Removed and replaced RGB Controller application
- Removed audio sink wait for simple PipeWire inspection
- Removed battery offset for low battery indicator
- Removed battery offset from advanced settings
- Removed content mount caching
- Removed device pointer for pass code loading
- Removed device raw input variables
- Removed device specific lid process
- Removed disk information from fast fetch as it sometimes reduced loading
- Removed double confirm sound trigger on history collect
- Removed duplicated glyph path resolution logic
- Removed grid glyphs from default theme
- Removed input swap in favour of active input mapping for controllers
- Removed last union references
- Removed no hang up network connection processing on suspend sleep and wake
- Removed offset variable and glyph from default theme
- Removed old TrimUI Smart Pro SDL controller ID
- Removed reliance on
pvfor archive extraction - Removed rotation cache in overlay system
- Removed sleep from chrony reload
- Removed sound preparation and play functions
- Removed static compiled images and most static compiled fonts
- Removed the unused search menu entry from options module
- Removed union storage name condition in search results
- Removed UnionFS userspace module and scripts
- Renamed Console Mode file path checking
- Renamed custom fonts to internal fonts
- Renamed default theme options glyphs
- Renamed HDMI force refresh function name
- Renamed specific translate define for elements
- Replaced all strncpy calls with snprintf to guarantee null termination
- Replaced per file config and device reads with directory batch scanning
- Replaced raw event input management to SDL controller
- Replaced removal toast in place of confirmation dialogue and then some
- Replaced sprintf calls with snprintf to enforce buffer size limits
- Replaced strcat calls in muxchrony with direct in-place strcpy
- Replaced strcpy calls on fixed-size buffers with snprintf for consistency
- Replaced strncpy with memcpy where partial-length copies needed exact byte counts
- Replaced strtok with strtok_r to eliminate state corruption
- Reversed hex input keyboard mapping
- Revert back to previous action processing method
- Reverted to modprobe for TUI network module
- Reworked HDMI output functions
- Separated hue shift buffering to independent sin+cos calculations in overlay system
- Separated RGB apply to focus only with X to apply settings
- Shortened muX dimension function name
- Simplified CPU information gathering with x86 support
- Split Mustard Terminal to own repository
- Split the startup script into smaller init chunks
- Stripped line feeds from config variables
- Updated
mugwomp93RetroArch overlays directory - Updated activity tracker language defines
- Updated battery curve and max voltage
- Updated battery curve profiles
- Updated boot logo to normalise accidental hex usage and stop integer overflow
- Updated charging and system information with capacity updates
- Updated combo runners to support
exec_argvandexec_cmd - Updated default font sizing
- Updated default RGB mode variables
- Updated default theme with new dialogue options
- Updated default theme with SVG glyphs
- Updated default values for STICKNAV and RGB settings to 0.
- Updated DHCP for more resilience
- Updated disclaimer module, media, and scripts
- Updated fast fetch logo
- Updated grid view to correctly size SVG glyphs to fit within cells
- Updated hotkey runners to use MENU input
- Updated how theme RGB settings are applied
- Updated init scripts with stop start functionality
- Updated internal text reader to cap memory use of large files
- Updated LED controller scripts
- Updated maze runner screensaver with hunting cell
- Updated network and system information modules
- Updated network module path for TrimUI devices
- Updated network module script call path
- Updated PPSSPP support for Vita Pro
- Updated recursive core assignment for future folder
- Updated Retroarch mappings
- Updated RGB controller with language strings
- Updated RGB controller with vita ADC Joypad support
- Updated RGB settings for default theme
- Updated screenshot tool path
- Updated scripts to use DPAD swap and hall key device values
- Updated ScummVM to 2026.2.0
- Updated SDL IDs for TrimUI Smart Pro
- Updated shader fragments
- Updated supporter credits media
- Updated Vita Pro config and control variables