bunnei
1552c524ad
hle: kernel: KPageTable: Migrate locks to KScopedLightLock.
- More accurately reflects real kernel behavior by using guest locks.
4 years ago
Narr the Reg
33594225c7
svc: Add 32 bit SynchronizePreemptionState
Used by Espgaluda II
4 years ago
bunnei
1b8ed3a76d
hle: kernel: KScheduler: Fix deadlock with core waiting for a thread lock that has migrated.
- Previously, it was possible for a thread migration to occur from core A to core B.
- Next, core B waits on a guest lock that must be released by a thread queued for core A.
- Meanwhile, core A is still waiting on the core B's current thread lock - resulting in a deadlock.
- Fix this by try-locking the thread lock.
- Fixes softlocks in FF8 and Pokemon Legends Arceus.
4 years ago
Lioncash
1e57fbe71d
kernel/k_affinity_mask: Remove duplicated assert
This is already checked inside GetCoreBit()
4 years ago
german77
1fca7203d3
input_common: Add option to configure gyro threshold
4 years ago
bunnei
a2731424a6
hle: kernel: KThread: Improve Increment/Decrement RunningThreadCount.
- Previously implementation was incorrect, and would occasionally underflow.
4 years ago
bunnei
912b6b9ef4
core: hle: kernel: KPageTable: Various improvements to MapPages and UnmapPages.
4 years ago
bunnei
c46f07a62a
core: hle: kernel: KPageTable: MapProcessCode: Various cleanup.
4 years ago
bunnei
4f848b6f68
core: hle: kernel: KPageTable: ReserveTransferMemory: Various cleanup.
4 years ago
bunnei
bf904afa0f
core: hle: kernel: KPageTable: ResetTransferMemory: Various cleanup.
4 years ago
bunnei
1b3dd42de4
core: hle: kernel: KPageTable: SetMemoryAttribute: Various cleanup.
4 years ago
bunnei
05918a20c3
core: hle: kernel: KPageTable: Assert valid address on GetPhysicalAddr.
4 years ago
bunnei
a8476d9db0
core: hle: kernel: KPageTable: Operate: Assert lock ownership.
4 years ago
bunnei
8f3c7cb89b
core: hle: kernel: KPageTable: SetHeapSize: Cleanup & take physical memory lock.
4 years ago
bunnei
24efadee60
core: hle: kernel: Refactor Un/MapPhysicalMemory to remove unnecessary methods.
4 years ago
bunnei
ebb9ec197e
core: hle: kernel: Rename Un/Map to Un/MapMeory.
4 years ago
bunnei
b3f8d2491d
hle: kernel: KThread: Ensure host (dummy) threads block on locking.
- But do not enter the priority queue, as otherwise they will be scheduled.
- Allows dummy threads to use guest synchronization primitives.
4 years ago
Lioncash
46d9dc557c
service/wlan: Update function tables
4 years ago
Lioncash
3599c5f7c8
service/usb: Update function tables
4 years ago
Lioncash
50af00640b
service/set: Update function tables
4 years ago
Lioncash
114ce2ae13
service/ns: Update function tables
4 years ago
Lioncash
41f1cceefe
service/nim: Update unknown function table entries
4 years ago
Lioncash
cc5f02e0a5
service/friend: Update unknown function table entries
4 years ago
Lioncash
ee4adcada2
service/filsystem: Update fsp-srv function table
4 years ago
Lioncash
2495e8d6e1
service/btm: Update function tables
4 years ago
Lioncash
74a98a01de
service/audio: Update audctl unknown function names
4 years ago
Lioncash
aa0d0e91a0
service/am: Update omm function tables
4 years ago
Lioncash
1a50cb9468
service/acc: Update unknown function names
Switchbrew has the function names now.
4 years ago
Morph
00dc684fb0
service: apm: Stub ISession SetCpuOverclockEnabled
Since we don't currently support CPU overclocking within the emulated system, this can be stubbed for now, like APM IsCpuOverclockEnabled.
- Used by Gravity Rider Zero
4 years ago
bunnei
8f2630de0a
hle: kernel: Remove redundant tracking of dummy threads.
- These are already tracked by kernel's registered_objects member.
4 years ago
bunnei
f2e870d6b6
hle: kernel: KThread: DummyThread can be waited, ensure wait_queue is not nullptr.
4 years ago
bunnei
668af26696
hle: kernel: KThread: Decrease DummyThread priority to ensure it is never scheduled.
4 years ago
bunnei
db3c11506b
hle: kernel: service_thread: Ensure dummy thread is closed & destroyed on thread exit.
4 years ago
bunnei
e885b0ab0d
hle: kernel: KServerSession: Remove hack for CompleteSyncRequest.
- This does not appear to be necessary anymore.
4 years ago
bunnei
af11abed3f
hle: kernel: KServerSession: Simplify CompleteSyncRequest EndWait.
- Considering is_thread_waiting is never set, so we can remove IsThreadWaiting.
- KThread::EndWait will take the scheduler lock, so we can remove the redundant lock.
4 years ago
bunnei
247a7e2205
hle: kernel: KThread: Ensure dummy threads never call EndWait.
- These are only used by host threads for locking and will never have a wait_queue.
4 years ago
bunnei
f1e06f984d
hle: kernel: KScheduler: Ensure dummy threads are never scheduled.
- These are only used by host threads for locking.
4 years ago
bunnei
cc4cbff1ca
hle: kernel: KThread: Rename thread_type_for_debugging -> thread_type.
- This will be used to ensure that we do not schedule dummy threads.
4 years ago
german77
d678dfda6e
service/hid: Initialize applet_resource on SetNpadAnalogStickUseCenterClamp
4 years ago
Valeri
01852ee857
hle: remove no-op code
Found by static analysis with PVS-Studio. Nobody seems to really know what was it doing there.
4 years ago
Valeri
8b3ea1258c
hid: fix std::transform call
Found by static analysis with PVS-Studio.
4 years ago
Valeri
347574b398
Correct assignment source for rotations
Found by static analysis with PVS-Studio
4 years ago
bunnei
4148fde355
hle: kernel: k_memory_manager: Clear pages on allocation & free.
- Heap pages should be zero'd.
- Also explicitly passed along heap allocation option.
4 years ago
bunnei
b52516263d
core: hle: kernel: KThread: Integrate with KWorkerTask and implement DoWorkerTaskImpl.
- This is used to terminate a thread asynchronously after it has been exited.
- This fixes a crash that can occur in Pokemon Sword/Shield because a thread is incorrectly closed on svcExitThread, then, the thread is destroyed on svcCloseHandle while it is still scheduled.
- Instead, we now wait for the thread to no longer be scheduled on all cores before destroying it from KWorkerTaskManager, which is accurate to HOS behavior.
4 years ago
bunnei
18969b5d8e
core: hle: kernel: KProcess: Integrate with KWorkerTask and add unimplemented DoWorkerTaskImpl.
4 years ago
bunnei
914431487b
core: hle: kernel: KThread: Replace Suspend with UpdateState & various updates.
- This makes our implementations of these more closely match HOS.
4 years ago
bunnei
b6bf119a43
core: hle: kernel: Instantiate a kernel instance of KWorkerTaskManager.
4 years ago
bunnei
b722faaf7a
core: hle: kernel: Add KWorkerTask and KWorkerTaskManager.
- These primitives are used to dispatch asynchronous kernel tasks from KThread and KProcess.
4 years ago
bunnei
fbab3dc017
hle: kernel: Fix service_threads access to be thread safe V2.
- PR #7699 attempted to fix CreateServiceThread and ReleaseServiceThread to be thread safe, but inadvertently introduced a possible dead-lock.
- With this PR, we use a worker thread to manage the service thread list, allowing it only to be accessed by a single thread, and guaranteeing threads will not destroy themselves.
- Fixes a rare crash in Pokemon Sword/Shield, I've now run this game for ~12 hours non-stop and am quite confident this is a good solution for this issue.
4 years ago
Narr the Reg
f217849d21
core/hid: Increment shake force
With the current settings 2p mode in pokemon let's go wasn't showing up. By making the shake more violent we can make it appear without any effort using the keyboard
4 years ago