0
0
mirror of https://github.com/Ishan09811/pine.git synced 2025-04-28 09:35:08 +00:00

2270 Commits

Author SHA1 Message Date
Ishan09811
bf56dc4215
Update NDK to 26.1.10909125
Starting from version 26+, the NDK is based on LLVM 17 and comes with Clang 17 featuring full language and library C++20 support.
This means we can get rid of the massive LLVM submodule in the repo, which will be done in a following commit.

Co-authored-by: nickbeth <nickbeth>
2024-07-04 18:15:34 +05:30
Ishan09811
a3420c3739
fix release build 2024-07-04 17:34:23 +05:30
Ishan09811
6b752669b2
Remove hasFragileUserData from the app manifest
It was effectively unused, and only caused issues for users, even after proper implementation that enabled it on signed builds only.

Co-authored-by: nickbeth <nickbeth@gmail.com>
2024-07-04 15:11:02 +05:30
Ishan09811
6e4856ae9c
use updated audio-core and shader-compiler 2024-07-04 12:50:05 +05:30
Ishan09811
8b6d4480f2
README: some minor adjustments 2024-07-04 11:34:45 +05:30
Ishan09811
e4ef0c8465
small rebrand 2024-07-04 10:50:52 +05:30
Ishan09811
30206791e0
fix sirit submodule 2024-07-04 10:40:49 +05:30
lynxnb
74173a3967 Rework signal handling to remove per-thread handlers
Since the latest Android updates, which most users received in the form of August 2023 security patches, the Android runtime seems to rely on handling SIGSEGV via sigchain while performing JNI calls. We were hooking libc directly to inject our own signal handlers, so that they could run and restore the host TLS since the signal might have been generated in guest code. However, due to how we dispatched signals, the ART handlers were never called and the app crashed whenever a JNI call was made after installing our handlers.

This commit reworks signal handling to remove per-thread handlers. We now make a distinction between guest signals and host signals, and two new functions to set signal handlers have been introduced: `SetGuestSignalHandler` and `SetHostSignalHandler`. This greatly simplifies our signal handling code and allows us to get rid of some thread-local state.

