166 Commits
Author SHA1 Message Date
khanhduytran0 0a13331cdc Feat[audio]: separate allow microphone input from silent switch mode 2025-04-13 17:22:52 +07:00
khanhduytran0 fb75288831 Fix: update ANGLE and default binding to desktop
Updated ANGLE to
https://github.com/google/angle/commit/6024e9c05548480c3b2ea42836a11250
9a549a95. It sucks that newer commit completely removed Desktop GL
frontend (as well as no LTW since GLES 3.x aren't gonna be implemented
anytime soon)
Misc: exclude simulator and Mac Catalyst from get-task-allow
enforcement.
2024-12-11 19:22:03 +07:00
khanhduytran0 4cf5906be0 Feat[LWJGL]: add freetype module for 1.21
Separate freetype native library is required since LWJGL requires
up-to-date module.
2024-07-14 14:24:36 +07:00
khanhduytran0 2ad1ed32fc Feat[LWJGL]: update to 3.3.3 2024-07-13 14:20:08 +07:00
khanhduytran0 f1ec148e16 Fix[input]: correct AVAudioSessionCategory for microphone 2024-07-13 14:13:54 +07:00
khanhduytran0 60e04dcb86 Feat: add switch to toggle Metal perf HUD 2024-06-21 22:14:58 +07:00
khanhduytran0 ec04885ce5 Feat: patch dylib for game dlopen calls
Now that game can directly load macOS's JNA native library,
libjnidispatch is removed.
2024-06-09 21:53:15 +07:00
khanhduytran0 299b03d51b Feat[controls]: add option to hide from screen recording
Huge thanks to @NSAntoine for https://nsantoine.dev/posts/CALayerCaptureHiding
2024-06-07 16:40:27 +07:00
khanhduytran0 c080c1641d Feat[renderers]: update ANGLE and MoltenVK
ANGLE:
https://github.com/PojavLauncherTeam/angle/commit/f9a36d70d40976bcaa987
7cba8184b1356e7efb4
MoltenVK:
https://github.com/khanhduytran0/MoltenVK/commit/eeccb3f407a3ebef28862f
29f21fc0564b5e47ad
2024-04-12 21:13:16 +07:00
khanhduytran0 73e35f5365 Feat: notify TS user to enable URL Scheme for JIT 2024-04-09 13:41:16 +07:00
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