* dlopening the main executable fails
* dlopening dylib fails due to codesign
* Installing PojavLauncher with AppSync causing
extended-virtual-addressing entitlement to be checked improperly
Current issue: it seems that Java 8 is broken on iOS 12
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 PojavLauncher to mix its audio with other applications.
Playback was chosen so that audio is not disabled with the ringer
switch - toggle to be added later.
Code untested - might break/not compile.
- Change setNeedsUpdateOfPrefersPointerLocked logic to hopefully fix
issues with mouse not recognizing on iPhones
- Change reloadVersionList logic to load Installed version list
instantly at startup
- Enable game's CALayer opaque and drawsAsynchronously to improve
rendering performance
- Handle natives_directory variable for legacy modded versions
- Set LD_LIBRARY_PATH to silent Caciocavallo NPE error in locating
Android-only code
- Tapping Play when no version selected will now bring up the version
picker instead of doing nothing
- First changes for tvOS (very WIP) this will be a challenge to use
remote storage as ATV doesn't allow persistent storage (at least
without jailbreak). Low priority for now.
- Change regLog, debugLog to NSLog, NSDebugLog
- Rewrite most of JavaLauncher.m to ObjC
- Update README.md
* Moved account selection to the secondary NavigationController
* Added logo to fill in the primary one
* Moved buttons to the sidebar:
- Custom controls
- Install jar
- Send logs
* Fixed object memory leakage in LauncherNavigationController
* Set fullscreen=false on startup, workaround < 1.13 resizing issue
* Reduced mouse_pointer size
TODOs:
* Add icons for new items, will prefer copying from the Android
version.
* Remove LoginViewController: integrate add account to the account
selector, move Techno text+check to sidebar, etc..
* Instead of separate Microsoft, Demo login; display demo warning
before MS login.
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 is now accessible for everyone (sandboxed, TrollStored, jailbroken)
- Enabled by default if Jetsam can't be controlled
- Default ratio: 25% (sandboxed), 40% (TrollStored or jailbroken)
Fixes:
- dlopen gets hooked no matter if installed in /Applications or container
- Jailbroken IPA installation always looked for /usr/lib/jvm instead of the internal one
- Metal returned 0 physical devices, caused all renderers to be broken
- Zink renderer tried to load VirGL stuff
What's new?
- Settings are now categorized
- Re-designed Game Directory manager
- Moved help detail to subtitles, toggleable
- Some settings are now made accessible ingame
- Added Auto Renderer
Removed settings:
- Restart before launching: not needed anymore, also it would break JIT/debugger.
The old IPA creation process: wrap every dylib files into framework;
this appears to be unnecessary, dylib files can be put outside without
breaking codesigning and validation (only tested with AltStore: it
scans and signs every Mach-O files).
Therefore, IPA builds now allow putting Java Runtimes to
`PojavLauncher.app/jvm`.
Makefile is yet tweaked to adapt this change, will be done later.
Other tweaks
- Disabled autocorrection for text fields in preferences
- The preferences now searches for installed JRE versions instead of
hardcoding them
- Bug fix: "accounts" folder was not created initially, leading to
"username.json does not exist" error
The root cause is that the JVM has taken away the main thread, caused the UIKit’s queue to stop. This env var exists in my dev environment but has never been added here.
Manually-specified Java version still applies to:
- Minecraft versions below 1.17 (default is Java 8)
- Minecraft version 1.17.x (allow choosing between Java 16 and 17)
Pretty much disables everything except for [Pre-Init] and [Init], as well as Renderer Init Success. Toggle debug logging off to see.
regLog(message) -> logs all the time
debugLog(message) -> logs only when debug logging is enabled
This is caused by a missing function in our class loader.
Error:
System class loader does not define the
appendToClassPathForInstrumentation method
Unable to add
/Applications/PojavLauncher.app/libs/arc_dns_injector.jar to system
class path - the system class loader does not define the
appendToClassPathForInstrumentation method or the method failed
FATAL ERROR in native method: processing of -javaagent failed,
appending to system class path failed