Commit Graph
118 Commits
Author SHA1 Message Date
khanhduytran0 77fa8b1c99 Fix #696: return string for glfwGetGamepadName 2024-06-09 21:53:15 +07:00
khanhduytran0 879f852277 Workaround: ignore jna and stub new function
Fix a check on replacing JNA, add a missing function.
These are sufficient for 1.21-pre1 for now as it's requiring LWJGL
3.3.3, which will be updated later.
2024-05-31 13:26:31 +07:00
khanhduytran0 63261cf60a Fix[glfw]: add missing function for 23w31a 2023-08-03 13:17:45 +07:00
khanhduytran0 2ae408f5dd Fix: stack queue check
Now explicitly check the caller class
2023-07-30 12:06:55 +01:00
Duy Tran Khanh c6e21b4f88 Fixes for LabyMod 4 (except the shader part) 2023-07-13 11:19:18 +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
Duy Tran Khanh 35dc75e69c Fix: 0x0 window if getter called before input ready 2023-05-15 19:28:32 +07:00
Duy Tran Khanh 91eb8725bb Move nativeSetInputReady to native code 2023-05-15 19:26:01 +07:00
Eilionoir TunnicliffandDuy Tran Khanh 57ecfbf096 Use native input for controls (#524)
* WIP feature: native input

* Fixes: 1.13+, jar installer input
What's left: fix hotbar position

* Fix broken hotbar

---------

Co-authored-by: Duy Tran Khanh <[email protected]>
2023-04-09 13:33:30 +07:00
Boulay Mathias 9300cb15a0 Fix[GLFW]: better isExtensionSupported signature 2023-04-04 17:27:35 +07:00
khanhduytran0 740d53723c Fix(GLFW): missing forward-compatible functions 2023-03-22 22:05:53 +07:00
Duy Tran Khanh 881dc5cf54 Fixes: Invisible toolbar views on iOS 12-13
Correct GLFWInputImplementation.java location
Add back Swipeable Hotbar option (removed by accident)
2023-03-10 07:11:45 +07:00
Duy Tran Khanh 7f65ad1e4f Fix window size for Minecraft 1.2.1-1.2.4 (https://github.com/PojavLauncherTeam/PojavLauncher/commit/4c43522) 2023-01-31 22:15:33 +07:00
Duy Tran Khanh 54a7f2b152 Fix(input_bridge): crash due to window resize called in wrong way
Actually, this pick up changes in
https://github.com/PojavLauncherTeam/PojavLauncher/commit/e2641813562c8
4290281c9f01d560ebca39ad595
2023-01-31 21:19:47 +07:00
Duy Tran Khanh b9b0e0959b Fix: broken mouse coord input again
Turns out another fix broke it
2023-01-30 21:59:51 +07:00
Duy Tran Khanh fd436d9f88 Fix: issues with legacy versions
This picks up the following commits from Android repo:
*
https://github.com/PojavLauncherTeam/PojavLauncher/commit/4716e99df12ab
5bfcaade881774e3b07e8e35450: Don't call Display.create in AWTGLCanvas
constructor (fixes Minecraft 1.2.1-1.2.4)
*
https://github.com/PojavLauncherTeam/PojavLauncher/commit/693cff45b09b3
ca09784a3038a3f9c89cacd391f: Infdev cursor grab: the Pojav part +
Window resize on first key even poll (actual on iOS is on grab state
changes because Android's approach does not work)
*
https://github.com/PojavLauncherTeam/PojavLauncher/commit/ee39334bf31ed
0687c750f37229cf6bea8919b4c (Comment out unnecessary calls to resize)
2023-01-30 09:57:15 +07:00
Duy Tran Khanh 85563047a8 GLFW.java: add glfwExtensionSupported 2022-12-06 18:41:09 +07:00
Duy Tran Khanh 8ca77a1b73 Support resizable for iPadOS Stage Manager
On iPadOS, PojavLauncher can be launched in portrait mode
Declare controller support in Info.plist
Sync LWJGL changes from Android repo
2022-10-31 11:13:03 +07:00
Duy Tran Khanh b23678692a Merge commit 'e1bd237d69f7ad95b0fa01c629a62f5880cf9943'
Conflicts:
	.github/workflows/development.yml
	.github/workflows/release.yml
	Makefile
	Natives/main.m
2022-08-30 17:02:07 +07:00
khanhduytran0 8433a7d739 Added missing lwjglx funcs, perform some filters in currentVC func 2022-08-29 21:33:14 +07:00
Duy Tran Khanh d75f203bf3 Use RTLD_DEFAULT instead of try to reload exec twice 2022-08-22 06:11:46 +07:00
Duy Tran Khanh 19ebae62c2 Make switches functional + warnings + some fixes 2022-08-21 21:34:02 +07:00
Duy Tran Khanh 0c4c53c953 Finish auto renderer selection 2022-08-18 19:09:12 +07:00
Duy Tran Khanh 10aa3d07e8 Simplify scrollPanGesture handling 2022-08-14 09:12:19 +07:00
Duy Tran Khanh cf8a5609c0 Fixes a crash that could occur with Java 17
Additional change: added increased-memory-limit entitlement for iOS 15
2022-08-14 09:05:17 +07:00
Duy Tran Khanh 1592d50f65 Attempt to unlock 120Hz for ProMotion display 2022-08-12 12:09:41 +07:00
Duy Tran Khanh ae1c86b113 Various fixes
- GLFW display mode array, fix 0x0 resolution bug
- OSMesa library (copied back 64f4042)
- Hacks for getting Spiral Knights to launch
- Error is now logged properly
2022-08-12 11:53:02 +07:00
Duy Tran Khanh ee2c68fb98 Fixes
Makefile: fix path
Moved GameSurfaceView to a separate class
Renamed MinecraftDownloader to MinecraftResourceUtils

Fix: Some versions fails because GLFW_CLIENT_API is not set
2022-07-01 07:02:25 +07:00
khanhduytran0 97433a5596 Add support for mods that use Vulkan for rendering
Known mods: Blaze4D (untested), VulkanMod, more?
- VulkanMod: needs a tiny modification to get it work with LWJGL 3.2.3
2022-06-10 12:13:23 +07:00
Duy Tran Khanh 5d7c77d697 Forge 1.17+ support 2022-05-29 20:03:04 +07:00
Duy Tran Khanh 984647084b Fixes
- [Internal] Changed how setting current viewController work
- [Internal] Correct 018e46a: avoid duplicating code
- [Internal] Saving JSON now uses NSData to write directly
- Correct a check of the Launch .jar option
- Set the AWT window size for the game
2022-05-27 21:54:26 +07:00
Duy Tran Khanh 581acd1732 Tab -> spaces 2022-05-27 16:38:45 +07:00
khanhduytran0 bf12743457 Moved the JVM entry point to start when needed 2022-05-27 05:48:25 +07:00
Duy Tran Khanh 580da57855 Set GLFW window attrib; Proper external mouse lock
Setting window attribute fixes DynamicFPS mod being broken
2022-03-17 07:24:41 +07:00
Duy Tran Khanh bd134ccfde Fixes scroll crashes, move login spinner to left
Scrolling crashes: Float cannot be casted to Double
2022-02-25 19:56:24 +07:00
Adam Tunnic 959a4e2290 Merge branch 'backend-virgl' into main 2022-02-14 08:52:10 -05:00
Duy Tran Khanh dc5c5a9c65 [Custom controls] Added color picker for iOS < 14
Might aswell add an option to optionally use this instead of the system
color picker on iOS 14+. Used library: Alderis

Other changes
- [Custom controls] The editor is now fullscreen due to the
presentation of the color picker.
- Fixes scroll wheel input is always int
2022-02-01 21:58:54 +07:00
khanhduytran0 fbde4948d5 Various bug fixes
- Input cursor movement seems too fast, attempt to reduce it by setting larger font size in the hidden text field.
- latestlog.txt doesn't log in 1.12+ since Log4j patch. Fixed by adding some config lines.
- Makefile: building is broken when run make from a path with space(s). Fixed by handling spaces with backslashes.
- text2speech is not overridden properly. Fixed by excluding it from download list and adding launcher.jar itself to the classpath.
- XML log output in < 1.12 since Log4j patch. Fixed by using our own configuration file.

Some more changes:
- Commented out a debug line in LWJGLX
- Fix a typo.
- JavaLauncher: use (ObjC)BOOL instead of (std)bool.
2022-01-17 08:18:06 +07:00
khanhduytran0 82dc17cd9c Support for input cursor movement from keyboard
New class: TrackedTextField. This class keeps track of the pointer in the text field. The hidden text field now has 40 placeholder spaces and the pointer is placed at the middle. When typing, placeholder spaces won't get removed as before. Autocorrect seem to be broken a bit for now.

Additional changes:
- Added missing GLFW functions (array version of other functions)
- Hotbar handling: doubled barWidth and barHeight

Bug fix:
- Touching onto the hotbar breaks the handling of on-screen tap/long-press gestures
2022-01-11 13:58:16 +07:00
Duy Tran Khanh 150cf861b1 Experimental things
* Multitouch handling, allows one of these actions below to work with
moving camera at the same time.
- Switching hotbar slot; might not work properly
- Destroying block (left mouse button) with another finger
long-pressed (without pressing the PRI button)
- Right mouse trigger with another finger tapped onto the screen
(without pressing the SEC button); not working properly yet
* Sub-pixel cursor support; not yet checked
2021-12-13 07:40:12 +07:00
khanhduytran0 72e0c69ad1 WIP virglrenderer
Current state: bind() returns errno -1 (Operation not permitted)
2021-11-30 04:29:09 +07:00
Duy Tran Khanh 4f59e0ffff PojavCore is now inside the main executable
This took so long since there was a failed attempt in unloading and
reloading JVM to support Forge 1.17.x. Next attempt would be rewrite
everything to Objective-C and move the JVM entry point to the start of
the game.
2021-10-01 11:14:05 +07:00
Duy Tran Khanh b2ffd5edc3 Changes
- libpojavexec.dylib is now PojavCore.framework.
- More changes for Zink renderer. Note that Mesa 21.0 is included instead of 21.2.1 due to the new version seems to be broken, only display glClearColor.
2021-09-17 07:00:14 +07:00
Duy Tran Khanh 1c91691d96 Workaround for Forge 1.12.2 crashing 2021-08-30 14:36:12 +07:00
Duy Tran Khanh 5ce5dbcc00 Changes
- Avoid printing "Session ID". Several Minecraft versions do that.
- Fixes Minecraft 1.13 snapshot due to the usage of LWJGL functions from an older version.
- Minecraft's built in Fullscreen Resolution scaler is available now, but not working properly.
- Regal internal changes (still fail at )
2021-08-23 11:19:54 +07:00
Duy Tran Khanh d949cb4e1b Fixes Sodium 0.3 crashes on saving settings
Sodium 0.3 won't work yet
2021-08-22 14:19:57 +07:00
Duy Tran Khanh 949e562c0e Regal stuff (test) 2021-08-22 14:19:57 +07:00
Duy Tran Khanh de6479f1e6 Changes
- test regal stuff (lib not added)
- auto init symlinks for jailed JRE
2021-08-18 05:52:40 +07:00
Duy Tran Khanh a739cf7202 Resolution downscaler moment 2021-08-10 19:42:10 +07:00
Duy Tran Khanh 934f4f1354 FPS limiter :) 2021-08-08 17:34:09 +07:00