All notable changes to UKMM will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
This release is fairly significant and includes multiple breaking changes to the UKMM mod format. This means there is a high likehood that you will need to reinstall and/or repackage existing UKMM mods to avoid errors. Ideally, this should be the last breaking release before stabilizaiton.
Added
- Added support for new Cemu config paths
- Experimental support for arm64 macOS
- Added support for complex emulator command lines
Changed
- Switched to symlink deployment by default for Cemu
- Minor performance improvements
Fixed
- Fixed settings refresh after BCML migration
- Fixed broken symlink on switching profiles
- Fixed issues with language differences in text merging
- Fixed issues with StatusEffectList and LevelSensor mergers. This is a breaking change which requires reinstalling mods which modify StatusEffectList or LevelSensor.
- Reverted msyt version to fix BNP compatibility. This is a reversion of an unintentional breaking change in the last release. It will require reinstalling mods which modify game texts.
Removed
- Removed merging for actor recipes (
.brecipe
). Diffs will be stored whole and merging will simply overwrite with the highest priority. This is a breaking change which requires reinstalling all mods which modify recipe files.
Added
- Added full GameBanana 1-click and "open mod with UKMM" support
- Added Refresh button to file picker
- Added specific error about mods made with old roead versions
Fixed
- Fixed crash when reopening tabs closed by their buttons
- Fixed rare race condition with mod packaging
Removed
- Removed everything related to the mod editor tool, which will probably never be finished
Added
- Added
cargo dist
integration to provide simpler install and update methods
Fixed
- Restored missing Package button to Window menu
- Fixed option descriptions not showing on multiple choice
- Fixed misidentification of Switch BNPs with a
rules.txt
as Wii U mods
Added
- Added experimental "binary override," as-is storage of technically invalid resources for mods which work despite minor "errors"
Changed
- Completely reworked logger using
egui_logger
, hopefully more performant and maintainable - Switched some
Arc
s toRc
s where possible
Changed
- Stopped caching open directory contents so the file picker is accurate after the app restarts
Fixed
- Fixed serious issues with reinflating BNPs with options
- Fixed parsing numeric strings in BCML 2.x
deepmerge.yml
files
Added
- Added update mod button for developers
- Added GUI error message for startup panics
Changed
- Switched back from a custom fork of egui to the latest official version. This brings some minor unwanted UI changes, but nothing, I think, that affects anything functionally.
Fixed
- Fixed possible errors with missing game languages
Added
- Added open folder buttons to tool menu
- Added button to open emulator per-deployment config
Changed
- Use dictionary for ZSTD compression
Fixed
- Fixed missing
AocMainField.pack
in some map mods - Minor patches to gamedata handling
Added
- Added button to extract mods back into full files (graphic pack/RomFS)
- Added mod API versioning to better handle format changes across versions
Changed
- Breaking change: Updated to the newest version of roead, which supports BYML versions 5-7. This means all mods that edit BYML files may need to be reinstalled, which is perhaps a majority of mods. (The good news is this will make TOTK support easier to add in the future.)
- Updated to work on the stable Rust compiler, nightly no longer required.
Fixed
- Fixed "no base or DLC content folder" on some Switch mods
- Fixed panic parsing map logs with deletions in BNPs
- Fixed weird gamedata flag issue on some BNPs
- Updated RSTB library to fix mystery panics
Added
- Added "Send to Profile" option for mods
Changed
- Breaking change: Deeper model data merging. This is a breaking change
which will require reinstalling all mods that edit model lists (
.bmodellist
). - Specially flag nested lookup error
- Even more workarounds for malformed recipe/drop table files
Fixed
- Fix BFARC and BLARC merging new files
- Removed almost all possible panics in content merging
Changed
- Workaround for mods with incorrect drop or recipe
ColumnNum
values - Workaround for mods with incorrect drop/recipe numbered names (e.g.
ItemNum001
) - Queue errors for end of batch install
- More error details, especially to identify mods in batch operations
- Clearer "no base version" error
Fixed
- Hacky fix for low Switch RSTB values
- Temporarily disabled complex RSTB estimates to fix crashes
- Fixed issue with handling empty
AocMainField.pack
Added
- Added CLI package command (@ArchLeaders)
- Added support for updating mods with newer versions
- Added indicator for current platform on top menu
- Added Shift-Click mod range selection
Changed
- Reject keyboard input under modals
- Breaking change: Reworked CookData merger (@GingerAvalanche).
This will require reinstalling any mods that modify
CookData.sbyml
. - Improved some warnings
- Ignore
AocMainField.pack
when converting BNPs - Tolerate bad BNP version fields
Fixed
- Fixed panics when iterating corrupted SARCs
- Fixed default scale on Steam Deck
- Fixed GUI flag handling
- Fixed older macOS (<12) support
- Fixed packaging the contents of handled SARCs separately
- Fixed loading nested files with WUA dump
Changed
- Automatically enable new mods
- Catch panic errors on manual threads
Fixed
- Fixed running GUI with args
- Fixed default dock/tab settings
Removed
- Removed "Unpack mods" setting
Added
- Added drag-and-drop installation
- Now saves tab/dock layout
Changed
- Breaking Change: Make BFARC files mergeable. All mods which edit UI game fonts will need to be reinstalled.
- Ignore invalid gamedata flags
- Switch to folder selector for Cemu
Fixed
- Fixed updater
- Fixed parsing
meta.yml
for autofill - Fixed CLI on Windows (closes #62)
Added
- Added meta autofill when packaging source contains meta file
- Added setting to control system 7z
- Added macOS release
Changed
- Skip copying mod on install if already stored from another profile
- More error details with
anyhow_ext
Fixed
- Fixed profile corruption when uninstalling a mod used by multiple profiles
- Fixed thumbnail compression issue with unpack mods setting
- Fixed unpacked ROM optional DLC folder check
- Fixed font loading on macOS and certain Linux distros
- Experimental fix for BNPs with
UNDERRIDE_CONST
in drop logs
Added
- Added mod preview image packaging. You can include a preview image in a mod by
placing it in the root folder and naming it
thumb.jpg
or similar (all options listed in docs). - Added more error details
Changed
- [Breaking change] Made BLARCs mergeable. All mods which contain
Bootup.pack
will need to be repackaged/reinstalled. - Ignore zero byte when processing mods
- Further improved mod filename sanitation
- Switched to safe error for potential issues with BNP text logs
- Updated roead for MacOS support progress
- Various UI tweaks (courtesy of ArchLeaders)
Fixed
- Fixed handling
required
field for BNP options - Fixed BCML settings path on Windows
- Fixed parsing empty dump folder settings in BCML migration
- Minor fixes to logging
Added
- Added "Reset Pending" option to menu
- Added experimental BCML migration tool
- Added log file and panic details
Changed
- Moved
rules.txt
setting to deployment config - Improved message pack processing to report the paths of problem files and filter for only MSBTs (should fix Zelda's Ballad compatibility)
Fixed
- Exclude bootup language packs from BNP pack converter to solve cross-region issues
- Fixed panic on zero-length mod files
- Fixed cross-region bootup language pack deployment
Changed
- Default to portable storage folder in portable mode
- Clear resource cache on settings change
- Update deps to improve binary size
Fixed
- Fixed missing non-US languages in nested SARC map
Added
- Added experimental updater
- Added support for BCML 2.x BNPs
- Added basic cross-region language support
Changed
- Strip and compress release builds
Added
- Added GitHub workflow for potential Steam Deck support
Changed
- Improve editor UI file tree
- Implement
NamedEnumerate
for slight perf boost - Added scrolling to options selection dialog
Fixed
- Fixed crash from bad damage param RSTB
- Fixed missing parent folder with BNP logs
- Fixed
required
field parsing for BNP mod options - Matching fix for certain AS nodes
- Fixed max width for busy dialog
- Fixed edit UI for
ElementParams
- Fixed font loading on Linux
Added
- More mod categories
- Install multiple mods at once
Fixed
- Fixed parent folder creation for BNP SARCs
- Fixed portable mode flag
- Statically link OpenSSL for Steam Deck support
- Fixed SARC inflation for BNP options
- Fixed repeated None radio for mod options
Changed
- Show BNPs in file browser
- Support reading UKMM ZIPs with compressed metadata
- Updated roead for more flexible param types
- More error details for some content
Added
- Added welcome/changelog popup on new version
Fixed
- Fixed BNP SARC inflation for edge cases
- Fixed issue with optional BNP option fields
- Fixed platform detection for "graphic pack" mods
- Fixed AI program serialization
- Fixed illegitimate RSTB entries causing crashes in-game (probably fixing #23)
Changed
- Significant pointless changes to AS merger
- Fixed mod meta issues by switching to YAML
- Modified progress message to improve performance
Added
- More docs
- Cross-platform mods (experimental)
- Initial theme support
Added
- Added required setting for option groups
- Added support for converting BNP options
Fixed
- Fixed BNP conversion missing dump reference
- Fixed mod option descriptions
- Updated roead to fix SARC debugging
- Fixed BNP SARC inflation (partially fixes #23)
Changed
- Added alignment to SARC info
Changed
- Fixed mod option default display
- Fixed problem with delete collection length
- Fixed BNP temp file and improved temp file cleanup
- Fixed some tooltip formatting
Added
- Readme
- Support for converting and installing BNPs (no option support yet)
Changed
- Switched mod versions to semantic version strings
- Fixed various mod option UI limitations