◱ PixelyIon
861d7e9eb2
Fix SvcClearEvent resetting behaviour
...
SvcClearEvent previously set the `signalled` flag directly rather than
calling `ResetSignal`, which skipped the locking necessary to make it
globally visible. Switch it to use `ResetSignal` to fix this.
2021-03-05 14:55:34 +05:30
◱ PixelyIon
a621408b9c
Move to using ASCII separators for Logger
...
We've moved to using RS and GS from ASCII as delimiters rather than
'\n' and '|', this allows more robust parsing and increases the
readability of the log files
2021-03-05 14:55:34 +05:30
◱ PixelyIon
31db70f1d4
Lock decryption in CtrEncryptedBacking
...
This prevents a race where two threads could read at the same time and
end up using the wrong IV leading to garbage data being read. This
caused crashes in several games including Celeste.
2021-03-05 14:55:34 +05:30
Billy Laws
ce0e032255
Avoid constantly signalling audren DSP done event
...
This was causing a significant amount of sched thrashing and pinning a
core to 100% as games constantly updated audren, now change it to only
signal on buffer release.
2021-03-05 14:55:34 +05:30
◱ PixelyIon
7e7a792dc5
Use per-thread scheduler condvars and clean up AS filters
...
Per-thread condvars previously caused issues due to an audren bug, now
that's fixed they have a clear performance benefit.
2021-03-05 14:55:34 +05:30
PixelyIon
2bbf526419
Fix Logger Settings + Use Java 8 + Update Kotlin + Extract Native SOs
2021-03-05 14:55:34 +05:30
◱ PixelyIon
80302cf1ad
Update NDK, Gradle and dependencies + Improve Settings API + Migrate to PugiXML
2021-03-05 14:55:34 +05:30
◱ PixelyIon
1f48fdd4a5
Fix Thread Insertion Optimization + Revert Per-Thread Scheduler Conditions
2021-03-05 14:55:34 +05:30
◱ PixelyIon
d5d133372f
Fix Clean Exiting + Optimize Core Queues + Optimize Thread Insertion + Implement HID SendVibrationValue
2021-03-05 14:55:34 +05:30
◱ PixelyIon
98b1fd9056
Optimize Scheduler/IPC/HID + Fix Various Bugs
...
* Optimize Scheduler With Per-Thread Scheduler Conditions
* Optimize IPC by yielding
* Optimize HID Vibration
* Fix Priority Inheritance
* Fix `KThread` Start/Kill/Signal Races
* Fix `YieldPending` Races in `StartThread` & `SvcHandler`
* Fix POSIX Time -> NN CalendarTime Conversion
* Fix HID `TouchScreen`/`NPad` Activation
2021-03-05 14:55:34 +05:30
◱ PixelyIon
ef52e22cef
Improve Synchronization SVCs + Fix TLS Page Allocation Race + Fix KProcess::GetHandle<KObject>
2021-03-05 14:55:34 +05:30
◱ PixelyIon
ebadc1d1e1
Generate Stack Traces + More Robust Terminate Handler + Exit Process on Signal in Guest
2021-03-05 14:55:34 +05:30
◱ PixelyIon
14dbb5305a
Fix Priority Queue + Cooperative Yielding + Conditional Variable Timeouts
2021-03-05 14:55:34 +05:30
◱ PixelyIon
33bbfb9fb7
Implement Conditional Variables
2021-03-05 14:55:34 +05:30
◱ PixelyIon
7079f11add
Implement PI-Mutexes + Optimize InsertThread
2021-03-05 14:55:34 +05:30
◱ PixelyIon
7ba7cd2394
Support Priority & Affinity Mask Changes
2021-03-05 14:55:34 +05:30
◱ PixelyIon
f41bcd1e22
Implement Preemptive Scheduling
2021-03-05 14:55:34 +05:30
◱ PixelyIon
cf000f5750
Implement Cooperative Scheduling With Load Balancing
2021-03-05 14:55:34 +05:30
◱ PixelyIon
8564edcb16
Address CR Comments #2
2020-11-23 11:44:43 +05:30
◱ PixelyIon
fbf9f06244
Address CR Comments + Fix Clock Rescaling
2020-11-22 23:56:17 +05:30
◱ PixelyIon
a3dd759a1c
Fix Circular Queue Destructor + Memory Infos + Improve Priority Documentation
2020-11-22 23:56:17 +05:30
Billy Laws
7167393e3c
Only initialise maxEntry for active input devices
...
This caused the menus in Sonic Mania to be nonfunctional, futhermore,
default init is not ran for the input structs so the default max
definition in CommonHeader never actually applied.
2020-11-22 23:56:17 +05:30
◱ PixelyIon
bc5c094860
Fix CircularQueue
+ NPDM ACI0 & Kernel Capability Parsing
2020-11-22 23:56:17 +05:30
◱ PixelyIon
a5927c5c7b
Fix Native-Initiated Exiting
2020-11-22 23:56:17 +05:30
◱ PixelyIon
d155e9cd71
Complete Exceptional Signal Handler Implementation + Fix More Destruction Behavior
2020-11-22 23:56:17 +05:30
Billy Laws
8bf08ed66f
Fix CircularQueue and improve debug logging + exefs loading
...
CircularQueue was looping around too early resulting in the wrong
pushbuffers being used. The debug logging is useful for interpreting the
GPU method call logs.
Exefs loading was changed to check if an NSO exists before trying to
read it, preventing exceptions that get annoying while debugging.
2020-11-22 23:56:17 +05:30
Billy Laws
c161ef0cac
Various accuracy improvements in services
...
* 'Fix' memory accounting to not measure reserved regions
* Fix some copy bugs introduced by switch to span
* Correct remap the behaviour of Modify so it actually works
2020-11-22 23:56:17 +05:30
Billy Laws
c7e5202042
Rework GPU VMM variable naming
2020-11-22 23:56:17 +05:30
Billy Laws
4c9d453008
Update formatter config for new AS and reformat
2020-11-22 23:56:17 +05:30
◱ PixelyIon
668f623256
Implement Exceptional Signal Handler + Fix Destruction Behavior
...
An exceptional signal handler allows us to convert an OS signal into a C++ exception, this allows us to alleviate a lot of crashes that would otherwise occur from signals being thrown during execution of games and be able to handle them gracefully.
2020-11-22 23:56:17 +05:30
◱ PixelyIon
3cde568c51
Run Guest on Main Emulator Thread + Remove Mutex/GroupMutex + Introduce PresentationEngine
2020-11-22 23:56:17 +05:30
◱ PixelyIon
779884edcf
Introduce TID to Logger + Fix VMM Bug + Fix NSO Backtrace + Improve Logger
2020-11-22 23:56:17 +05:30
Billy Laws
39f0345ac7
Fix bugs introduced by refactoring
...
GPU VMM was mistakenly checking the alignment of the PA rather than the
VA and NvMap::Free was not accounting for the handle index starting from
one.
2020-11-22 23:56:17 +05:30
◱ PixelyIon
c65c91e1bc
Implement NPDM, Core Mask SVCs + Fix VMM bug + Introduce Verbose Log Level
2020-11-22 23:56:17 +05:30
◱ PixelyIon
324381908b
Implement SvcMap/UnmapPhysicalMemory + Fix W-Register Writing + Improve Accuracy of SvcGetInfo
2020-11-22 23:56:17 +05:30
◱ PixelyIon
657beea070
JVM Auto-Attach + Fix Thread Exiting + Fix Thread Signal Handler
2020-11-22 23:56:17 +05:30
◱ PixelyIon
6f2cd41470
Move .patch to start of executable (Pre-Patching)
2020-11-22 23:56:17 +05:30
◱ PixelyIon
369bd469f6
Dynamic Guest Memory Base Allocation
2020-11-22 23:56:17 +05:30
◱ PixelyIon
cffbfc8034
Skip Saving Callee-Saved Registers + Fix GetMemoryObject
2020-11-22 23:56:17 +05:30
Billy Laws
31efb5e930
Correct an NSO loader bug and use the correct address space extents
2020-11-22 23:56:17 +05:30
Billy Laws
17feb68eb5
Fix audren voice sample copying
2020-11-22 23:56:17 +05:30
◱ PixelyIon
745ea19f42
Use u64
s for FmtCast
+ Remove Functional Casts + Fix VMM Bugs
2020-11-22 23:56:17 +05:30
◱ PixelyIon
1db76dee1e
NCE3: In-Process Guest Execution
2020-11-22 23:56:17 +05:30
◱ PixelyIon
90127740f0
Rework NCE/KThread/KProcess + Remove Guest Process
2020-11-22 23:56:17 +05:30
◱ PixelyIon
878cb24389
Make fmt::ptr
implicit for raw pointers + Update Submodules
2020-11-22 23:56:17 +05:30
◱ PixelyIon
02f3e37c4f
Remove KProcess Memory Functions
2020-11-22 23:56:17 +05:30
◱ PixelyIon
60e82e6af0
Rework VMM + Adapt KMemory Objects to be in-process
...
Note: This commit isn't functional on it's own, it will require the rest of NCE3 to work
2020-11-22 23:56:17 +05:30
Willi Ye
7b13f2d387
Add visibility toggle for osc
2020-11-12 22:19:55 +05:30
Willi Ye
f479aeb4ac
Add comments
2020-11-12 22:19:55 +05:30
Willi Ye
7526a985fb
Use property delegate to handle preferences
...
* Add option to disable joystick recentering
2020-11-12 22:19:55 +05:30