Because of the above distinction, we install a "guest-safe" signal handler only when a guest signal is set. The guest-safe signal handler calls guest handlers only for guest signals, or falls back to the host handler if that's not the case.
Once a guest handler exists for a particular signal, we query libc sigaction as well as the sigchain-hooked sigaction and compare the results, and in case they differ we call sigchain's sigaction so that the host handler is correctly chained, ensuring no host handler can accidentally override the sigchain handler.
2023-11-30 22:45:50 +01:00
lynxnb
644c8f3cd4 Construct queue consumer threads after queues
CommandScheduler and PresentationEngine both constructed the consumer threads before their CircularQueues, this resulted in a data race that would lead to a segfault if the threads were scheduled for execution quickly enough, as they would read uninitialized memory.
2023-11-30 22:45:50 +01:00
PabloG02
b0207ab645 Address feedback 2023-09-21 11:07:48 +02:00
PabloG02
35b90c96a5 Stub ActivateConsoleSixAxisSensor and InitializeSevenSixAxisSensor 2023-09-21 11:07:48 +02:00
PabloG02
4f6d5b2884 Stub SetShimLibraryVersion 2023-09-21 11:07:48 +02:00
PabloG02
395e08d002 Stub GetIndirectLayerConsumerHandle 2023-09-21 11:07:48 +02:00
PabloG02
c3eef5077f Stub SetAutoSleepDisabled and IsAutoSleepDisabled 2023-09-21 11:07:48 +02:00
PabloG02
937eacef4a Stub SetLcdBacklighOffEnabled 2023-09-21 11:07:48 +02:00
PabloG02
a523af2129 Stub some services related to StereoVision
Based mostly in Ryujinx
2023-09-21 11:07:48 +02:00
PabloG02
13f88f7584 Stub ResetSevenSixAxisSensorTimestamp 2023-09-21 11:07:48 +02:00
PabloG02
d32aa86193 Stub some services in ILblController 2023-09-21 11:07:48 +02:00
PabloG02
ffb93d21e1 Stub SetVrModeEnabled, BeginVrModeEx and EndVrModeEx 2023-09-21 11:07:48 +02:00
PabloG02
c43912c1f8 Stub GetAlbumFileList0AafeAruidDeprecated 2023-09-21 11:07:48 +02:00
PabloG02
e05de1acb4 Stub IsVibrationDeviceMounted 2023-09-21 11:07:48 +02:00
PabloG02
80911207dd Stub IsIlluminanceAvailable and GetCurrentIlluminanceEx 2023-09-21 11:07:48 +02:00
PabloG02
f0430e4635 Stub GetAlbumFileList3AaeAruid 2023-09-21 11:07:48 +02:00
PabloG02
d241e84688 Stub CheckFirmwareVersion 2023-09-21 11:07:48 +02:00
PabloG02
1bfdcaa3a6 Stub ReportUserIsActive 2023-09-21 11:07:48 +02:00
PabloG02
3ca24b9f5d Stub GetTemperatureMilliC 2023-09-21 11:07:48 +02:00
PabloG02
9465bfeb52 Stub StopImageProcessorAsync 2023-09-21 11:07:48 +02:00
PabloG02
eb2d04ea8c Stub GetSaveDataSizeMax 2023-09-21 11:07:48 +02:00
PabloG02
ce0aad3fd8 Fix firmware version not being shown after importing 2023-09-07 16:54:10 +02:00
PabloG02
0789ba1ac8 Address feedback 2023-09-06 17:31:49 +02:00
PabloG02
2eaf5d2ea2 Change to CircularProgressIndicator 2023-09-06 17:31:49 +02:00
PabloG02
471e61eb4f Change task to not return anything 2023-09-06 17:31:49 +02:00
PabloG02
54d4586e9f Extract fonts from firmware 2023-09-06 17:31:49 +02:00
PabloG02
32c1519bf1 Fix file creation in OsFileSystem 2023-09-06 17:31:49 +02:00
PabloG02
6ee94da80a Check if firmware directory has been modified manually 2023-09-06 17:31:49 +02:00
PabloG02
e64ef756bc Disable firmware import if keys have not been imported 2023-09-06 17:31:49 +02:00
PabloG02
b0cee4a212 Show installed firmware version 2023-09-06 17:31:49 +02:00
PabloG02
7dfc145248 Add UI to import firmware 2023-09-06 17:31:49 +02:00
PabloG02
289979e0a2 Add ability to export all save files
* Move save data management logic to its own class
* Remove `specificWorkUI` from companion object
* Do callback properly
* Use string resources
* Remove `lastZipCreated`
* Remove `ActivityResultLauncher`s from SaveManagementUtils
2023-09-06 17:06:15 +02:00
lynxnb
555a9d0774 utils: Remove Format proxy utility for implicit pointer formatting
The formatting API used across the code base now is 100% compliant with that of libfmt.
2023-09-06 16:51:01 +02:00
lynxnb
288f016f84 logger: Migrate remaining calls to the new logger and remove old logger 2023-09-06 16:51:01 +02:00
lynxnb
772970d158 logger: Enable the new async logger 2023-09-06 16:51:01 +02:00
lynxnb
e0d4dde4db settings: Add logLevel as a proper setting
The log level is now a proper setting, which also allows it to be set per-game.
2023-09-06 16:51:01 +02:00
lynxnb
c18e13facf logger: Refactor all Verbose log calls to the new macros 2023-09-06 16:51:01 +02:00
lynxnb
d151daffa9 logger: Refactor all Debug log calls to the new macros 2023-09-06 16:51:01 +02:00
lynxnb
4747107dbd logger: Refactor all Info log calls to the new macros 2023-09-06 16:51:01 +02:00
lynxnb
e894970128 logger: Refactor all Warning log calls to the new macros 2023-09-06 16:51:01 +02:00
lynxnb
3c6e357e50 logger: Refactor all Error log calls to the new macros 2023-09-06 16:51:01 +02:00
lynxnb
3a1252a547 logger: Introduce a new AsyncLogger
AsyncLogger pushes messages into a message queue, a thread on the other side takes care of writing messages out to file and logcat. Logging macros use the `fmt::format` formatting syntax.
2023-09-06 16:51:01 +02:00
lynxnb
2c363ab905 common: Improve CircularQueue
This commit adds a Push method that accepts an rvalue-reference to the item to push, an Emplace method that constructs the item in-place, and an Empty method to check if the queue is empty.
It also moves items out of the queue when Pop is called.
2023-09-06 16:51:01 +02:00