Commit Graph
156 Commits
Author SHA1 Message Date
khanhduytran0 d7302326b9 Feat+Refactor[MCDL]: rewrite to allow download libraries in parallel 2024-02-10 18:20:07 +07:00
khanhduytran0 8bf56d7443 Feat[jar launcher]: add log output
- rename 'Install .jar' to 'Execute .jar'
2023-11-15 05:56:17 +07:00
khanhduytran0 d6fd6e1f10 Cleanup[settings]: remove layout debug switches
these settings are available in FLEX
2023-09-28 13:43:20 +07:00
Duy Tran Khanh c8304e4892 Feat[renderer]: update MoltenVK to https://github.com/KhronosGroup/MoltenVK/commit/aed91cb5631e112faa521fe5739935424b9a4675 2023-09-16 11:59:31 +07:00
Eva Luna 62a7caa2c4 Feat[SurfaceViewController] Add two-finger long press to show and hide keyboard
Since the entire GUI is set to automatically hide when a controller is connected, this should allow users to be able to show the keyboard without needing to rebind keys. Can also lead to removal of the keyboard button itself since that is no longer needed. More gesture recognizers for other buttons (Debug, Fullscreen, etc) may come in the future.
2023-09-14 20:27:29 -04:00
khanhduytran0 dad3bb0239 Feat: display error if get-task-allow is absent
This notifies user that they are using an unsupported installation method (E-sign for example) that does not provide JIT permission.
2023-09-03 14:26:48 +07:00
khanhduytran0 16d986069f Fix[Forge installer]: crash if load during scroll
Misc fixes:
- JavaGUIViewController.m: change text to empty after pressing return
- FabricInstallViewController.m: change Beta to Unstable
2023-09-02 08:22:15 +07:00
khanhduytran0 3937b3a56b Feat: add auto Forge & NeoForge installer
Basically, this downloads the installer and run with a scheduled Enter key press to automatically install.

