- Rewrote LauncherPreferences -> PLPreferences
+ Now the file layout is the same as UI layout
+ (get/set)Preference are replaced with corresponding get/set types + Getting/setting is now done through keyPath instead of manually iterating over subdictionaries.
+ Implemented an isolation layer, allowing an instance to have its own settings. This is off by default
- Implemented launcher_profiles
+ Added Profile manager that can be accessed from the sidebar
+ Moved "Game directory (instances)" to this screen
+ Replaced version selector with profile selector. Version selector is moved into profile editor.
- Other changes
+ Cleanup code by using NSPredicate instead of huge for loops
+ Titles in settings are made multilined
+ Controller config: replaced bar button items with localized ones
Due to how large the changes are, this is committed directly to the mainline branch. Bugs are expected to be found (although I did enough tests for this locally)
News
- Added text input support for jar launcher.
- Updated MoltenVK to https://github.com/KhronosGroup/MoltenVK/commit/d880f4c
Internal changes
- Added more handling cases to avoid missing call to pojav_initOpenGL()
- Moved custom control’s global functions and properties to ControlLayout.
- Moved dylib framework outside its folder, as it’s not necessary to be bundled in framework.
- Reusing custom controls to produce flexible buttons in jar launcher, which might be extended in the future.
Fixes
- Multistage text input (Japanese, Chinese, etc) should now work again.
- Pointer lock should now function properly again.
- Updated README.md to reflect current stuff
This allows home indicator to be hidden again, usually useful for users
who play with external controlling device without having to use Guided
Access.
Changed icon of some settings.
Home indicator, status bar and screen edge lock is now based on side
menu visibility.
When Cr4shed crash handler is on, chaining to it will eventually crash
instead of returning so that JVM can continue perform dump. For now,
signal handlers are reset to default.
abort() is now caught and shown in the launcher.
Temporarily disabled safe area when windowed, until I can properly set
it up, in order to workaround buttons going out of bounds.
It's slowly getting too big, so I have to split, module-like organized.
- Category LogView (Log output, just added)
- Category Navigation (drawer menu)
- TrackedTextField