Fabric installer now reload things; add stable loader version filter
2023-09-01 14:41:35 +07:00
khanhduytran0 9328f4427a Feat: built-in Fabric & Quilt installer 2023-08-27 21:18:35 +07:00
khanhduytran0 d3b2bc193d Fix[ANGLE]: <1.13 panorama rendering 2023-08-17 05:49:05 +07:00
Duy Tran Khanh 36c3e312f3 Feat[controls]: v3: joystick & conditonal visibility
- Finish joystick view
+ Finish forward lock
+ When in menu, oystick can be used to move the virtual mouse
- Finish conditonal visibility
- Replace Make Default with Load
2023-08-11 20:58:14 +07:00
khanhduytran0 f2679bcec4 Feat[ANGLE]: update for basic shader support 2023-07-30 12:08:29 +01:00
Duy Tran Khanh fb6bea2591 Cleanup unused localizations 2023-07-26 21:36:03 +07:00
Duy Tran Khanh 585ae2fd7d Feat[ANGLE]: update to https://github.com/PojavLauncherTeam/angle/commit/a097731
Fix: gl4es should now be able to run 1.17+
2023-07-26 21:32:03 +07:00
Eva Luna af888219a5 [JIT] Remove AltKit disabling feature, as this is the only integration
For some reason on my iPad, isJITEnabled always returned true. This commit logistically should work, but it's technically untested.
2023-07-15 03:26:43 -04:00
Eva Luna 4eeb216ec5 [JIT] Remove support for JitStreamer and custom servers
The official JitStreamer servers were shut down a few months ago, and we haven't seen any reports of users self-hosting it due to the complicated setup required. Viable alternatives are AltJit, SideJit, and Jitterbug (just to name a few.)
2023-07-15 02:45:33 -04:00
khanhduytran0 6cf61e62c0 Feats: preference isolation & profile management
- 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)
2023-07-06 13:59:07 +07:00
Duy Tran KhanhandDuy Tran Khanh 8d6d66dd94 Feats: external runtime, update LWJGL to 3.3.1 (#579)
* Feat: external runtime manager

Currently missing: mmap hook

* we're past this ui todo

* feat: Bypass Library Validation (untested)

This bypass works because of JIT enabled, so the process can patch
anything loaded in the memory. Unsigned dylib works with JIT too.

* Fix `could not get real path` on iOS 14.x

iOS 15+ is untested, it may need patching in dyld instead of libSystem

* Make redirectFunction syscall-friendly

Replaced builtin_mprotect and vm_protect with a simple syscall to
_kernelrpc_mach_vm_protect_trap

* Add dyld hook back for iOS 15+, auto symlink xawt lib

* Cleanup Tools.java:showError+comments

Use System.exit(1) to drop to Game Exited screen instead of presenting
alert dialog on exception handled.

* Patch both to bypass codesigning at best

* Proper way of ignoring SIGBUS during patch

Turns out other background thread might also be calling inside dirty
page, so let's SIG_IGN them all until page permission is back to RX.

* Feat(install jar): auto detect java version

Rename Default version to Preferred version to match the behavior or
Install .jar detection: only override if selected version > required
version.
Add UnzipKit just to check jar file

Refactor(showDialog): remove viewController parameter, now use its own
ViewController to present.

* Feat: update LWJGL to 3.3.1
(tinygl4angle) add alias for GL_KHR_debug functions
Include nanovg for OneConfig mod
Move all LWJGLX classes to lwjgl3 repo
Set org.lwjgl.util.NoChecks=true to improve performance

* Fix: Forge 1.20 crashes (wrong artifact path)
Now use json-provided artifact path instead of generating one
Make lwjgl fat jar again

* Fix: handle null library artifact

* Fix: fatal glfw callback cleanup

* Build: fix copying LWJGL libraries

* Perf: set default settings

* Fix: incorrect SolClient useStackQueue check

* Feat: builtin runtime installer

Refactor parts of LauncherNavigationController.m
Workaround(LogView): disable animation on update to mitigate overload

* Fix: random game directory failures

This is caused by having current working directory unchanged after
re-making symlink.

* Fixes: TL-style artifact, update arc_dns_injector

Change pojavInit names

* Fix: 1.13+ isUseStackQueueCall check

* Build: update liblwjgl.dylib in attempt to fix ffi_closure_alloc

* Fix and improvements to the logger

- Dynamically get stdout/stderr fileno instead of fixed value
- Improve file migration logging
- Improve dyld bypass logging

* Fix(pickers): file permission issue

---------

Co-authored-by: Duy Tran Khanh <[email protected]>
2023-06-28 21:49:15 +07:00
Eilionoir Tunnicliff 4cff4dc949 Migrate environment variables to preferences view controller
Also, remove some more legacy code + make the migration code better
2023-05-08 13:49:52 -04:00
Eilionoir Tunnicliff dc22673b06 Remove iOS 12/13 supporting code + Alderis
PojavLauncher 3.0 will require heavy modifications in order to work on those two iOS versions now.
2023-05-08 11:15:52 -04:00
Eilionoir Tunnicliff 0426c4ef32 Add option to disable on-screen haptics 2023-05-08 10:31:11 -04:00
Duy Tran Khanh d9877bc423 New Crowdin updates (#561)
* New translations Localizable.strings (Arabic)

* New translations Localizable.strings (Arabic)

* New translations Localizable.strings (German)

* New translations Localizable.strings (Romanian)

* New translations Localizable.strings (Japanese)
2023-05-06 16:33:03 -04:00
Duy Tran Khanh 4edf445830 New Crowdin updates (#557)
* New translations Localizable.strings (Russian)

* New translations Localizable.strings (Russian)

* New translations Localizable.strings (Russian)

* New translations Localizable.strings (Russian)

* New translations Localizable.strings (Russian)

* New translations Localizable.strings (Russian)

* New translations Localizable.strings (Russian)
2023-05-05 23:21:43 -04:00
Eilionoir Tunnicliff de37d2c281 Skip code signing if PROVISIONING points to invalid path
Also, add note in Xcode project about environment variables
2023-05-02 13:44:30 -04:00
Eilionoir Tunnicliff 169e33ca37 Add more environment variables to the Xcode project
Codesigning, verbose mode. Also use a different action when compiling
2023-05-02 13:37:37 -04:00
Eilionoir Tunnicliff d969662dc2 Reorganize warnings again, should be more reliable 2023-05-02 11:28:16 -04:00
Duy Tran Khanh a1a3f4f329 New Crowdin updates (#553)
* New translations Localizable.strings (Romanian)

* New translations Localizable.strings (French)

* New translations Localizable.strings (Spanish)

* New translations Localizable.strings (Arabic)

* New translations Localizable.strings (Catalan)

* New translations Localizable.strings (Czech)

* New translations Localizable.strings (German)

* New translations Localizable.strings (Greek)

* New translations Localizable.strings (Finnish)

* New translations Localizable.strings (Hebrew)

* New translations Localizable.strings (Italian)

* New translations Localizable.strings (Japanese)

* New translations Localizable.strings (Korean)

* New translations Localizable.strings (Lithuanian)

* New translations Localizable.strings (Dutch)

* New translations Localizable.strings (Norwegian)

* New translations Localizable.strings (Polish)

* New translations Localizable.strings (Portuguese)

* New translations Localizable.strings (Russian)

* New translations Localizable.strings (Slovak)

* New translations Localizable.strings (Serbian (Cyrillic))

* New translations Localizable.strings (Swedish)

* New translations Localizable.strings (Turkish)

* New translations Localizable.strings (Ukrainian)

* New translations Localizable.strings (Chinese Simplified)

* New translations Localizable.strings (Chinese Traditional)

* New translations Localizable.strings (Vietnamese)

* New translations Localizable.strings (Portuguese, Brazilian)

* New translations Localizable.strings (Indonesian)

* New translations Localizable.strings (Persian)

* New translations Localizable.strings (Thai)

* New translations Localizable.strings (Kazakh)

* New translations Localizable.strings (Estonian)

* New translations Localizable.strings (Malay)

* New translations Localizable.strings (English, United Kingdom)

* New translations Localizable.strings (Filipino)

* New translations Localizable.strings (Tatar)

* New translations Localizable.strings (Bashkir)

* New translations Localizable.strings (LOLCAT)

* New translations Localizable.strings (Russian (pre-revolutionary))

* New translations Localizable.strings (Russian)

* New translations Localizable.strings (Czech)

* New translations Localizable.strings (Czech)

* New translations Localizable.strings (Indonesian)

* New translations Localizable.strings (Indonesian)

* New translations Localizable.strings (Russian)

* Disable l10n_main builds

* New translations Localizable.strings (Russian)

* New translations Localizable.strings (Russian)

* New translations Localizable.strings (Chinese Simplified)

* New translations Localizable.strings (German)

* New translations Localizable.strings (German)

* New translations Localizable.strings (Vietnamese)

* New translations Localizable.strings (Chinese Simplified)

* New translations Localizable.strings (Vietnamese)

* New translations Localizable.strings (Indonesian)

* New translations Localizable.strings (Ukrainian)

* New translations Localizable.strings (Ukrainian)
2023-05-02 10:36:31 -04:00
khanhduytran0 3510fdac5c Revert "Remove CAltKit"
This reverts commit 55db8ddf3f.
2023-04-29 14:33:54 +07:00
Eilionoir Tunnicliff 511089254f Merge remote-tracking branch 'refs/remotes/origin/main' 2023-04-26 11:29:56 -04:00
Eilionoir Tunnicliff e906a797d5 No more large titles, change various localizations 2023-04-26 11:24:47 -04:00
Eilionoir Tunnicliff d47246ada6 Crowdin broke before the merge 2023-04-26 11:13:18 -04:00
Duy Tran Khanh c425b8cf6e New Crowdin updates (#551)
* New translations Localizable.strings (Romanian)

* New translations Localizable.strings (French)

* New translations Localizable.strings (Spanish)

* New translations Localizable.strings (Arabic)

* New translations Localizable.strings (Catalan)

* New translations Localizable.strings (Czech)

* New translations Localizable.strings (German)

* New translations Localizable.strings (Greek)

* New translations Localizable.strings (Finnish)

* New translations Localizable.strings (Hebrew)

* New translations Localizable.strings (Italian)

* New translations Localizable.strings (Japanese)

* New translations Localizable.strings (Korean)

* New translations Localizable.strings (Lithuanian)

* New translations Localizable.strings (Dutch)

* New translations Localizable.strings (Norwegian)

* New translations Localizable.strings (Polish)

* New translations Localizable.strings (Portuguese)

* New translations Localizable.strings (Russian)

* New translations Localizable.strings (Slovak)

* New translations Localizable.strings (Serbian (Cyrillic))

* New translations Localizable.strings (Swedish)

* New translations Localizable.strings (Turkish)

* New translations Localizable.strings (Ukrainian)

* New translations Localizable.strings (Chinese Simplified)

* New translations Localizable.strings (Chinese Traditional)

* New translations Localizable.strings (Vietnamese)

* New translations Localizable.strings (Portuguese, Brazilian)

* New translations Localizable.strings (Indonesian)

* New translations Localizable.strings (Persian)

* New translations Localizable.strings (Thai)

* New translations Localizable.strings (Kazakh)

* New translations Localizable.strings (Estonian)

* New translations Localizable.strings (Malay)

* New translations Localizable.strings (English, United Kingdom)

* New translations Localizable.strings (Filipino)

* New translations Localizable.strings (Tatar)

* New translations Localizable.strings (Bashkir)

* New translations Localizable.strings (LOLCAT)

* New translations Localizable.strings (Russian (pre-revolutionary))

* New translations Localizable.strings (German)

* New translations Localizable.strings (Russian)

* New translations Localizable.strings (Chinese Simplified)
2023-04-26 10:56:35 -04:00
khanhduytran0 b714ca95b8 New translations Localizable.strings 2023-04-26 19:17:00 +07:00
Duy Tran Khanh 5e64d15d24 Move *.lproj to Natives/resources 2023-04-26 18:29:58 +07:00
Eilionoir Tunnicliff 55db8ddf3f Remove CAltKit 2023-04-26 00:44:11 -04:00
Eilionoir Tunnicliff a90d088f57 Reintroduce Xcode project
It's just a wrapper around the makefile. I use it to develop in Xcode (because not having an IDE is cringe and I would rather use the IDE I just spent 20 hours downloading instead of not.)
2023-04-25 14:22:19 -04:00
Eilionoir Tunnicliff b396fef7c2 Disable Zink on iOS 16 and later with release builds
Don't want users switching to Zink and asking why it's broken. Temporary measure until we can get our copy updated and working
2023-04-21 14:22:38 -04:00
Eilionoir Tunnicliff 34ff464dcc Update warnings and move around a few keys
For some reason the simpler method wasn't working properly (make a function to make it cleaner) so...
2023-04-20 16:38:27 -04:00
Eilionoir Tunnicliff 80a701a8b1 Use a much more robust method of getting device data
- Doesn't require a hardcoded list of IDs
- Allows me to move the legacy devices dict to main.m
  - Make it annoying so I remember to remove it with 2.3
  - Now log when on iOS 12/13 or 1GB device
- Allows seeing if being run on a Mac
  - Although currently installing on Mac is completely broken. Thanks AltKit.
-
2023-04-19 13:17:35 -04:00
khanhduytran0 8c70d7603d Revert "CI: Update gl4es"
This reverts commit d8d25949be.
2023-04-19 19:44:38 +07:00
github-actions d8d25949be CI: Update gl4es 2023-04-19 13:38:28 +01:00
Duy Tran Khanh 6a9443b464 Update to holy gl4es 1.1.5
Commit: 286c9ff1d9afbe450f8b2530de9e07058a1fc667
2023-04-19 19:12:33 +07:00
khanhduytran0 cf03acbe92 Update libjnidispatch, again
https://github.com/java-native-access/jna/blob/5.13.0/lib/native/darwin-aarch64.jar
See https://github.com/PojavLauncherTeam/PojavLauncher_iOS/commit/83b4323
2023-04-07 10:14:36 +07:00
Duy Tran Khanh b6f5f9cede Update lwjgl (may break, need more testings)
warns on calling missing GL function instead of crash
2023-04-04 18:18:52 +07:00
github-actions 95ec1d905e CI: Update gl4es 2023-04-04 11:31:20 +01:00
github-actions e7740fad30 CI: Update gl4es 2023-03-31 18:49:46 +01:00
github-actions f99d54fbad CI: Update gl4es 2023-03-31 18:40:50 +01:00
Eilionoir Tunnicliff 43123158a4 (WIP) Enable usage of JREs in Documents/
If there is no java_runtimes/ folder in the bundle, PojavLauncher will look for runtimes in Documents/jvm. Not currently working with my tests as this isn't the code I used before.
Also changes the slimmed ipas to not include any runtimes at all.
2023-03-27 09:41:19 -04:00
Eilionoir Tunnicliff 36fd10c80c Push back deprecations to 2.3
1GB RAM and iOS 12/13 devices will be deprecated at the same time.
2023-03-24 09:47:43 -04:00
Eilionoir Tunnicliff 2d32701a86 A bit of logging changes 2023-03-23 22:34:43 -04:00